Merge from pi (rev: 11053ddb29cd)
authorStefan Hühner <stefan.huehner@openbravo.com>
Tue, 26 Apr 2011 10:43:12 +0200
changeset 11877 c611f8cda7e0
parent 11876 1fc4dc82c09f (current diff)
parent 11651 6188d360d994 (diff)
child 11878 69cbf552a808
Merge from pi (rev: 11053ddb29cd)
src/build.xml
src/org/openbravo/erpCommon/ad_reports/ReportGeneralLedgerJournal.jrxml
src/org/openbravo/erpCommon/obps/ActivationKey.java
--- a/.hgsigs	Wed Apr 20 13:09:38 2011 +0200
+++ b/.hgsigs	Tue Apr 26 10:43:12 2011 +0200
@@ -31,3 +31,4 @@
 37f2d5f6122e0b7d404f15af699bbf517c8620f1 0 iEYEABECAAYFAk1e5jYACgkQCX/oGf+2qkNdOwCg+BZzm0X320yJPlglOs6S3meDeesAoI+GDdOqlwP0J3ZJxtwS2LYiC68K
 6b5829bdfb83a717983a5cc3d93cf23993504dee 0 iEYEABECAAYFAk2D2aIACgkQCX/oGf+2qkNw4ACgnusvXTfY7cwcF8JIyx3gMPDE18sAmQG/UCHIcT/mmqX1UcgpiCgEqUB3
 290cb79e7e1b40a7584920fa1ab2319bb6f36dd2 0 iEYEABECAAYFAk2TX/0ACgkQCX/oGf+2qkPETwCdF5Lxy/MMap+EFbYn3VPcBWjg6qUAoLYKMP5vkaxVXxQWqMrAEKJ+Tr3a
+6476aa1e07119478af0225400d92664a698c4d92 0 iEYEABECAAYFAk2tOmkACgkQCX/oGf+2qkOdjQCfbLZLz0XBihiG+saQfXDmrFB6Tl8AoNsbxxXriyOl3cEOgzir5OwVzMYe
--- a/.hgtags	Wed Apr 20 13:09:38 2011 +0200
+++ b/.hgtags	Tue Apr 26 10:43:12 2011 +0200
@@ -41,3 +41,4 @@
 72e872c1dee28e32260afb806938f730c73b6c8e 3.0RC4
 2900108d13e7c88366e2993a7e4ccae9a9a13618 3.0RC5
 5f47e83fbcb3746a754737199769a7edd6a9eee2 3.0RC5.1
+9fbc1df28282a4a8fb30755c67f6b1fde74dc167 3.0RC6
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -264,6 +264,17 @@
 <!--6E6B065C16C747A9AA784F7434276DBE-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--6E6B065C16C747A9AA784F7434276DBE--></AD_MESSAGE>
 
+<!--7918E1E75DF84F499AD21A51F53F9A9B--><AD_MESSAGE>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <AD_MESSAGE_ID><![CDATA[7918E1E75DF84F499AD21A51F53F9A9B]]></AD_MESSAGE_ID>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <VALUE><![CDATA[APRM_NoBankFileAvailable]]></VALUE>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <MSGTEXT><![CDATA[No file import extension installed]]></MSGTEXT>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--7918E1E75DF84F499AD21A51F53F9A9B-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--7918E1E75DF84F499AD21A51F53F9A9B--></AD_MESSAGE>
+
 <!--7955CBDC1CB246FBB6BE1E2C5DD36ACC--><AD_MESSAGE>
 <!--7955CBDC1CB246FBB6BE1E2C5DD36ACC-->  <AD_MESSAGE_ID><![CDATA[7955CBDC1CB246FBB6BE1E2C5DD36ACC]]></AD_MESSAGE_ID>
 <!--7955CBDC1CB246FBB6BE1E2C5DD36ACC-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -561,6 +572,17 @@
 <!--E217A4F4BDE84DC6A95ACB3F54549FDD-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--E217A4F4BDE84DC6A95ACB3F54549FDD--></AD_MESSAGE>
 
+<!--E92C3899BD924A5C991A39B2CDA74D29--><AD_MESSAGE>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <AD_MESSAGE_ID><![CDATA[E92C3899BD924A5C991A39B2CDA74D29]]></AD_MESSAGE_ID>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <VALUE><![CDATA[APRM_NoBankFileAvailableInfo]]></VALUE>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <MSGTEXT><![CDATA[System administrators can install extensions via Module Management > Add Modules]]></MSGTEXT>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--E92C3899BD924A5C991A39B2CDA74D29-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--E92C3899BD924A5C991A39B2CDA74D29--></AD_MESSAGE>
+
 <!--EFA31753A0BB4C4AB3E6BC741FEE811E--><AD_MESSAGE>
 <!--EFA31753A0BB4C4AB3E6BC741FEE811E-->  <AD_MESSAGE_ID><![CDATA[EFA31753A0BB4C4AB3E6BC741FEE811E]]></AD_MESSAGE_ID>
 <!--EFA31753A0BB4C4AB3E6BC741FEE811E-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -627,4 +649,15 @@
 <!--FF8080812E44C5F1012E44D35D750020-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--FF8080812E44C5F1012E44D35D750020--></AD_MESSAGE>
 
+<!--FF8080812F5805CF012F5843BD3A005B--><AD_MESSAGE>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <AD_MESSAGE_ID><![CDATA[FF8080812F5805CF012F5843BD3A005B]]></AD_MESSAGE_ID>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <VALUE><![CDATA[APRM_BankStatementNo]]></VALUE>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <MSGTEXT><![CDATA[Bank Statement No.:]]></MSGTEXT>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--FF8080812F5805CF012F5843BD3A005B-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--FF8080812F5805CF012F5843BD3A005B--></AD_MESSAGE>
+
 </data>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></NAME>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION><![CDATA[3.0.11559]]></VERSION>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION><![CDATA[3.0.11592]]></VERSION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <DESCRIPTION><![CDATA[Managing your finances with an ERP does not have to be difficult. Enjoy a radically improved user experience that combines the power of an enterprise grade financial application with the simplicity and ease of a web 2.0 personal accounting service.]]></DESCRIPTION>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <HELP><![CDATA[Advanced Payables and Receivables Management simplifies and automates the business processes around the management of financial accounts, from the receipt and issue of payment, to the reconciliation of those events with bank statements.
 If you would like to help shape this module you are welcome to take part in the forum discussions or register feature requests or issues in the corresponding (Forum and Bug Tracking) sections in the Advanced Payables and Receivable project in the OB Forge.]]></HELP>
@@ -25,7 +25,7 @@
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <UPDATEINFO><![CDATA[Fixed issue with document sequence numbers reset in case of applying dataset second time.
 Fixed issue 15305.]]></UPDATEINFO>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <REFERENCEDATAINFO><![CDATA[Document types and default algorithm for bank statement auto matching]]></REFERENCEDATAINFO>
-<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--A918E3331C404B889D69AA9BFAFB23AC-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--A918E3331C404B889D69AA9BFAFB23AC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--A918E3331C404B889D69AA9BFAFB23AC--></AD_MODULE>
 
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <AD_DEPENDENT_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_DEPENDENT_MODULE_ID>
-<!--89326AE95DAD449D85DFAB2C5B1C6683-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--89326AE95DAD449D85DFAB2C5B1C6683-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Selector]]></DEPENDANT_MODULE_NAME>
 <!--89326AE95DAD449D85DFAB2C5B1C6683-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--B97FC854C6DD41E692161585645A900F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--B97FC854C6DD41E692161585645A900F-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--B97FC854C6DD41E692161585645A900F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--B97FC854C6DD41E692161585645A900F-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--B97FC854C6DD41E692161585645A900F-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--B97FC854C6DD41E692161585645A900F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--B97FC854C6DD41E692161585645A900F-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--B97FC854C6DD41E692161585645A900F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PREFERENCE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_PREFERENCE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -44,28 +44,6 @@
 <!--9B4A5EB695FEA841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--9B4A5EB695FEA841E040A8C0E1077381--></AD_PREFERENCE>
 
-<!--9B4A5EB6974FA841E040A8C0E1077381--><AD_PREFERENCE>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB6974FA841E040A8C0E1077381]]></AD_PREFERENCE_ID>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <ATTRIBUTE><![CDATA[ModalProcess12016E2EDE0245B5A36B84CBA144DBDF]]></ATTRIBUTE>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <VALUE><![CDATA[N]]></VALUE>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <ISPROPERTYLIST><![CDATA[N]]></ISPROPERTYLIST>
-<!--9B4A5EB6974FA841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--9B4A5EB6974FA841E040A8C0E1077381--></AD_PREFERENCE>
-
-<!--9B4A5EB69750A841E040A8C0E1077381--><AD_PREFERENCE>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69750A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <ATTRIBUTE><![CDATA[ModalProcess2EED9BC16DB34D2B80BA40A21564BECF]]></ATTRIBUTE>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <VALUE><![CDATA[N]]></VALUE>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <ISPROPERTYLIST><![CDATA[N]]></ISPROPERTYLIST>
-<!--9B4A5EB69750A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--9B4A5EB69750A841E040A8C0E1077381--></AD_PREFERENCE>
-
 <!--9B4A5EB69751A841E040A8C0E1077381--><AD_PREFERENCE>
 <!--9B4A5EB69751A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69751A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
 <!--9B4A5EB69751A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -88,17 +66,6 @@
 <!--9B4A5EB69752A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--9B4A5EB69752A841E040A8C0E1077381--></AD_PREFERENCE>
 
-<!--9B4A5EB69753A841E040A8C0E1077381--><AD_PREFERENCE>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69753A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <ATTRIBUTE><![CDATA[ModalProcess62E6270312534380B9A8BDF603CA8FBB]]></ATTRIBUTE>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <VALUE><![CDATA[N]]></VALUE>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <ISPROPERTYLIST><![CDATA[N]]></ISPROPERTYLIST>
-<!--9B4A5EB69753A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--9B4A5EB69753A841E040A8C0E1077381--></AD_PREFERENCE>
-
 <!--9B4A5EB69754A841E040A8C0E1077381--><AD_PREFERENCE>
 <!--9B4A5EB69754A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69754A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
 <!--9B4A5EB69754A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -110,17 +77,6 @@
 <!--9B4A5EB69754A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--9B4A5EB69754A841E040A8C0E1077381--></AD_PREFERENCE>
 
-<!--9B4A5EB69755A841E040A8C0E1077381--><AD_PREFERENCE>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69755A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <ATTRIBUTE><![CDATA[ModalProcessB54318B49E984B9CB855AEFB1F474CD6]]></ATTRIBUTE>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <VALUE><![CDATA[N]]></VALUE>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <ISPROPERTYLIST><![CDATA[N]]></ISPROPERTYLIST>
-<!--9B4A5EB69755A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--9B4A5EB69755A841E040A8C0E1077381--></AD_PREFERENCE>
-
 <!--9B4A5EB69756A841E040A8C0E1077381--><AD_PREFERENCE>
 <!--9B4A5EB69756A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69756A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
 <!--9B4A5EB69756A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -154,28 +110,6 @@
 <!--9B4A5EB69758A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
 <!--9B4A5EB69758A841E040A8C0E1077381--></AD_PREFERENCE>
 
-<!--9B4A5EB69759A841E040A8C0E1077381--><AD_PREFERENCE>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB69759A841E040A8C0E1077381]]></AD_PREFERENCE_ID>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <ATTRIBUTE><![CDATA[ModalProcessDC23BB9234174E52879E4B21C8CD1F4B]]></ATTRIBUTE>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <VALUE><![CDATA[N]]></VALUE>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <ISPROPERTYLIST><![CDATA[N]]></ISPROPERTYLIST>
-<!--9B4A5EB69759A841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--9B4A5EB69759A841E040A8C0E1077381--></AD_PREFERENCE>
-
-<!--9B4A5EB6975AA841E040A8C0E1077381--><AD_PREFERENCE>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB6975AA841E040A8C0E1077381]]></AD_PREFERENCE_ID>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <ATTRIBUTE><![CDATA[ModalProcessE011F492B0814A74B63CD1F3B9FF0526]]></ATTRIBUTE>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <VALUE><![CDATA[N]]></VALUE>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <ISPROPERTYLIST><![CDATA[N]]></ISPROPERTYLIST>
-<!--9B4A5EB6975AA841E040A8C0E1077381-->  <AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
-<!--9B4A5EB6975AA841E040A8C0E1077381--></AD_PREFERENCE>
-
 <!--9B4A5EB6975BA841E040A8C0E1077381--><AD_PREFERENCE>
 <!--9B4A5EB6975BA841E040A8C0E1077381-->  <AD_PREFERENCE_ID><![CDATA[9B4A5EB6975BA841E040A8C0E1077381]]></AD_PREFERENCE_ID>
 <!--9B4A5EB6975BA841E040A8C0E1077381-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
--- a/modules/org.openbravo.advpaymentmngt/src-test/org/openbravo/advpaymentmngt/test/draft/FinancialAccountTest.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-test/org/openbravo/advpaymentmngt/test/draft/FinancialAccountTest.java	Tue Apr 26 10:43:12 2011 +0200
@@ -22,7 +22,7 @@
 import java.math.BigDecimal;
 import java.util.List;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.model.common.businesspartner.BusinessPartner;
@@ -82,7 +82,8 @@
   public void testDeleteFinancialAccounts() {
     final OBCriteria<FIN_FinancialAccount> obCriteria = OBDal.getInstance().createCriteria(
         FIN_FinancialAccount.class);
-    obCriteria.add(Expression.eq(FIN_FinancialAccount.PROPERTY_DESCRIPTION, STANDARD_DESCRIPTION));
+    obCriteria
+        .add(Restrictions.eq(FIN_FinancialAccount.PROPERTY_DESCRIPTION, STANDARD_DESCRIPTION));
     final List<FIN_FinancialAccount> finAccs = obCriteria.list();
     for (FIN_FinancialAccount fa : finAccs) {
       System.out.println("Removing payment method: " + fa.getName());
--- a/modules/org.openbravo.advpaymentmngt/src-test/org/openbravo/advpaymentmngt/test/draft/PaymentMethodTest.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-test/org/openbravo/advpaymentmngt/test/draft/PaymentMethodTest.java	Tue Apr 26 10:43:12 2011 +0200
@@ -21,7 +21,7 @@
 
 import java.util.List;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.model.financialmgmt.payment.FIN_PaymentMethod;
@@ -85,7 +85,7 @@
   public void testDeletePaymentMethod() {
     final OBCriteria<FIN_PaymentMethod> obCriteria = OBDal.getInstance().createCriteria(
         FIN_PaymentMethod.class);
-    obCriteria.add(Expression.eq(FIN_PaymentMethod.PROPERTY_DESCRIPTION, STANDARD_DESCRIPTION));
+    obCriteria.add(Restrictions.eq(FIN_PaymentMethod.PROPERTY_DESCRIPTION, STANDARD_DESCRIPTION));
     final List<FIN_PaymentMethod> paymentMethods = obCriteria.list();
     for (FIN_PaymentMethod pm : paymentMethods) {
       System.out.println("Removing payment method: " + pm.getName());
--- a/modules/org.openbravo.advpaymentmngt/src-test/org/openbravo/advpaymentmngt/test/draft/TestUtility.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src-test/org/openbravo/advpaymentmngt/test/draft/TestUtility.java	Tue Apr 26 10:43:12 2011 +0200
@@ -25,7 +25,7 @@
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.process.FIN_AddPayment;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
@@ -79,7 +79,7 @@
     if (checkIfExist) {
       final OBCriteria<FIN_FinancialAccount> obc = OBDal.getInstance().createCriteria(
           FIN_FinancialAccount.class);
-      obc.add(Expression.eq(FIN_FinancialAccount.PROPERTY_NAME, name));
+      obc.add(Restrictions.eq(FIN_FinancialAccount.PROPERTY_NAME, name));
       if (obc.list() != null && obc.list().size() > 0) {
         return obc.list().get(0);
       }
@@ -149,7 +149,7 @@
     if (checkIfExist) {
       final OBCriteria<FIN_PaymentMethod> obc = OBDal.getInstance().createCriteria(
           FIN_PaymentMethod.class);
-      obc.add(Expression.eq(FIN_PaymentMethod.PROPERTY_NAME, name));
+      obc.add(Restrictions.eq(FIN_PaymentMethod.PROPERTY_NAME, name));
       if (obc.list() != null && obc.list().size() > 0) {
         return obc.list().get(0);
       }
@@ -419,9 +419,9 @@
 
     for (Value value : values) {
       if (value.getValue() == null) {
-        obCriteria.add(Expression.isNull(value.getField()));
+        obCriteria.add(Restrictions.isNull(value.getField()));
       } else {
-        obCriteria.add(Expression.eq(value.getField(), value.getValue()));
+        obCriteria.add(Restrictions.eq(value.getField(), value.getValue()));
       }
     }
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.html	Tue Apr 26 10:43:12 2011 +0200
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  *************************************************************************
@@ -80,7 +80,7 @@
       var temp = document.getElementById('sectionGrid');
       temp.parentNode.removeChild(temp);
     }
-    submitCommandForm(strCommand, false, null, null, '_top');
+    submitCommandForm(strCommand, false, null, null);
     return true;
   }
   return true;
@@ -283,7 +283,7 @@
               initialize_MessageBox('messageBoxID');
 
             if (paramXMLParticular != null) {
-              parent.window.close();
+              closePage();
               return true;
             }
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.html	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.html	Tue Apr 26 10:43:12 2011 +0200
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  *************************************************************************
@@ -90,12 +90,12 @@
 </script>
 <script language="JavaScript" type="text/javascript">
 function closeThisPage() {
-    parent.window.close();
+    closePage();
     return true;
 }
 function submitThisPage(strCommand) {
   if (validate(strCommand)) {
-    submitCommandForm(strCommand, false, null, null, '_top');
+    submitCommandForm(strCommand, false, null, null);
     return true;
   }
   return true;
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java	Tue Apr 26 10:43:12 2011 +0200
@@ -29,7 +29,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.process.FIN_AddPayment;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
@@ -457,8 +457,8 @@
         strPmtMethodId);
     OBCriteria<FinAccPaymentMethod> psdFilter = OBDal.getInstance().createCriteria(
         FinAccPaymentMethod.class);
-    psdFilter.add(Expression.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, finAcc));
-    psdFilter.add(Expression.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, finPmtMethod));
+    psdFilter.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, finAcc));
+    psdFilter.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, finPmtMethod));
     for (FinAccPaymentMethod paymentMethod : psdFilter.list()) {
       return isReceipt ? paymentMethod.isAutomaticDeposit() : paymentMethod.isAutomaticWithdrawn();
     }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java	Tue Apr 26 10:43:12 2011 +0200
@@ -30,7 +30,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.process.FIN_AddPayment;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
@@ -255,7 +255,7 @@
       if (bsline.getBusinessPartner() == null) {
         OBCriteria<BusinessPartner> obcBP = OBDal.getInstance().createCriteria(
             BusinessPartner.class);
-        obcBP.add(Expression.eq(BusinessPartner.PROPERTY_NAME, bsline.getBpartnername()));
+        obcBP.add(Restrictions.eq(BusinessPartner.PROPERTY_NAME, bsline.getBpartnername()));
         if (obcBP.list() != null && obcBP.list().size() > 0) {
           xmlDocument.setParameter("businessPartner", obcBP.list().get(0).getId());
           defaultPaymentMethod = (obcBP.list().get(0).getPaymentMethod() != null) ? obcBP.list()
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddTransaction.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddTransaction.java	Tue Apr 26 10:43:12 2011 +0200
@@ -33,7 +33,7 @@
 
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.dao.TransactionsDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
@@ -318,7 +318,7 @@
         FIN_Payment payment = OBDal.getInstance().get(FIN_Payment.class, paymentWithTransaction);
         OBCriteria<FIN_FinaccTransaction> obcTrans = OBDal.getInstance().createCriteria(
             FIN_FinaccTransaction.class);
-        obcTrans.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_FINPAYMENT, payment));
+        obcTrans.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_FINPAYMENT, payment));
         FIN_FinaccTransaction finTrans = obcTrans.list().get(0);
 
         matchBankStatementLine(vars, finTrans, strFinBankStatementLineId);
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ExecutePayments.html	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ExecutePayments.html	Tue Apr 26 10:43:12 2011 +0200
@@ -13,7 +13,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  *************************************************************************
@@ -47,12 +47,12 @@
   }
 
   function submitThisPage() {
-    submitCommandForm('PROCESS', true, frmMain, null, '_top');
+    submitCommandForm('PROCESS', true, frmMain, null);
    // window.close();
     return true;
   }
   function closeThisPage() {
-    parent.window.close();
+    closePage();
     return true;
   }
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ImportBankFile.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ImportBankFile.java	Tue Apr 26 10:43:12 2011 +0200
@@ -30,6 +30,7 @@
 import org.openbravo.base.secureApp.HttpSecureAppServlet;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.dal.service.OBDal;
+import org.openbravo.data.FieldProvider;
 import org.openbravo.erpCommon.ad_actionButton.ActionButtonDefaultData;
 import org.openbravo.erpCommon.utility.ComboTableData;
 import org.openbravo.erpCommon.utility.OBError;
@@ -121,14 +122,16 @@
     xmlDocument.setParameter("help", strHelp);
     xmlDocument.setParameter("tabId", tabId);
     // Bank File Formats
+    boolean isAnyFileFormatInstalled = false;
     try {
       ComboTableData comboTableData = new ComboTableData(vars, this, "TABLEDIR",
           "FIN_BANKFILE_FORMAT_ID", "", "", Utility.getContext(this, vars, "#AccessibleOrgTree",
               "ImportBankFile"), Utility.getContext(this, vars, "#User_Client", "ImportBankFile"),
           0);
       Utility.fillSQLParameters(this, vars, null, comboTableData, "ImportBankFile", "");
-      xmlDocument.setData("reportfinBankFileFormatId", "liststructure", comboTableData
-          .select(false));
+      FieldProvider[] fileFormatCombo = comboTableData.select(false);
+      isAnyFileFormatInstalled = fileFormatCombo.length > 0;
+      xmlDocument.setData("reportfinBankFileFormatId", "liststructure", fileFormatCombo);
       comboTableData = null;
     } catch (Exception ex) {
       throw new ServletException(ex);
@@ -136,9 +139,17 @@
     xmlDocument.setParameter("finBankFileFormatId", "");
 
     if (isDefault) {
-      xmlDocument.setParameter("messageType", "");
-      xmlDocument.setParameter("messageTitle", "");
-      xmlDocument.setParameter("messageMessage", "");
+      if (!isAnyFileFormatInstalled) {
+        xmlDocument.setParameter("messageType", "Warning");
+        xmlDocument.setParameter("messageTitle", Utility.messageBD(this,
+            "APRM_NoBankFileAvailable", vars.getLanguage()));
+        xmlDocument.setParameter("messageMessage", Utility.messageBD(this,
+            "APRM_NoBankFileAvailableInfo", vars.getLanguage()));
+      } else {
+        xmlDocument.setParameter("messageType", "");
+        xmlDocument.setParameter("messageTitle", "");
+        xmlDocument.setParameter("messageMessage", "");
+      }
     } else {
       OBError myMessage = new OBError();
       myMessage.setTitle("");
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/MatchTransaction.java	Tue Apr 26 10:43:12 2011 +0200
@@ -33,7 +33,7 @@
 
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.dao.MatchTransactionDao;
 import org.openbravo.advpaymentmngt.dao.TransactionsDao;
@@ -587,8 +587,8 @@
     try {
       final OBCriteria<FIN_ReconciliationLine_v> obc = OBDal.getInstance().createCriteria(
           FIN_ReconciliationLine_v.class);
-      obc.add(Expression.eq(FIN_ReconciliationLine_v.PROPERTY_RECONCILIATION, reconciliation));
-      obc.add(Expression.isNull(FIN_ReconciliationLine_v.PROPERTY_BANKSTATEMENTLINE));
+      obc.add(Restrictions.eq(FIN_ReconciliationLine_v.PROPERTY_RECONCILIATION, reconciliation));
+      obc.add(Restrictions.isNull(FIN_ReconciliationLine_v.PROPERTY_BANKSTATEMENTLINE));
       obc.setMaxResults(1);
       final List<FIN_ReconciliationLine_v> rec = obc.list();
       return (rec.size() != 0);
@@ -831,8 +831,8 @@
   private FIN_Payment getAlreadyExistingPayment(String strPaymentDocumentNo,
       Organization organization) {
     final OBCriteria<FIN_Payment> obc = OBDal.getInstance().createCriteria(FIN_Payment.class);
-    obc.add(Expression.eq(FIN_Payment.PROPERTY_DOCUMENTNO, strPaymentDocumentNo));
-    obc.add(Expression.eq(FIN_Payment.PROPERTY_ORGANIZATION, organization));
+    obc.add(Restrictions.eq(FIN_Payment.PROPERTY_DOCUMENTNO, strPaymentDocumentNo));
+    obc.add(Restrictions.eq(FIN_Payment.PROPERTY_ORGANIZATION, organization));
     obc.setMaxResults(1);
     final List<FIN_Payment> payments = obc.list();
     if (payments.size() == 0) {
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessPaymentProposal.html	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessPaymentProposal.html	Tue Apr 26 10:43:12 2011 +0200
@@ -13,7 +13,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  *************************************************************************
@@ -51,12 +51,12 @@
 </script>
 <SCRIPT language="JavaScript" type="text/javascript">
   function closeThisPage() {
-    parent.window.close();
+    closePage();
     return true;
   }
   
   function submitThisPage(strCommand) {
-    submitCommandForm(strCommand, false, null, null, '_top');
+    submitCommandForm(strCommand, false, null, null);
     return true;
   }
   
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/Reconciliation.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/Reconciliation.java	Tue Apr 26 10:43:12 2011 +0200
@@ -32,7 +32,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.dao.TransactionsDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
@@ -442,8 +442,8 @@
     try {
       final OBCriteria<FIN_ReconciliationLine_v> obc = OBDal.getInstance().createCriteria(
           FIN_ReconciliationLine_v.class);
-      obc.add(Expression.eq(FIN_ReconciliationLine_v.PROPERTY_RECONCILIATION, reconciliation));
-      obc.add(Expression.isNotNull(FIN_ReconciliationLine_v.PROPERTY_BANKSTATEMENTLINE));
+      obc.add(Restrictions.eq(FIN_ReconciliationLine_v.PROPERTY_RECONCILIATION, reconciliation));
+      obc.add(Restrictions.isNotNull(FIN_ReconciliationLine_v.PROPERTY_BANKSTATEMENTLINE));
       obc.setMaxResults(1);
       final List<FIN_ReconciliationLine_v> rec = obc.list();
       return (rec.size() != 0);
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/SelectExpectedPayments.html	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/SelectExpectedPayments.html	Tue Apr 26 10:43:12 2011 +0200
@@ -12,7 +12,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  *************************************************************************
@@ -103,12 +103,12 @@
 </script>
 <script language="JavaScript" type="text/javascript">
 function closeThisPage() {
-    parent.window.close();
+   closePage();
     return true;
 }
 function submitThisPage(strCommand) {
   if (validate(strCommand)) {
-    submitCommandForm(strCommand, false, null, null, '_top');
+    submitCommandForm(strCommand, false, null, null);
     return true;
   }
   return true;
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_forms/BatchPaymentExecution.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_forms/BatchPaymentExecution.java	Tue Apr 26 10:43:12 2011 +0200
@@ -28,7 +28,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.exception.OBException;
@@ -468,7 +468,7 @@
     OBContext.setAdminMode();
     try {
       OBCriteria<Form> obc = OBDal.getInstance().createCriteria(Form.class);
-      obc.add(Expression.eq(Form.PROPERTY_JAVACLASSNAME, formClassName));
+      obc.add(Restrictions.eq(Form.PROPERTY_JAVACLASSNAME, formClassName));
       if (obc.list() == null || obc.list().size() == 0) {
         throw new OBException(formClassName + ": Error on window data");
       }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_reports/ReportReconciliation.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_reports/ReportReconciliation.java	Tue Apr 26 10:43:12 2011 +0200
@@ -35,9 +35,9 @@
 import net.sf.jasperreports.engine.design.JasperDesign;
 import net.sf.jasperreports.engine.xml.JRXmlLoader;
 
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.ProjectionList;
 import org.hibernate.criterion.Projections;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.MatchTransactionDao;
 import org.openbravo.base.secureApp.HttpSecureAppServlet;
 import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -189,17 +189,17 @@
     try {
       OBCriteria<FIN_FinaccTransaction> obcTrans = OBDal.getInstance().createCriteria(
           FIN_FinaccTransaction.class);
-      obcTrans.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_ACCOUNT, recon.getAccount()));
-      obcTrans.add(Expression.le(FIN_FinaccTransaction.PROPERTY_TRANSACTIONDATE, recon
+      obcTrans.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_ACCOUNT, recon.getAccount()));
+      obcTrans.add(Restrictions.le(FIN_FinaccTransaction.PROPERTY_TRANSACTIONDATE, recon
           .getEndingDate()));
       List<FIN_Reconciliation> afterReconciliations = MatchTransactionDao
           .getReconciliationListAfterDate(recon);
       if (afterReconciliations.size() > 0) {
-        obcTrans.add(Expression.or(
-            Expression.isNull(FIN_FinaccTransaction.PROPERTY_RECONCILIATION), Expression.in(
-                FIN_FinaccTransaction.PROPERTY_RECONCILIATION, afterReconciliations)));
+        obcTrans.add(Restrictions.or(Restrictions
+            .isNull(FIN_FinaccTransaction.PROPERTY_RECONCILIATION), Restrictions.in(
+            FIN_FinaccTransaction.PROPERTY_RECONCILIATION, afterReconciliations)));
       } else {
-        obcTrans.add(Expression.isNull(FIN_FinaccTransaction.PROPERTY_RECONCILIATION));
+        obcTrans.add(Restrictions.isNull(FIN_FinaccTransaction.PROPERTY_RECONCILIATION));
       }
 
       ProjectionList projections = Projections.projectionList();
@@ -248,18 +248,18 @@
       obcBsl.createAlias(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, "bs");
       obcBsl.createAlias(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION, "tr",
           OBCriteria.LEFT_JOIN);
-      obcBsl.add(Expression.le(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, recon
+      obcBsl.add(Restrictions.le(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, recon
           .getEndingDate()));
       List<FIN_Reconciliation> afterReconciliations = MatchTransactionDao
           .getReconciliationListAfterDate(recon);
       if (afterReconciliations.size() > 0) {
-        obcBsl.add(Expression.or(Expression
-            .isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION), Expression.in(
+        obcBsl.add(Restrictions.or(Restrictions
+            .isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION), Restrictions.in(
             "tr." + FIN_FinaccTransaction.PROPERTY_RECONCILIATION, afterReconciliations)));
       } else {
-        obcBsl.add(Expression.isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION));
+        obcBsl.add(Restrictions.isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION));
       }
-      obcBsl.add(Expression.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, recon.getAccount()));
+      obcBsl.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, recon.getAccount()));
       ProjectionList projections = Projections.projectionList();
       projections.add(Projections.sum(FIN_BankStatementLine.PROPERTY_CRAMOUNT));
       projections.add(Projections.sum(FIN_BankStatementLine.PROPERTY_DRAMOUNT));
@@ -296,8 +296,8 @@
     try {
       OBCriteria<FIN_FinaccTransaction> obcTrans = OBDal.getInstance().createCriteria(
           FIN_FinaccTransaction.class);
-      obcTrans.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_ACCOUNT, recon.getAccount()));
-      obcTrans.add(Expression.gt(FIN_FinaccTransaction.PROPERTY_TRANSACTIONDATE, recon
+      obcTrans.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_ACCOUNT, recon.getAccount()));
+      obcTrans.add(Restrictions.gt(FIN_FinaccTransaction.PROPERTY_TRANSACTIONDATE, recon
           .getEndingDate()));
       ProjectionList projections = Projections.projectionList();
       projections.add(Projections.sum(FIN_FinaccTransaction.PROPERTY_PAYMENTAMOUNT));
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java	Tue Apr 26 10:43:12 2011 +0200
@@ -26,7 +26,6 @@
 import java.util.List;
 
 import org.hibernate.criterion.Criterion;
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.APRMPendingPaymentFromInvoice;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
@@ -158,7 +157,7 @@
       // block schedule payments in other payment proposal
       final OBCriteria<FIN_PaymentPropDetail> obc = OBDal.getInstance().createCriteria(
           FIN_PaymentPropDetail.class);
-      obc.add(Expression.isNotNull(FIN_PaymentPropDetail.PROPERTY_FINPAYMENTSCHEDULEDETAIL));
+      obc.add(Restrictions.isNotNull(FIN_PaymentPropDetail.PROPERTY_FINPAYMENTSCHEDULEDETAIL));
       if (obc.list() != null && obc.list().size() > 0) {
         List<FIN_PaymentScheduleDetail> aux = new ArrayList<FIN_PaymentScheduleDetail>();
         for (FIN_PaymentPropDetail ppd : obc.list()) {
@@ -886,7 +885,7 @@
       String strOrgId, boolean excludePaymentMethodWithoutAccount) {
     final OBCriteria<FIN_PaymentMethod> obc = OBDal.getInstance().createCriteria(
         FIN_PaymentMethod.class);
-    obc.add(Expression.in("organization.id", OBContext.getOBContext()
+    obc.add(Restrictions.in("organization.id", OBContext.getOBContext()
         .getOrganizationStructureProvider().getNaturalTree(strOrgId)));
     obc.setFilterOnReadableOrganization(false);
 
@@ -899,7 +898,7 @@
       if (payMethods.isEmpty()) {
         return (new ArrayList<FIN_PaymentMethod>());
       }
-      obc.add(Expression.in("id", payMethods));
+      obc.add(Restrictions.in("id", payMethods));
     } else {
       if (excludePaymentMethodWithoutAccount) {
 
@@ -915,7 +914,7 @@
         if (payMethods.isEmpty()) {
           return (new ArrayList<FIN_PaymentMethod>());
         }
-        obc.add(Expression.in("id", payMethods));
+        obc.add(Restrictions.in("id", payMethods));
       }
     }
 
@@ -926,12 +925,12 @@
       String strOrgId, String strCurrencyId) {
     final OBCriteria<FIN_FinancialAccount> obc = OBDal.getInstance().createCriteria(
         FIN_FinancialAccount.class);
-    obc.add(Expression.in("organization.id", OBContext.getOBContext()
+    obc.add(Restrictions.in("organization.id", OBContext.getOBContext()
         .getOrganizationStructureProvider().getNaturalTree(strOrgId)));
     obc.setFilterOnReadableOrganization(false);
 
     if (strCurrencyId != null && !strCurrencyId.isEmpty()) {
-      obc.add(Expression.eq(FIN_FinancialAccount.PROPERTY_CURRENCY, OBDal.getInstance().get(
+      obc.add(Restrictions.eq(FIN_FinancialAccount.PROPERTY_CURRENCY, OBDal.getInstance().get(
           Currency.class, strCurrencyId)));
     }
 
@@ -978,9 +977,9 @@
     private void refresh() {
       // finAccs.size() must be > 0
       if (compoundexp == null) {
-        compoundexp = Expression.in("id", finAccs);
+        compoundexp = Restrictions.in("id", finAccs);
       } else {
-        compoundexp = Expression.or(compoundexp, Expression.in("id", finAccs));
+        compoundexp = Restrictions.or(compoundexp, Restrictions.in("id", finAccs));
       }
       finAccs = new ArrayList<String>();
     }
@@ -990,9 +989,9 @@
       FIN_PaymentMethod paymentMethod) {
     final OBCriteria<FinAccPaymentMethod> obc = OBDal.getInstance().createCriteria(
         FinAccPaymentMethod.class);
-    obc.add(Expression.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, account));
-    obc.add(Expression.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, paymentMethod));
-    obc.add(Expression.eq(FinAccPaymentMethod.PROPERTY_ACTIVE, true));
+    obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, account));
+    obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, paymentMethod));
+    obc.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACTIVE, true));
     obc.setFilterOnReadableClients(false);
     obc.setFilterOnReadableOrganization(false);
     return obc.list().get(0);
@@ -1054,9 +1053,9 @@
       PaymentExecutionProcess executionProcess) {
     OBCriteria<PaymentExecutionProcessParameter> obc = OBDal.getInstance().createCriteria(
         PaymentExecutionProcessParameter.class);
-    obc.add(Expression.eq(PaymentExecutionProcessParameter.PROPERTY_PAYMENTEXECUTIONPROCESS,
+    obc.add(Restrictions.eq(PaymentExecutionProcessParameter.PROPERTY_PAYMENTEXECUTIONPROCESS,
         executionProcess));
-    obc.add(Expression.eq(PaymentExecutionProcessParameter.PROPERTY_PARAMETERTYPE, "IN"));
+    obc.add(Restrictions.eq(PaymentExecutionProcessParameter.PROPERTY_PARAMETERTYPE, "IN"));
     return obc.list();
   }
 
@@ -1115,16 +1114,16 @@
           financialAccountId);
 
       OBCriteria<FIN_Payment> obcPayment = OBDal.getInstance().createCriteria(FIN_Payment.class);
-      obcPayment.add(Expression.in("organization.id", OBContext.getOBContext()
+      obcPayment.add(Restrictions.in("organization.id", OBContext.getOBContext()
           .getOrganizationStructureProvider().getParentTree(organizationId, true)));
-      obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_STATUS, "RPAE"));
-      obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_PAYMENTMETHOD, obPayMethod));
-      obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_ACCOUNT, obFinAccount));
-      obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
+      obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_STATUS, "RPAE"));
+      obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_PAYMENTMETHOD, obPayMethod));
+      obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_ACCOUNT, obFinAccount));
+      obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
       if (dateFrom != null)
-        obcPayment.add(Expression.ge(FIN_Payment.PROPERTY_PAYMENTDATE, dateFrom));
+        obcPayment.add(Restrictions.ge(FIN_Payment.PROPERTY_PAYMENTDATE, dateFrom));
       if (dateTo != null)
-        obcPayment.add(Expression.lt(FIN_Payment.PROPERTY_PAYMENTDATE, dateTo));
+        obcPayment.add(Restrictions.lt(FIN_Payment.PROPERTY_PAYMENTDATE, dateTo));
 
       boolean ascDesc = true;
       if (strAscDesc != null && !strAscDesc.isEmpty())
@@ -1148,7 +1147,7 @@
     OBCriteria<FIN_PaymentScheduleDetail> psdCriteria = OBDal.getInstance().createCriteria(
         FIN_PaymentScheduleDetail.class);
     if (!paySchedList.isEmpty())
-      psdCriteria.add(Expression.in(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE,
+      psdCriteria.add(Restrictions.in(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE,
           paySchedList));
     for (FIN_PaymentScheduleDetail psd : psdCriteria.list()) {
       if (psd.getPaymentDetails() != null) {
@@ -1166,7 +1165,7 @@
   public void setPaymentExecuting(FIN_Payment payment, boolean executing) {
     OBCriteria<APRMPendingPaymentFromInvoice> ppfiCriteria = OBDal.getInstance().createCriteria(
         APRMPendingPaymentFromInvoice.class);
-    ppfiCriteria.add(Expression.eq(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENT, payment));
+    ppfiCriteria.add(Restrictions.eq(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENT, payment));
     List<APRMPendingPaymentFromInvoice> pendingPayments = ppfiCriteria.list();
     if (pendingPayments != null && pendingPayments.size() > 0) {
       APRMPendingPaymentFromInvoice pendingPayment = pendingPayments.get(0);
@@ -1179,7 +1178,7 @@
   public boolean isPaymentBeingExecuted(FIN_Payment payment) {
     OBCriteria<APRMPendingPaymentFromInvoice> ppfiCriteria = OBDal.getInstance().createCriteria(
         APRMPendingPaymentFromInvoice.class);
-    ppfiCriteria.add(Expression.eq(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENT, payment));
+    ppfiCriteria.add(Restrictions.eq(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENT, payment));
     List<APRMPendingPaymentFromInvoice> pendingPayments = ppfiCriteria.list();
     if (pendingPayments != null && pendingPayments.size() > 0) {
       return pendingPayments.get(0).isProcessNow();
@@ -1191,7 +1190,7 @@
   public void removeFromExecutionPending(FIN_Payment payment) {
     OBCriteria<APRMPendingPaymentFromInvoice> ppfiCriteria = OBDal.getInstance().createCriteria(
         APRMPendingPaymentFromInvoice.class);
-    ppfiCriteria.add(Expression.eq(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENT, payment));
+    ppfiCriteria.add(Restrictions.eq(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENT, payment));
     List<APRMPendingPaymentFromInvoice> pendingPayments = ppfiCriteria.list();
     OBDal.getInstance().remove(pendingPayments.get(0));
     OBDal.getInstance().flush();
@@ -1200,7 +1199,7 @@
   public List<APRMPendingPaymentFromInvoice> getPendingPayments() {
     OBCriteria<APRMPendingPaymentFromInvoice> ppfiCriteria = OBDal.getInstance().createCriteria(
         APRMPendingPaymentFromInvoice.class);
-    ppfiCriteria.add(Expression.eq(APRMPendingPaymentFromInvoice.PROPERTY_PROCESSNOW, false));
+    ppfiCriteria.add(Restrictions.eq(APRMPendingPaymentFromInvoice.PROPERTY_PROCESSNOW, false));
     ppfiCriteria.addOrderBy(APRMPendingPaymentFromInvoice.PROPERTY_PAYMENTEXECUTIONPROCESS, false);
     ppfiCriteria.addOrderBy(APRMPendingPaymentFromInvoice.PROPERTY_ORGANIZATION, false);
     return ppfiCriteria.list();
@@ -1216,11 +1215,11 @@
 
   public List<FIN_Payment> getCustomerPaymentsWithCredit(BusinessPartner bp, boolean isReceipt) {
     OBCriteria<FIN_Payment> obcPayment = OBDal.getInstance().createCriteria(FIN_Payment.class);
-    obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
-    obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
-    obcPayment.add(Expression.ne(FIN_Payment.PROPERTY_GENERATEDCREDIT, BigDecimal.ZERO));
-    obcPayment.add(Expression.ne(FIN_Payment.PROPERTY_STATUS, "RPAP"));
-    obcPayment.add(Expression.neProperty(FIN_Payment.PROPERTY_GENERATEDCREDIT,
+    obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
+    obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
+    obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_GENERATEDCREDIT, BigDecimal.ZERO));
+    obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_STATUS, "RPAP"));
+    obcPayment.add(Restrictions.neProperty(FIN_Payment.PROPERTY_GENERATEDCREDIT,
         FIN_Payment.PROPERTY_USEDCREDIT));
     obcPayment.addOrderBy(FIN_Payment.PROPERTY_PAYMENTDATE, true);
     obcPayment.addOrderBy(FIN_Payment.PROPERTY_DOCUMENTNO, true);
@@ -1229,10 +1228,10 @@
 
   public List<FIN_Payment> getCustomerPaymentsWithUsedCredit(BusinessPartner bp, Boolean isReceipt) {
     OBCriteria<FIN_Payment> obcPayment = OBDal.getInstance().createCriteria(FIN_Payment.class);
-    obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
-    obcPayment.add(Expression.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
-    obcPayment.add(Expression.ne(FIN_Payment.PROPERTY_GENERATEDCREDIT, BigDecimal.ZERO));
-    obcPayment.add(Expression.ne(FIN_Payment.PROPERTY_USEDCREDIT, BigDecimal.ZERO));
+    obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
+    obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
+    obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_GENERATEDCREDIT, BigDecimal.ZERO));
+    obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_USEDCREDIT, BigDecimal.ZERO));
     obcPayment.addOrderBy(FIN_Payment.PROPERTY_PAYMENTDATE, false);
     obcPayment.addOrderBy(FIN_Payment.PROPERTY_DOCUMENTNO, false);
     return obcPayment.list();
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/MatchTransactionDao.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/MatchTransactionDao.java	Tue Apr 26 10:43:12 2011 +0200
@@ -26,9 +26,9 @@
 
 import javax.servlet.ServletException;
 
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.ProjectionList;
 import org.hibernate.criterion.Projections;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.base.structure.BaseOBObject;
@@ -61,7 +61,7 @@
   public static FIN_Reconciliation getReconciliationPending() {
     OBCriteria<FIN_Reconciliation> obCriteria = OBDal.getInstance().createCriteria(
         FIN_Reconciliation.class);
-    obCriteria.add(Expression.eq(FIN_Reconciliation.PROPERTY_PROCESSED, false));
+    obCriteria.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_PROCESSED, false));
     List<FIN_Reconciliation> lines = obCriteria.list();
 
     if (lines.isEmpty())
@@ -73,9 +73,9 @@
   public static BigDecimal getClearedLinesAmount(String strReconciliationId) {
     OBCriteria<FIN_FinaccTransaction> obCriteria = OBDal.getInstance().createCriteria(
         FIN_FinaccTransaction.class);
-    obCriteria.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_RECONCILIATION, MatchTransactionDao
-        .getObject(FIN_Reconciliation.class, strReconciliationId)));
-    obCriteria.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_STATUS, "RPPC"));
+    obCriteria.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_RECONCILIATION,
+        MatchTransactionDao.getObject(FIN_Reconciliation.class, strReconciliationId)));
+    obCriteria.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_STATUS, "RPPC"));
     List<FIN_FinaccTransaction> lines = obCriteria.list();
 
     BigDecimal total = new BigDecimal("0");
@@ -96,9 +96,9 @@
     FIN_FinancialAccount financialAccount = MatchTransactionDao.getObject(
         FIN_FinancialAccount.class, strFinancialAccountId);
     // FIXME : ****There should be some other filter, like the reconciliation id?
-    obCriteria.add(Expression.in(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, financialAccount
+    obCriteria.add(Restrictions.in(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, financialAccount
         .getFINBankStatementList()));
-    obCriteria.add(Expression.isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION));
+    obCriteria.add(Restrictions.isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION));
     obCriteria.setMaxResults(1);
     List<FIN_BankStatementLine> lines = obCriteria.list();
 
@@ -345,7 +345,7 @@
       final OBCriteria<FIN_BankStatementLine> obc = OBDal.getInstance().createCriteria(
           FIN_BankStatementLine.class);
       obc.createAlias(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, "bs");
-      obc.add(Expression.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, financialAccount));
+      obc.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, financialAccount));
       obc.addOrderBy(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, false);
       obc.setMaxResults(1);
       final List<FIN_BankStatementLine> bst = obc.list();
@@ -364,8 +364,8 @@
     try {
       final OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
           FIN_Reconciliation.class);
-      obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_PROCESSED, true));
-      obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, financialAccount));
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_PROCESSED, true));
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, financialAccount));
       obc.addOrderBy(FIN_Reconciliation.PROPERTY_ENDINGDATE, false);
       obc.setMaxResults(1);
       final List<FIN_Reconciliation> rec = obc.list();
@@ -397,11 +397,11 @@
       obcBsl.createAlias(FIN_BankStatementLine.PROPERTY_BANKSTATEMENT, "bs");
       obcBsl.createAlias(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION, "tr",
           OBCriteria.LEFT_JOIN);
-      obcBsl.add(Expression.or(Expression
-          .isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION), Expression.eq("tr."
-          + FIN_FinaccTransaction.PROPERTY_RECONCILIATION, reconciliation)));
+      obcBsl.add(Restrictions.or(Restrictions
+          .isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION), Restrictions.eq(
+          "tr." + FIN_FinaccTransaction.PROPERTY_RECONCILIATION, reconciliation)));
 
-      obcBsl.add(Expression.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, reconciliation
+      obcBsl.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, reconciliation
           .getAccount()));
       ProjectionList projections = Projections.projectionList();
       projections.add(Projections.sum(FIN_BankStatementLine.PROPERTY_CRAMOUNT));
@@ -444,15 +444,15 @@
 
       List<FIN_Reconciliation> afterReconciliations = getReconciliationListAfterDate(lastReconciliation);
       if (afterReconciliations.size() > 0) {
-        obcBsl.add(Expression.or(Expression
-            .isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION), Expression.in(
+        obcBsl.add(Restrictions.or(Restrictions
+            .isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION), Restrictions.in(
             "tr." + FIN_FinaccTransaction.PROPERTY_RECONCILIATION, afterReconciliations)));
       } else {
-        obcBsl.add(Expression.isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION));
+        obcBsl.add(Restrictions.isNull(FIN_BankStatementLine.PROPERTY_FINANCIALACCOUNTTRANSACTION));
       }
-      obcBsl.add(Expression.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, lastReconciliation
+      obcBsl.add(Restrictions.eq("bs." + FIN_BankStatement.PROPERTY_ACCOUNT, lastReconciliation
           .getAccount()));
-      obcBsl.add(Expression.le(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, lastReconciliation
+      obcBsl.add(Restrictions.le(FIN_BankStatementLine.PROPERTY_TRANSACTIONDATE, lastReconciliation
           .getTransactionDate()));
       ProjectionList projections = Projections.projectionList();
       projections.add(Projections.sum(FIN_BankStatementLine.PROPERTY_CRAMOUNT));
@@ -486,8 +486,8 @@
     try {
       OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
           FIN_Reconciliation.class);
-      obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
-      obc.add(Expression.gt(FIN_Reconciliation.PROPERTY_CREATIONDATE, reconciliation
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
+      obc.add(Restrictions.gt(FIN_Reconciliation.PROPERTY_CREATIONDATE, reconciliation
           .getCreationDate()));
       reconciliations = obc.list();
     } finally {
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/TransactionsDao.java	Tue Apr 26 10:43:12 2011 +0200
@@ -25,7 +25,7 @@
 import java.util.Date;
 import java.util.List;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -129,7 +129,7 @@
     try {
       final OBCriteria<FIN_FinaccTransaction> obc = OBDal.getInstance().createCriteria(
           FIN_FinaccTransaction.class);
-      obc.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_ACCOUNT, financialAccount));
+      obc.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_ACCOUNT, financialAccount));
       obc.addOrderBy(FIN_FinaccTransaction.PROPERTY_LINENO, false);
       obc.setMaxResults(1);
       final List<FIN_FinaccTransaction> fat = obc.list();
@@ -189,11 +189,11 @@
     try {
       final OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
           FIN_Reconciliation.class);
-      obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, account));
+      obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, account));
       if ("Y".equals(isProcessed)) {
-        obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_PROCESSED, true));
+        obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_PROCESSED, true));
       } else if ("N".equals(isProcessed)) {
-        obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_PROCESSED, false));
+        obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_PROCESSED, false));
       }
       obc.addOrderBy(FIN_Reconciliation.PROPERTY_ENDINGDATE, false);
       obc.setMaxResults(1);
@@ -231,9 +231,9 @@
   public static void updateAccountingDate(FIN_FinaccTransaction transaction) {
     final String FIN_FINACC_TRANSACTION_TABLE = "4D8C3B3C31D1410DA046140C9F024D17";
     OBCriteria<AccountingFact> obcAF = OBDal.getInstance().createCriteria(AccountingFact.class);
-    obcAF.add(Expression.eq(AccountingFact.PROPERTY_TABLE, OBDal.getInstance().get(Table.class,
+    obcAF.add(Restrictions.eq(AccountingFact.PROPERTY_TABLE, OBDal.getInstance().get(Table.class,
         FIN_FINACC_TRANSACTION_TABLE)));
-    obcAF.add(Expression.eq(AccountingFact.PROPERTY_RECORDID, transaction.getId()));
+    obcAF.add(Restrictions.eq(AccountingFact.PROPERTY_RECORDID, transaction.getId()));
     for (AccountingFact aFact : obcAF.list()) {
       aFact.setAccountingDate(transaction.getTransactionDate());
       aFact.setTransactionDate(transaction.getTransactionDate());
@@ -245,8 +245,8 @@
   public static Period getPeriod(Date date) {
     Period period = null;
     OBCriteria<Period> obcPe = OBDal.getInstance().createCriteria(Period.class);
-    obcPe.add(Expression.le(Period.PROPERTY_ENDINGDATE, date));
-    obcPe.add(Expression.ge(Period.PROPERTY_STARTINGDATE, date));
+    obcPe.add(Restrictions.le(Period.PROPERTY_ENDINGDATE, date));
+    obcPe.add(Restrictions.ge(Period.PROPERTY_STARTINGDATE, date));
     if (obcPe.list() != null && obcPe.list().size() > 0) {
       period = obcPe.list().get(0);
     }
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java	Tue Apr 26 10:43:12 2011 +0200
@@ -29,7 +29,7 @@
 
 import org.hibernate.Query;
 import org.hibernate.Session;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.exception.OBException;
@@ -525,20 +525,21 @@
     try {
       OBCriteria<FIN_PaymentScheduleDetail> psdFilter = OBDal.getInstance().createCriteria(
           FIN_PaymentScheduleDetail.class);
-      psdFilter.add(Expression.eq(FIN_PaymentScheduleDetail.PROPERTY_CLIENT, psd.getClient()));
-      psdFilter.add(Expression.eq(FIN_PaymentScheduleDetail.PROPERTY_ORGANIZATION, psd
+      psdFilter.add(Restrictions.eq(FIN_PaymentScheduleDetail.PROPERTY_CLIENT, psd.getClient()));
+      psdFilter.add(Restrictions.eq(FIN_PaymentScheduleDetail.PROPERTY_ORGANIZATION, psd
           .getOrganization()));
-      psdFilter.add(Expression.isNull(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS));
+      psdFilter.add(Restrictions.isNull(FIN_PaymentScheduleDetail.PROPERTY_PAYMENTDETAILS));
       if (psd.getOrderPaymentSchedule() == null)
-        psdFilter.add(Expression.isNull(FIN_PaymentScheduleDetail.PROPERTY_ORDERPAYMENTSCHEDULE));
+        psdFilter.add(Restrictions.isNull(FIN_PaymentScheduleDetail.PROPERTY_ORDERPAYMENTSCHEDULE));
       else
-        psdFilter.add(Expression.eq(FIN_PaymentScheduleDetail.PROPERTY_ORDERPAYMENTSCHEDULE, psd
+        psdFilter.add(Restrictions.eq(FIN_PaymentScheduleDetail.PROPERTY_ORDERPAYMENTSCHEDULE, psd
             .getOrderPaymentSchedule()));
       if (psd.getInvoicePaymentSchedule() == null)
-        psdFilter.add(Expression.isNull(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE));
+        psdFilter.add(Restrictions
+            .isNull(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE));
       else
-        psdFilter.add(Expression.eq(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE, psd
-            .getInvoicePaymentSchedule()));
+        psdFilter.add(Restrictions.eq(FIN_PaymentScheduleDetail.PROPERTY_INVOICEPAYMENTSCHEDULE,
+            psd.getInvoicePaymentSchedule()));
 
       // Update amount and remove payment schedule detail
       final List<String> removedPDSIds = new ArrayList<String>();
@@ -655,8 +656,8 @@
   public static Boolean isForcedFinancialAccountTransaction(FIN_Payment payment) {
     OBCriteria<FinAccPaymentMethod> psdFilter = OBDal.getInstance().createCriteria(
         FinAccPaymentMethod.class);
-    psdFilter.add(Expression.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, payment.getAccount()));
-    psdFilter.add(Expression.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, payment
+    psdFilter.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, payment.getAccount()));
+    psdFilter.add(Restrictions.eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, payment
         .getPaymentMethod()));
     for (FinAccPaymentMethod paymentMethod : psdFilter.list()) {
       return payment.isReceipt() ? paymentMethod.isAutomaticDeposit() : paymentMethod
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentMonitorProcess.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentMonitorProcess.java	Tue Apr 26 10:43:12 2011 +0200
@@ -24,8 +24,8 @@
 import java.util.List;
 
 import org.hibernate.LockMode;
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Projections;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.dal.core.OBContext;
@@ -76,9 +76,9 @@
     try {
       int counter = 0;
       final OBCriteria<Invoice> obc = OBDal.getInstance().createCriteria(Invoice.class);
-      obc.add(Expression.eq(Invoice.PROPERTY_PROCESSED, true));
-      obc.add(Expression.ne(Invoice.PROPERTY_OUTSTANDINGAMOUNT, BigDecimal.ZERO));
-      obc.add(Expression.isNotEmpty(Invoice.PROPERTY_FINPAYMENTSCHEDULELIST));
+      obc.add(Restrictions.eq(Invoice.PROPERTY_PROCESSED, true));
+      obc.add(Restrictions.ne(Invoice.PROPERTY_OUTSTANDINGAMOUNT, BigDecimal.ZERO));
+      obc.add(Restrictions.isNotEmpty(Invoice.PROPERTY_FINPAYMENTSCHEDULELIST));
 
       // For Background process execution at system level
       if (OBContext.getOBContext().isInAdministratorMode()) {
@@ -122,8 +122,8 @@
 
     OBContext.setAdminMode();
     try {
-      obc.add(Expression.eq(FIN_PaymentSchedule.PROPERTY_INVOICE, invoice));
-      obc.add(Expression.ne(FIN_PaymentSchedule.PROPERTY_OUTSTANDINGAMOUNT, BigDecimal.ZERO));
+      obc.add(Restrictions.eq(FIN_PaymentSchedule.PROPERTY_INVOICE, invoice));
+      obc.add(Restrictions.ne(FIN_PaymentSchedule.PROPERTY_OUTSTANDINGAMOUNT, BigDecimal.ZERO));
       obc.setProjection(Projections.min(FIN_PaymentSchedule.PROPERTY_DUEDATE));
       Object o = obc.list().get(0);
       if (o != null) {
@@ -156,18 +156,18 @@
   private static boolean isPreferenceOfModule(String property, String moduleId) {
 
     final OBCriteria<Preference> obcNotSel = OBDal.getInstance().createCriteria(Preference.class);
-    obcNotSel.add(Expression.eq(Preference.PROPERTY_PROPERTY, property));
-    obcNotSel.add(Expression.eq(Preference.PROPERTY_MODULE, OBDal.getInstance().get(Module.class,
+    obcNotSel.add(Restrictions.eq(Preference.PROPERTY_PROPERTY, property));
+    obcNotSel.add(Restrictions.eq(Preference.PROPERTY_MODULE, OBDal.getInstance().get(Module.class,
         moduleId)));
-    obcNotSel.add(Expression.eq(Preference.PROPERTY_SELECTED, false));
+    obcNotSel.add(Restrictions.eq(Preference.PROPERTY_SELECTED, false));
     obcNotSel.setFilterOnReadableClients(false);
     obcNotSel.setFilterOnReadableOrganization(false);
 
     final OBCriteria<Preference> obcSel = OBDal.getInstance().createCriteria(Preference.class);
-    obcSel.add(Expression.eq(Preference.PROPERTY_PROPERTY, property));
-    obcSel.add(Expression.eq(Preference.PROPERTY_MODULE, OBDal.getInstance().get(Module.class,
+    obcSel.add(Restrictions.eq(Preference.PROPERTY_PROPERTY, property));
+    obcSel.add(Restrictions.eq(Preference.PROPERTY_MODULE, OBDal.getInstance().get(Module.class,
         moduleId)));
-    obcSel.add(Expression.eq(Preference.PROPERTY_SELECTED, true));
+    obcSel.add(Restrictions.eq(Preference.PROPERTY_SELECTED, true));
     obcSel.setFilterOnReadableClients(false);
     obcSel.setFilterOnReadableOrganization(false);
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java	Tue Apr 26 10:43:12 2011 +0200
@@ -24,7 +24,7 @@
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.dao.TransactionsDao;
 import org.openbravo.advpaymentmngt.exception.NoExecutionProcessFoundException;
@@ -390,7 +390,7 @@
   private static boolean hasTransaction(FIN_Payment payment) {
     OBCriteria<FIN_FinaccTransaction> transaction = OBDal.getInstance().createCriteria(
         FIN_FinaccTransaction.class);
-    transaction.add(Expression.eq(FIN_FinaccTransaction.PROPERTY_FINPAYMENT, payment));
+    transaction.add(Restrictions.eq(FIN_FinaccTransaction.PROPERTY_FINPAYMENT, payment));
     List<FIN_FinaccTransaction> list = transaction.list();
     if (list == null || list.size() == 0)
       return false;
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ReconciliationProcess.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ReconciliationProcess.java	Tue Apr 26 10:43:12 2011 +0200
@@ -20,8 +20,8 @@
 
 import java.util.List;
 
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Order;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -124,10 +124,12 @@
   private boolean isLastReconciliation(FIN_Reconciliation reconciliation) {
     final OBCriteria<FIN_Reconciliation> obc = OBDal.getInstance().createCriteria(
         FIN_Reconciliation.class);
-    obc.add(Expression.ge(FIN_Reconciliation.PROPERTY_ENDINGDATE, reconciliation.getEndingDate()));
-    obc.add(Expression.gt(FIN_Reconciliation.PROPERTY_CREATIONDATE, reconciliation
+    obc
+        .add(Restrictions
+            .ge(FIN_Reconciliation.PROPERTY_ENDINGDATE, reconciliation.getEndingDate()));
+    obc.add(Restrictions.gt(FIN_Reconciliation.PROPERTY_CREATIONDATE, reconciliation
         .getCreationDate()));
-    obc.add(Expression.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
+    obc.add(Restrictions.eq(FIN_Reconciliation.PROPERTY_ACCOUNT, reconciliation.getAccount()));
     obc.addOrder(Order.asc(FIN_Reconciliation.PROPERTY_ENDINGDATE));
     obc.addOrder(Order.asc(FIN_Reconciliation.PROPERTY_CREATIONDATE));
     final List<FIN_Reconciliation> reconciliations = obc.list();
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_BankStatementImport.java	Tue Apr 26 10:43:12 2011 +0200
@@ -162,7 +162,8 @@
     } else if (getMyError() != null && getMyError().getType().toLowerCase().equals("success")) {
       return getMyError();
     } else {
-      return getOBError(conn, vars, numberOfLines + " " + "@RowsInserted@", "Success", "Success");
+      return getOBError(conn, vars, "@APRM_BankStatementNo@ " + bankStatement.getDocumentNo()
+          + "<br/>" + numberOfLines + " " + "@RowsInserted@", "Success", "Success");
     }
   }
 
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java	Tue Apr 26 10:43:12 2011 +0200
@@ -34,7 +34,7 @@
 
 import org.apache.commons.lang.time.DateUtils;
 import org.apache.log4j.Logger;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.dao.AdvPaymentMngtDao;
 import org.openbravo.base.secureApp.VariablesSecureApp;
 import org.openbravo.base.session.OBPropertiesProvider;
@@ -295,9 +295,9 @@
     DocumentType outDocType = null;
     OBCriteria<DocumentType> obcDoc = OBDal.getInstance().createCriteria(DocumentType.class);
 
-    obcDoc.add(Expression.in("organization.id", OBContext.getOBContext()
+    obcDoc.add(Restrictions.in("organization.id", OBContext.getOBContext()
         .getOrganizationStructureProvider().getParentTree(org.getId(), true)));
-    obcDoc.add(Expression.eq(DocumentType.PROPERTY_DOCUMENTCATEGORY, docCategory));
+    obcDoc.add(Restrictions.eq(DocumentType.PROPERTY_DOCUMENTCATEGORY, docCategory));
     obcDoc.addOrderBy(DocumentType.PROPERTY_DEFAULT, false);
     obcDoc.addOrderBy(DocumentType.PROPERTY_ID, false);
     List<DocumentType> docTypeList = obcDoc.list();
@@ -322,7 +322,7 @@
       Sequence seq = docType.getDocumentSequence();
       if (seq == null && tableName != null) {
         OBCriteria<Sequence> obcSeq = OBDal.getInstance().createCriteria(Sequence.class);
-        obcSeq.add(Expression.eq(Sequence.PROPERTY_NAME, tableName));
+        obcSeq.add(Restrictions.eq(Sequence.PROPERTY_NAME, tableName));
         if (obcSeq != null && obcSeq.list().size() > 0) {
           seq = obcSeq.list().get(0);
         }
@@ -536,23 +536,23 @@
     obc.setFilterOnReadableOrganization(setFilterOrg);
     for (Value value : values) {
       if (value.getValue() == null && "==".equals(value.getOperator())) {
-        obc.add(Expression.isNull(value.getField()));
+        obc.add(Restrictions.isNull(value.getField()));
       } else if (value.getValue() == null && "!=".equals(value.getOperator())) {
-        obc.add(Expression.isNotNull(value.getField()));
+        obc.add(Restrictions.isNotNull(value.getField()));
       } else if ("==".equals(value.getOperator())) {
-        obc.add(Expression.eq(value.getField(), value.getValue()));
+        obc.add(Restrictions.eq(value.getField(), value.getValue()));
       } else if ("!=".equals(value.getOperator())) {
-        obc.add(Expression.ne(value.getField(), value.getValue()));
+        obc.add(Restrictions.ne(value.getField(), value.getValue()));
       } else if ("<".equals(value.getOperator())) {
-        obc.add(Expression.lt(value.getField(), value.getValue()));
+        obc.add(Restrictions.lt(value.getField(), value.getValue()));
       } else if (">".equals(value.getOperator())) {
-        obc.add(Expression.gt(value.getField(), value.getValue()));
+        obc.add(Restrictions.gt(value.getField(), value.getValue()));
       } else if ("<=".equals(value.getOperator())) {
-        obc.add(Expression.le(value.getField(), value.getValue()));
+        obc.add(Restrictions.le(value.getField(), value.getValue()));
       } else if (">=".equals(value.getOperator())) {
-        obc.add(Expression.ge(value.getField(), value.getValue()));
+        obc.add(Restrictions.ge(value.getField(), value.getValue()));
       } else {
-        obc.add(Expression.eq(value.getField(), value.getValue()));
+        obc.add(Restrictions.eq(value.getField(), value.getValue()));
       }
     }
     return obc.list();
@@ -584,26 +584,26 @@
     OBCriteria<T> obc = OBDal.getInstance().createCriteria(clazz);
     obc.setFilterOnReadableClients(false);
     obc.setFilterOnReadableOrganization(false);
-    obc.add(Expression.ne(Client.PROPERTY_ID, "0"));
+    obc.add(Restrictions.ne(Client.PROPERTY_ID, "0"));
     for (Value value : values) {
       if (value.getValue() == null && "==".equals(value.getOperator())) {
-        obc.add(Expression.isNull(value.getField()));
+        obc.add(Restrictions.isNull(value.getField()));
       } else if (value.getValue() == null && "!=".equals(value.getOperator())) {
-        obc.add(Expression.isNotNull(value.getField()));
+        obc.add(Restrictions.isNotNull(value.getField()));
       } else if ("==".equals(value.getOperator())) {
-        obc.add(Expression.eq(value.getField(), value.getValue()));
+        obc.add(Restrictions.eq(value.getField(), value.getValue()));
       } else if ("!=".equals(value.getOperator())) {
-        obc.add(Expression.ne(value.getField(), value.getValue()));
+        obc.add(Restrictions.ne(value.getField(), value.getValue()));
       } else if ("<".equals(value.getOperator())) {
-        obc.add(Expression.lt(value.getField(), value.getValue()));
+        obc.add(Restrictions.lt(value.getField(), value.getValue()));
       } else if (">".equals(value.getOperator())) {
-        obc.add(Expression.gt(value.getField(), value.getValue()));
+        obc.add(Restrictions.gt(value.getField(), value.getValue()));
       } else if ("<=".equals(value.getOperator())) {
-        obc.add(Expression.le(value.getField(), value.getValue()));
+        obc.add(Restrictions.le(value.getField(), value.getValue()));
       } else if (">=".equals(value.getOperator())) {
-        obc.add(Expression.ge(value.getField(), value.getValue()));
+        obc.add(Restrictions.ge(value.getField(), value.getValue()));
       } else {
-        obc.add(Expression.eq(value.getField(), value.getValue()));
+        obc.add(Restrictions.eq(value.getField(), value.getValue()));
       }
     }
 
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <NAME><![CDATA[JBoss Weld]]></NAME>
-<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION><![CDATA[1.1.11559]]></VERSION>
+<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION><![CDATA[1.1.11592]]></VERSION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <DESCRIPTION><![CDATA[JBoss Weld]]></DESCRIPTION>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <HELP><![CDATA[Provides the JBoss Weld framework: Java Contexts and Dependency Injection for the Java EE platform (CDI). For more information see http://seamframework.org/Weld]]></HELP>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <URL><![CDATA[http://forge.openbravo.com/projects/weld]]></URL>
@@ -22,7 +22,7 @@
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <UPDATEINFO><![CDATA[Bug fixing.]]></UPDATEINFO>
-<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--C70732EA90A14EC0916078B85CC33D2D-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--C70732EA90A14EC0916078B85CC33D2D-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--C70732EA90A14EC0916078B85CC33D2D--></AD_MODULE>
 
--- a/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.base.weld/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <AD_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_MODULE_ID>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--8BDE81545C1A43EAAC4BA3C5ED754DC8-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MESSAGE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -436,7 +436,7 @@
 <!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <VALUE><![CDATA[OBUIAPP_NewRow]]></VALUE>
-<!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <MSGTEXT><![CDATA[Create a new record in the grid]]></MSGTEXT>
+<!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <MSGTEXT><![CDATA[Insert row]]></MSGTEXT>
 <!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
 <!--8ED6AE4FCFA9483EB97B9109BBDFADBD-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--8ED6AE4FCFA9483EB97B9109BBDFADBD--></AD_MESSAGE>
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <NAME><![CDATA[User Interface Application]]></NAME>
-<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION><![CDATA[2.1.11559]]></VERSION>
+<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION><![CDATA[2.1.11592]]></VERSION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <DESCRIPTION><![CDATA[Provides the main application components for the openbravo user interface]]></DESCRIPTION>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <HELP><![CDATA[Provides the main application components for the openbravo user interface. The main layout incorporates a navigation bar and a main view area.]]></HELP>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <URL><![CDATA[http://forge.openbravo.com/projects/clientapplication]]></URL>
@@ -22,7 +22,7 @@
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <UPDATEINFO><![CDATA[Styling bugfixing]]></UPDATEINFO>
-<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--9BA0836A3CD74EE4AB48753A47211BCC-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--9BA0836A3CD74EE4AB48753A47211BCC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--9BA0836A3CD74EE4AB48753A47211BCC--></AD_MODULE>
 
--- a/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--15D7CE8D95D043189162DBABA54A1F61-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--15D7CE8D95D043189162DBABA54A1F61-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--15D7CE8D95D043189162DBABA54A1F61-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--60A170212F36499D83B8AD38D01F46B3-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--60A170212F36499D83B8AD38D01F46B3-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--60A170212F36499D83B8AD38D01F46B3-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--824D60CB352E4099B1D8C903CA139DAE-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--824D60CB352E4099B1D8C903CA139DAE-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--824D60CB352E4099B1D8C903CA139DAE-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <AD_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_MODULE_ID>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--E8FD820AFE3D4FE08C02FC47769026AD-->  <STARTVERSION><![CDATA[8.1.11559]]></STARTVERSION>
+<!--E8FD820AFE3D4FE08C02FC47769026AD-->  <STARTVERSION><![CDATA[8.1.11592]]></STARTVERSION>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--E8FD820AFE3D4FE08C02FC47769026AD-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationUtils.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ApplicationUtils.java	Tue Apr 26 10:43:12 2011 +0200
@@ -23,7 +23,7 @@
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.Property;
@@ -168,8 +168,8 @@
 
       final OBCriteria<RoleOrganization> roleOrgs = OBDal.getInstance().createCriteria(
           RoleOrganization.class);
-      roleOrgs.add(Expression.eq(RoleOrganization.PROPERTY_ROLE, role));
-      roleOrgs.add(Expression.eq(RoleOrganization.PROPERTY_ORGADMIN, true));
+      roleOrgs.add(Restrictions.eq(RoleOrganization.PROPERTY_ROLE, role));
+      roleOrgs.add(Restrictions.eq(RoleOrganization.PROPERTY_ORGADMIN, true));
 
       return roleOrgs.list();
 
@@ -187,8 +187,8 @@
       OBContext.setAdminMode();
 
       final OBCriteria<UserRoles> userRoles = OBDal.getInstance().createCriteria(UserRoles.class);
-      userRoles.add(Expression.eq(UserRoles.PROPERTY_USERCONTACT, user));
-      userRoles.add(Expression.eq(UserRoles.PROPERTY_ROLEADMIN, true));
+      userRoles.add(Restrictions.eq(UserRoles.PROPERTY_USERCONTACT, user));
+      userRoles.add(Restrictions.eq(UserRoles.PROPERTY_ROLEADMIN, true));
 
       return userRoles.list();
 
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/MainLayoutComponent.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/MainLayoutComponent.java	Tue Apr 26 10:43:12 2011 +0200
@@ -27,6 +27,7 @@
 import org.openbravo.base.session.SessionFactoryController;
 import org.openbravo.base.util.OBClassLoader;
 import org.openbravo.base.weld.WeldUtils;
+import org.openbravo.client.kernel.BaseComponent;
 import org.openbravo.client.kernel.BaseTemplateComponent;
 import org.openbravo.client.kernel.Template;
 import org.openbravo.dal.core.OBContext;
@@ -74,9 +75,11 @@
       try {
         final Class<BaseTemplateComponent> clz = (Class<BaseTemplateComponent>) OBClassLoader
             .getInstance().loadClass(nbc.getJavaClassName());
-        final BaseTemplateComponent component = weldUtils.getInstance(clz);
+        final BaseComponent component = weldUtils.getInstance(clz);
         component.setId(nbc.getId());
-        component.setComponentTemplate(nbc.getTemplate());
+        if (component instanceof BaseTemplateComponent && nbc.getTemplate() != null) {
+          ((BaseTemplateComponent) component).setComponentTemplate(nbc.getTemplate());
+        }
         component.setParameters(getParameters());
 
         jsCode = component.generate();
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/ViewComponent.java	Tue Apr 26 10:43:12 2011 +0200
@@ -20,7 +20,7 @@
 
 import javax.inject.Inject;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.util.OBClassLoader;
 import org.openbravo.base.weld.WeldUtils;
@@ -115,8 +115,8 @@
   private OBUIAPPViewImplementation getView(String viewName) {
     OBCriteria<OBUIAPPViewImplementation> obc = OBDal.getInstance().createCriteria(
         OBUIAPPViewImplementation.class);
-    obc.add(Expression.or(Expression.eq(OBUIAPPViewImplementation.PROPERTY_NAME, viewName),
-        Expression.eq(OBUIAPPViewImplementation.PROPERTY_ID, viewName)));
+    obc.add(Restrictions.or(Restrictions.eq(OBUIAPPViewImplementation.PROPERTY_NAME, viewName),
+        Restrictions.eq(OBUIAPPViewImplementation.PROPERTY_ID, viewName)));
 
     if (obc.list().size() > 0) {
       return obc.list().get(0);
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/WindowsInClassicModeTask.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/WindowsInClassicModeTask.java	Tue Apr 26 10:43:12 2011 +0200
@@ -22,7 +22,7 @@
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.dal.core.DalInitializingTask;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
@@ -39,7 +39,7 @@
     OBQuery<Module> modules = OBDal.getInstance().createQuery(Module.class, "");
     for (Module module : modules.list()) {
       List<String> classicWindowMessages = new ArrayList<String>();
-      OBCriteria<Window> windowsOfModule = OBDao.getFilteredCriteria(Window.class, Expression.eq(
+      OBCriteria<Window> windowsOfModule = OBDao.getFilteredCriteria(Window.class, Restrictions.eq(
           Window.PROPERTY_MODULE, module));
       for (Window window : windowsOfModule.list()) {
         ApplicationUtils.showWindowInClassicMode(window, classicWindowMessages);
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/templates/ob-view-grid.js.ftl	Tue Apr 26 10:43:12 2011 +0200
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010 Openbravo SLU
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -22,6 +22,9 @@
     <#list data.fields as field>
         { 
         autoExpand: ${field.autoExpand}, type: '${field.type}',
+        <#if field.cellAlign??>
+        cellAlign: '${field.cellAlign?js_string}',
+        </#if>
         editorProperties: {
           ${field.gridEditorFieldProperties}
           // note need to be repeated for editor fields
@@ -54,6 +57,7 @@
         ${field.filterEditorProperties}
         , title: '${field.title?js_string}'
         , prompt: '${field.title?js_string}'
+        , escapeHTML: true
         , showIf: '${field.initialShow?string}'
         , columnName: '${field.columnName?js_string}'
         , inpColumnName: '${field.inpColumnName?js_string}'
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/FormInitializationComponent.java	Tue Apr 26 10:43:12 2011 +0200
@@ -32,7 +32,7 @@
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.mozilla.javascript.Context;
 import org.mozilla.javascript.NativeArray;
 import org.mozilla.javascript.Scriptable;
@@ -190,7 +190,7 @@
 
       // Computation of the Auxiliary Input values
       long t4 = System.currentTimeMillis();
-      computeAuxiliaryInputs(mode, tab, columnValues);
+      computeAuxiliaryInputs(mode, tab, columnValues, jsContent);
 
       // Computation of Column Values (using UIDefinition, so including combo values and all
       // relevant additional information)
@@ -211,7 +211,7 @@
       if (mode.equals("NEW")) {
         // In the case of NEW mode, we compute auxiliary inputs again to take into account that
         // auxiliary inputs could depend on a default value
-        computeAuxiliaryInputs(mode, tab, columnValues);
+        computeAuxiliaryInputs(mode, tab, columnValues, jsContent);
       }
       // Construction of the final JSONObject
       long t7 = System.currentTimeMillis();
@@ -247,17 +247,15 @@
       if (mode.equals("NEW") || mode.equals("EDIT") || mode.equals("CHANGE")) {
         JSONObject jsonColumnValues = new JSONObject();
         for (Field field : tab.getADFieldList()) {
-          jsonColumnValues.put(
-              field.getColumn().getDBColumnName(),
-              columnValues.get("inp"
-                  + Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName())));
+          jsonColumnValues.put(field.getColumn().getDBColumnName(), columnValues.get("inp"
+              + Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName())));
         }
         finalObject.put("columnValues", jsonColumnValues);
       }
       JSONObject jsonAuxiliaryInputValues = new JSONObject();
       for (AuxiliaryInput auxIn : tab.getADAuxiliaryInputList()) {
-        jsonAuxiliaryInputValues.put(auxIn.getName(),
-            columnValues.get("inp" + Sqlc.TransformaNombreColumna(auxIn.getName())));
+        jsonAuxiliaryInputValues.put(auxIn.getName(), columnValues.get("inp"
+            + Sqlc.TransformaNombreColumna(auxIn.getName())));
       }
 
       finalObject.put("auxiliaryInputValues", jsonAuxiliaryInputValues);
@@ -279,8 +277,8 @@
           // Adding session attributes in a dynamic expression
           // This session attributes could be a preference
           if (field.getDisplayLogic() != null && field.isDisplayed() && field.isActive()) {
-            final DynamicExpressionParser parser = new DynamicExpressionParser(
-                field.getDisplayLogic(), tab);
+            final DynamicExpressionParser parser = new DynamicExpressionParser(field
+                .getDisplayLogic(), tab);
 
             for (String attrName : parser.getSessionAttributes()) {
               if (!sessionAttributesMap.containsKey(attrName)) {
@@ -430,16 +428,15 @@
               changedCols.add(field.getColumn().getDBColumnName());
             }
           }
-          columnValues
-              .put("inp" + Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName()),
-                  jsonobject);
+          columnValues.put("inp"
+              + Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName()), jsonobject);
           setRequestContextParameter(field, jsonobject);
           // We also set the session value for the column in Edit or SetSession mode
           if (mode.equals("NEW") || mode.equals("EDIT") || mode.equals("SETSESSION")) {
             if (field.getColumn().isStoredInSession() || field.getColumn().isKeyColumn()) {
               setSessionValue(tab.getWindow().getId() + "|"
-                  + field.getColumn().getDBColumnName().toUpperCase(),
-                  jsonobject.has("classicValue") ? jsonobject.get("classicValue") : null);
+                  + field.getColumn().getDBColumnName().toUpperCase(), jsonobject
+                  .has("classicValue") ? jsonobject.get("classicValue") : null);
             }
           }
         }
@@ -465,7 +462,8 @@
             "Couldn't get data for column " + field.getColumn().getDBColumnName(), e);
       }
       if (((mode.equals("NEW") && !classicValue.equals("") && (uiDef instanceof EnumUIDefinition || uiDef instanceof ForeignKeyUIDefinition)) || (mode
-          .equals("CHANGE") && changedCols.contains(field.getColumn().getDBColumnName()) && changedColumn != null))
+          .equals("CHANGE")
+          && changedCols.contains(field.getColumn().getDBColumnName()) && changedColumn != null))
           && field.getColumn().isValidateOnNew()) {
         if (field.getColumn().getCallout() != null) {
           addCalloutToList(field.getColumn(), calloutsToCall, lastfieldChanged);
@@ -506,9 +504,8 @@
         JSONObject jsonobject = null;
         if (value != null) {
           jsonobject = new JSONObject(value);
-          columnValues
-              .put("inp" + Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName()),
-                  jsonobject);
+          columnValues.put("inp"
+              + Sqlc.TransformaNombreColumna(field.getColumn().getDBColumnName()), jsonobject);
           setRequestContextParameter(field, jsonobject);
         }
       } catch (Exception e) {
@@ -519,21 +516,37 @@
 
   }
 
-  private void computeAuxiliaryInputs(String mode, Tab tab, Map<String, JSONObject> columnValues) {
+  private void computeAuxiliaryInputs(String mode, Tab tab, Map<String, JSONObject> columnValues,
+      JSONObject jsonContent) {
     for (AuxiliaryInput auxIn : tab.getADAuxiliaryInputList()) {
-      Object value = computeAuxiliaryInput(auxIn, tab.getWindow().getId());
-      log.debug("Final Computed Value. Name: " + auxIn.getName() + " Value: " + value);
+      Object value = null;
       JSONObject jsonObj = new JSONObject();
+      if (mode.equals("CHANGE")) {
+        try {
+          // Do not recompute the value of an auxiliary-input on CHANGE mode, since the value could
+          // have been modified by other user action e.g. A callout based on other field
+          value = jsonContent.get(auxIn.getName());
+        } catch (Exception e) {
+          log.error("Error trying to read the value of aux-input: " + auxIn.getName(), e);
+        }
+      } else {
+        value = computeAuxiliaryInput(auxIn, tab.getWindow().getId());
+      }
+
       try {
         jsonObj.put("value", value);
         jsonObj.put("classicValue", value);
       } catch (JSONException e) {
         log.error("Error while computing auxiliary input " + auxIn.getName(), e);
       }
+
+      log.debug("Final Computed Value. Name: " + auxIn.getName() + " Value: " + value);
       columnValues.put("inp" + Sqlc.TransformaNombreColumna(auxIn.getName()), jsonObj);
+
       RequestContext.get().setRequestParameter(
           "inp" + Sqlc.TransformaNombreColumna(auxIn.getName()),
           value == null || value.equals("null") ? null : value.toString());
+
       // Now we insert session values for auxiliary inputs
       if (mode.equals("NEW") || mode.equals("EDIT") || mode.equals("SETSESSION")) {
         setSessionValue(tab.getWindow().getId() + "|" + auxIn.getName(), value);
@@ -585,8 +598,8 @@
               final Object propValue = JsonToDataConverter.convertJsonToPropertyValue(prop,
                   jsContent.get(inpColName));
               // convert to a valid classic string
-              value = UIDefinitionController.getInstance()
-                  .getUIDefinition(field.getColumn().getId()).convertToClassicString(propValue);
+              value = UIDefinitionController.getInstance().getUIDefinition(
+                  field.getColumn().getId()).convertToClassicString(propValue);
             } else {
               value = (String) jsonValue;
             }
@@ -778,7 +791,7 @@
       }
     }
     OBCriteria<AuxiliaryInput> auxInC = OBDal.getInstance().createCriteria(AuxiliaryInput.class);
-    auxInC.add(Expression.eq(AuxiliaryInput.PROPERTY_TAB, tab));
+    auxInC.add(Restrictions.eq(AuxiliaryInput.PROPERTY_TAB, tab));
     List<AuxiliaryInput> auxInputs = auxInC.list();
     for (AuxiliaryInput auxIn : auxInputs) {
       Object value = computeAuxiliaryInput(auxIn, tab.getWindow().getId());
@@ -900,8 +913,8 @@
           RequestContext.get().setRequestParameter("inpLastFieldChanged", lastFieldChanged);
 
           // We then execute the callout
-          CalloutServletConfig config = new CalloutServletConfig(calloutClassName,
-              RequestContext.getServletContext());
+          CalloutServletConfig config = new CalloutServletConfig(calloutClassName, RequestContext
+              .getServletContext());
           Object[] initArgs = { config };
           init.invoke(calloutInstance, initArgs);
           CalloutHttpServletResponse fakeResponse = new CalloutHttpServletResponse(rq.getResponse());
@@ -995,16 +1008,16 @@
                       } else {
                         rq.setRequestParameter(colId, uiDef.convertToClassicString(el));
                       }
-                      JSONObject jsonobj = new JSONObject(uiDef.getFieldProperties(
-                          inpFields.get(name), true));
+                      JSONObject jsonobj = new JSONObject(uiDef.getFieldProperties(inpFields
+                          .get(name), true));
                       if (jsonobj.has("classicValue")) {
                         String newValue = jsonobj.getString("classicValue");
                         log.debug("Modified column: " + col.getDBColumnName() + "  Value: " + el);
                         if ((oldValue == null && newValue != null)
                             || (oldValue != null && newValue == null)
                             || (oldValue != null && newValue != null && !oldValue.equals(newValue))) {
-                          columnValues.put(
-                              "inp" + Sqlc.TransformaNombreColumna(col.getDBColumnName()), jsonobj);
+                          columnValues.put("inp"
+                              + Sqlc.TransformaNombreColumna(col.getDBColumnName()), jsonobj);
                           changed = true;
                           if (dynamicCols.contains(colId)) {
                             changedCols.add(col.getDBColumnName());
@@ -1012,13 +1025,30 @@
                           rq.setRequestParameter(colId, jsonobj.getString("classicValue"));
                         }
                       } else {
-                        log.debug("Column value didn't change. We do not attempt to execute any additional callout");
+                        log
+                            .debug("Column value didn't change. We do not attempt to execute any additional callout");
                       }
                     }
                     if (changed && col.getCallout() != null) {
                       // We need to fire this callout, as the column value was changed
                       addCalloutToList(col, calloutsToCall, lastfieldChangedList);
                     }
+                  } else {
+                    // A callout could modify the value of an auxiliary input
+                    for (AuxiliaryInput auxInput : tab.getADAuxiliaryInputList()) {
+                      final String transformedInputName = "inp"
+                          + Sqlc.TransformaNombreColumna(auxInput.getName());
+                      if (transformedInputName.equals(name)) {
+                        log.debug("Changing the value of auxiliar input: " + name);
+                        Object calloutValue = element.get(1, null);
+                        JSONObject newValue = new JSONObject();
+                        newValue.put("classicValue", calloutValue);
+                        newValue.put("value", calloutValue);
+                        columnValues.put("inp" + Sqlc.TransformaNombreColumna(auxInput.getName()),
+                            newValue);
+                        break;
+                      }
+                    }
                   }
                 }
               }
@@ -1048,9 +1078,9 @@
    */
   private void createNewPreferenceForWindow(Window window) {
 
-    OBCriteria<Preference> prefCriteria = OBDao.getFilteredCriteria(Preference.class,
-        Expression.eq(Preference.PROPERTY_PROPERTY, "OBUIAPP_UseClassicMode"),
-        Expression.eq(Preference.PROPERTY_WINDOW, window));
+    OBCriteria<Preference> prefCriteria = OBDao.getFilteredCriteria(Preference.class, Restrictions
+        .eq(Preference.PROPERTY_PROPERTY, "OBUIAPP_UseClassicMode"), Restrictions.eq(
+        Preference.PROPERTY_WINDOW, window));
     if (prefCriteria.count() > 0) {
       // Preference already exists. We don't create a new one.
       return;
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewFormComponent.java	Tue Apr 26 10:43:12 2011 +0200
@@ -377,7 +377,14 @@
       if (property.isBoolean()) {
         return false;
       }
-      return property.isMandatory();
+
+      if (field.getColumn() != null) {
+        // Taking value from AD definition, mandatoriness of a column can be different in AD and in
+        // memory model, because memory model sets mandatoriness regarding physical DB definition.
+        return field.getColumn().isMandatory();
+      } else {
+        return property.isMandatory();
+      }
     }
 
     public int getLength() {
--- a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewGridComponent.java	Tue Apr 26 10:43:12 2011 +0200
@@ -434,6 +434,9 @@
       return field.getDisplayedLength();
     }
 
+    public String getCellAlign() {
+      return uiDefinition.getCellAlign();
+    }
   }
 
   private class GridFieldComparator implements Comparator<Field> {
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-formitem-widgets.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-formitem-widgets.js	Tue Apr 26 10:43:12 2011 +0200
@@ -607,6 +607,7 @@
     // When data has changed, force the OBDateItem to get it. Other case OBDateItem.blur 
     // gets incorrect value on getValue()
     this.callingFormItem.setValue(this.getData());
+    this.callingFormItem.changed();
   },
   dateClick: function() {
     var ret = this.Super('dateClick', arguments);
@@ -614,7 +615,16 @@
       this.callingForm.focusInNextItem(this.callingFormItem.name);
     }
     return ret;
-  }
+  },
+
+  initWidget: function() {
+    this.Super('initWidget', arguments);
+    
+    // Force associated date text box to have the same enable status as the picker has
+    if (this.callingFormItem) {
+      this.callingFormItem.disabled = this.disabled;
+    }
+  }  
 });
 
 if (isc.OBDateChooser) {  // To force SC to load OBDateChooser instead of DateChooser
@@ -893,18 +903,13 @@
   // is done by the blur event defined here
   validateOnExit: false,
   
+  textAlign: 'left',
+  
   // ** {{{ change }}} **
   // Called when changing a value.
   change: function(form, item, value, oldValue){ /* transformInput */
     var isADate = value !== null &&
               Object.prototype.toString.call(value) === '[object Date]';
-    // prevent a change if nothing changed
-    if (value === oldValue) {
-      return false;
-    }
-    if (isADate && value && oldValue && oldValue.getTime && value.getTime() === oldValue.getTime()) {
-      return false;
-    }
     if (isADate) {
       return;
     }
@@ -1072,6 +1077,14 @@
     return this.Super('init', arguments);
   },
   
+  // after a change also store the textual value in the form
+  // for precision, the textual value is sent to the server
+  // which can be transferred to a bigdecimal there
+  changed: function (form, item, value) {
+    this.form.setTextualValue(this.name, this.getEnteredValue(), this.typeInstance);
+    this.Super('changed', arguments);
+  },
+  
   getMaskNumeric: function(){
     return this.typeInstance.maskNumeric;
   },
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-grid.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-grid.js	Tue Apr 26 10:43:12 2011 +0200
@@ -29,6 +29,7 @@
   poolComponentsPerColumn: true,
   showRecordComponents: true,
   canSelectText: true,
+  escapeHTML: true,
   
   createRecordComponent: function(record, colNum){
     var field = this.getField(colNum), rowNum = this.getRecordIndex(record);
@@ -166,7 +167,7 @@
         // which is maybe used somewhere else
         criteria = isc.clone(criteria);
         var internCriteria = criteria.criteria;
-        if (internCriteria) {
+        if (internCriteria && this.getEditForm()) {
           // now remove anything which is not a field
           // otherwise smartclient will keep track of them and send them again
           var fields = this.getEditForm().getFields();
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quick-launch.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-quick-launch.js	Tue Apr 26 10:43:12 2011 +0200
@@ -36,11 +36,19 @@
       editorType: 'link',
       value: null,
       showTitle: false,
+      width: 1,
+      overflow: 'visible',
       target: 'javascript',
       shouldSaveValue: false,
       recentPropertyName: this.recentPropertyName,
       prefixLabel: this.prefixLabel,
       handleClick: function(){
+        // getting the last event prevents an error in chrome
+        // https://issues.openbravo.com/view.php?id=16847
+        var lastEvent = isc.EventHandler.getLastEvent();
+        if (!isc.EventHandler.leftButtonDown()) {
+          return;
+        }
         OB.RecentUtilities.addRecent(this.recentPropertyName, this.recentObject);
         if (this.recentObject.viewId) {
           OB.Layout.ViewManager.openView(this.recentObject.viewId, this.recentObject);
@@ -98,6 +106,11 @@
   initWidget: function(){
     this.members = [isc.DynamicForm.create({
       visibility: 'hidden',
+      canSelectText: true,
+      handleClick: function() {
+        // overridden to prevent double firing of click event
+        // https://issues.openbravo.com/view.php?id=16847
+      },
       numCols: 1
     }), isc.DynamicForm.create({
       autoFocus: true,
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-standard-view.js	Tue Apr 26 10:43:12 2011 +0200
@@ -1260,17 +1260,20 @@
     
     var me = this;
     var formRefresh = function() {
+      if (refreshCallback) {
+        refreshCallback();
+      }
       me.viewForm.refresh();
     };
     
     if (!this.isShowingForm) {
-      this.viewGrid.refreshGrid();
+      this.viewGrid.refreshGrid(refreshCallback);
     } else {
       var view = this;
       if (this.viewForm.hasChanged) {
         var callback = function(ok){
           if (ok) {
-            this.viewGrid.refreshGrid(formRefresh);            
+            view.viewGrid.refreshGrid(formRefresh);            
           }
         };
         isc.ask(OB.I18N.getLabel('OBUIAPP_ConfirmRefresh'), callback);
@@ -1278,9 +1281,6 @@
         this.viewGrid.refreshGrid(formRefresh);
       }
     }
-    if (refreshCallback) {
-      refreshCallback();
-    }
   },
   
   refreshParentRecord: function() {
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-toolbar.js	Tue Apr 26 10:43:12 2011 +0200
@@ -96,14 +96,20 @@
   },
   NEW_ROW_BUTTON_PROPERTIES: {
     action: function(){
-      // do -1 because the newrow logic adds one
-      this.view.newRow(this.view.viewGrid.getDrawArea()[0] - 1);
+      var view = this.view, 
+          grid = view.viewGrid;
+      
+      // In case of no record selected getRecordIndex(undefined) returns -1,
+      // which is the top position, other case it adds bellow current selected row.
+      view.newRow(grid.getRecordIndex(grid.getSelectedRecord()));
     },
     buttonType: 'newRow',
     prompt: OB.I18N.getLabel('OBUIAPP_NewRow'),
     updateState: function(){
-      var view = this.view;
-      this.setDisabled(view.isShowingForm || view.readOnly || view.singleRecord || !view.hasValidState());
+      var view = this.view, 
+          selectedRecords = view.viewGrid.getSelectedRecords();
+      this.setDisabled(view.isShowingForm || view.readOnly || view.singleRecord || !view.hasValidState() || 
+                       (selectedRecords && selectedRecords.length > 1));
     },
     keyboardShortcutId: 'ToolBar_NewRow'
   },
@@ -866,7 +872,6 @@
         doRefresh(buttons, currentValues, false, me);
       });
     } else {
-      currentValues = this.view.getCurrentValues();
       doRefresh(buttons, currentValues, hideAllButtons, this);
     }
   },
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-form.js	Tue Apr 26 10:43:12 2011 +0200
@@ -452,6 +452,7 @@
     if (!data || !data.columnValues) {
       this.setDisabled(false);
       this.validate();
+      delete this.inFicCall;
       return;
     }
     
@@ -673,6 +674,14 @@
       // which results it to not be sent to the server anymore
       this.setValue(field.name, null);
     }
+    
+    // store the textualvalue so that it is correctly send back to the server
+    if (field) {
+      var typeInstance = SimpleType.getType(field.type);
+      if (columnValue.classicValue && typeInstance.decSeparator) {
+        this.setTextualValue(field.name, columnValue.classicValue, typeInstance);
+      }
+    }
   },
   
   setColumnValuesInEditValues: function(columnName, columnValue, editValues){
@@ -727,9 +736,33 @@
       // note: do not use clearvalue as this removes the value from the form
       // which results it to not be sent to the server anymore
       editValues[prop] = null;
-    }    
+    }
+    
+    // store the textualvalue so that it is correctly send back to the server
+    if (field) {
+      var typeInstance = SimpleType.getType(field.type);
+      if (columnValue.classicValue && typeInstance.decSeparator) {
+        this.setTextualValue(field.name, columnValue.classicValue, typeInstance, editValues);
+      }
+    }
   },
   
+  // note textValue is in user format using users decimal and group separator
+  setTextualValue: function(fldName, textValue, type, editValues) {    
+    if (!textValue || textValue.trim() === '') {
+      textValue = '';
+    } else {
+      textValue = OB.Utilities.Number.OBMaskedToOBPlain(textValue, type.decSeparator, type.groupSeparator);
+      textValue = textValue.replace(type.decSeparator, '.');
+    }
+    if (editValues) {
+      editValues[fldName + '_textualValue'] = textValue;
+    } else if (this.grid) {
+      this.grid.getEditValues(this.grid.getEditRow())[fldName + '_textualValue'] = textValue;
+    }
+    this.setValue(fldName + '_textualValue', textValue);
+  },
+
   // called explicitly onblur and when non-editable fields change
   handleItemChange: function(item){
   
@@ -957,19 +990,32 @@
   },
   
   focusInNextItem: function(currentItem) {
-    var chooseNextItem, i, nextItem, length = this.getItems().length;
+    var flds = (this.grid ? this.grid.getFields() : this.getFields);
+    var chooseNextItem, i, nextItem, length = flds.length;
     for (i = 0; i < length; i++) {
+      var item = this.getItem(flds[i].name);
+      if (!item) {
+        continue;
+      }
       // some items don't have a name, ignore those
-      if (chooseNextItem && this.getItems()[i].name && this.getItems()[i].isFocusable && this.getItems()[i].isFocusable()) {
-        nextItem = this.getItems()[i];
+      // !item.disabled because sometimes the whole form is disabled and needs to 
+      // be focused after enabling (after the fic call returns)
+      if (chooseNextItem && item.name && item.isFocusable && (item.isFocusable() || !item.disabled)) {
+        nextItem = item;
         break;
       }
-      if (this.getItems()[i].name === currentItem) {
+      if (item.name === currentItem) {
         chooseNextItem = true;
       }
     }
     if (nextItem) {
-      this.focusInItem(nextItem);
+      // in the fic call, all items are disabled, so let it be focused
+      // when returning
+      if (this.inFicCall) {
+        this.setFocusItem(nextItem);
+      } else {
+        this.focusInItem(nextItem);
+      }
     }
   },
   
--- a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/ob-view-grid.js	Tue Apr 26 10:43:12 2011 +0200
@@ -32,7 +32,7 @@
 // The OBViewGrid is the Openbravo specific subclass of the Smartclient
 // ListGrid.
 isc.OBViewGrid.addProperties({
-
+  
   // ** {{{ view }}} **
   // The view member contains the pointer to the composite canvas which
   // handles this form
@@ -61,7 +61,7 @@
     canHide: false,
     showTitle: true,
     title: '&nbsp;',
-    autoFitWidth: true,
+    //autoFitWidth: true,
     canDragResize: false,
     canFilter: true,
     autoExpand: false,
@@ -72,6 +72,8 @@
     name: isc.OBViewGrid.EDIT_LINK_FIELD_NAME
   },
   
+  editLinkColNum: -1,
+  
   // ** {{{ dataPageSize }}} **
   // The data page size used for loading paged data from the server.
   dataPageSize: 100,
@@ -116,13 +118,15 @@
 
   // commented out because of: https://issues.openbravo.com/view.php?id=16515
   // default is much smaller which give smoother scrolling
-//  quickDrawAheadRatio: 2.0,
-//  drawAheadRatio: 1.0,
-  scrollRedrawDelay: 20,
+//  quickDrawAheadRatio: 1.0,
+  //drawAheadRatio: 2.0,
+  // see this discussion:
+  // http://forums.smartclient.com/showthread.php?t=16376
+  //scrollRedrawDelay: 20,
   // note: don't set drawAllMaxCells too high as it results in extra reads
   // of data, Smartclient will try to read until drawAllMaxCells has been
   // reached
-  drawAllMaxCells: 100,
+  drawAllMaxCells: 0,
   
   // keeps track if we are in objectSelectionMode or in toggleSelectionMode
   // objectSelectionMode = singleRecordSelection === true
@@ -131,7 +135,10 @@
   // editing props
   rowEndEditAction: 'next',
   listEndEditAction: 'next',
+  
   enforceVClipping: true,
+  
+  canDragSelectText: true,
   validateByCell: true,
   
   currentEditColumnLayout: null,
@@ -142,6 +149,10 @@
   modalEditing: false,
   // set to true because if not all cols are drawn then when doing inline editing
   // errors were reported for undrawn columns
+  // need to rework how the FormInitializationComponent sets the valuemap and defaultvalue
+  // for non-existing columns this should be stored somewhere, see this reply in
+  // the smartclient forum:
+  // http://forums.smartclient.com/showthread.php?p=63146
   showAllColumns: true,
   //showGridSummary: true,
   
@@ -199,6 +210,8 @@
       localEditLinkField = isc.addProperties({}, this.editLinkFieldProperties);
       localEditLinkField.width = this.editLinkColumnWidth;
       this.fields.unshift(localEditLinkField);
+      // is the column after the checkbox field
+      this.editLinkColNum = 1;
     }
     
     this.editFormDefaults = isc.addProperties({}, OB.ViewFormProperties, this.editFormDefaults);
@@ -1225,11 +1238,7 @@
     if (this.isCheckboxField(field)) {
       // NOTE: code copied from super class
       var icon;
-      if (!this.body.canSelectRecord(record)) {
-        // record cannot be selected but we want the space allocated for the
-        // checkbox anyway.
-        icon = '[SKINIMG]/blank.gif';
-      } else if (this.singleRecordSelection && !this.allSelected) {
+      if (this.singleRecordSelection && !this.allSelected) {
         // always show the false image
         icon = (this.checkboxFieldFalseImage || this.booleanFalseImage);
       } else {
@@ -1468,7 +1477,7 @@
     }
     return ret;
   },
-
+  
   // check if a fic call needs to be done when leaving a cell and moving to the next
   // row
   // see description in saveEditvalues
@@ -1529,6 +1538,15 @@
     } else {
       ret = this.Super('getNextEditCell', arguments);
     }
+        
+    // when moving between rows with the arrow keys, force the focus in the correct 
+    // column
+    if (ret && ret[0] !== rowNum && this.getField(colNum) && 
+          (editCompletionEvent === isc.ListGrid.UP_ARROW_KEYPRESS || 
+              editCompletionEvent === isc.ListGrid.DOWN_ARROW_KEYPRESS)) {
+      this.forceFocusColumn = this.getField(colNum).name;
+    }
+    
     delete this._inGetNextEditCell;
     return ret;
   },
@@ -1636,10 +1654,6 @@
       // if the focus does not get suppressed then the clicked field will receive focus
       // and won't be disabled so the user can already start typing      
       suppressFocus = true;
-
-      if (!this.forceFocusColumn && (colNum || colNum === 0)) {
-        this.forceFocusColumn = this.getField(colNum).name;
-      }
     }
     
     var ret = this.Super('showInlineEditor', [rowNum, colNum, newCell, newRow, suppressFocus]);
@@ -1761,13 +1775,11 @@
    },
   
   cellHasErrors: function(rowNum, fieldID){
-    var record = this.getRecord(rowNum);
-    var itemName;
     if (this.Super('cellHasErrors', arguments)) {
       return true;
     }
     if (this.getEditRow() === rowNum) {
-      itemName = this.getEditorName(rowNum, fieldID);
+      var itemName = this.getEditorName(rowNum, fieldID);
       
       if (this.getEditForm().hasFieldErrors(itemName)) {
         return true;
@@ -1877,53 +1889,49 @@
     }
     return this.Super('getRecord', arguments);
   },
+
+  // always work with fixed rowheights
+  // https://issues.openbravo.com/view.php?id=16307
+  shouldFixRowHeight: function() {
+    return true;
+  },
   
+  // needed for: https://issues.openbravo.com/view.php?id=16307
+  getRowHeight: function() {
+    return this.cellHeight;
+  },
+
   // +++++++++++++++++ functions for the edit-link column +++++++++++++++++
   
   createRecordComponent: function(record, colNum){
-    var layout = this.Super('createRecordComponent', arguments), rowNum;
-    if (layout) {
-      return layout;
-    }
     if (this.isEditLinkColumn(colNum)) {
-      rowNum = this.getRecordIndex(record);
-      layout = isc.OBGridButtonsComponent.create({
+      var layout = isc.OBGridButtonsComponent.create({
         record: record,
-        grid: this,
-        rowNum: rowNum
+        grid: this
       });
-      layout.editButton.setErrorState(this.rowHasErrors(rowNum));
+      layout.editButton.setErrorState(record[isc.OBViewGrid.ERROR_MESSAGE_PROP]);
       layout.editButton.setErrorMessage(record[isc.OBViewGrid.ERROR_MESSAGE_PROP]);
       layout.showEditOpen();
       record.editColumnLayout = layout;
+      return layout;
     }
-    return layout;
   },
   
   updateRecordComponent: function(record, colNum, component, recordChanged){
-    var superComponent = this.Super('updateRecordComponent', arguments);
-    if (superComponent) {
-      return superComponent;
+    // clear the previous record pointer
+    if (recordChanged && component.record.editColumnLayout === component) {
+      component.record.editColumnLayout = null;
     }
-    if (this.isEditLinkColumn(colNum)) {
-      // clear the previous record pointer
-      if (recordChanged && component.record.editColumnLayout === component) {
-        component.record.editColumnLayout = null;
-      }
-      component.record = record;
-      record.editColumnLayout = component;
-      component.rowNum = this.getRecordIndex(record);
-      component.editButton.setErrorState(this.rowHasErrors(component.rowNum));
-      component.editButton.setErrorMessage(record[isc.OBViewGrid.ERROR_MESSAGE_PROP]);
-      component.showEditOpen();
-      return component;
-    }
-    return null;
+    component.record = record;
+    record.editColumnLayout = component;
+    component.editButton.setErrorState(record[isc.OBViewGrid.ERROR_MESSAGE_PROP]);
+    component.editButton.setErrorMessage(record[isc.OBViewGrid.ERROR_MESSAGE_PROP]);
+    component.showEditOpen();
+    return component;
   },
   
   isEditLinkColumn: function(colNum){
-    var fieldName = this.getFieldName(colNum);
-    return (fieldName === isc.OBViewGrid.EDIT_LINK_FIELD_NAME);
+    return this.editLinkColNum === colNum;
   },
   
   reorderField: function(fieldNum, moveToPosition){
@@ -1952,12 +1960,6 @@
   
 });
 
-// = OBGridToolStrip =
-// The component which is inside of OBGridButtonsComponent
-isc.ClassFactory.defineClass('OBGridToolStrip', isc.ToolStrip);
-
-isc.OBGridToolStrip.addProperties({});
-
 // = OBGridToolStripIcon =
 // The icons which are inside of OBGridToolStrip
 isc.ClassFactory.defineClass('OBGridToolStripIcon', isc.ImgButton);
@@ -1976,7 +1978,8 @@
 // The separator between icons of OBGridToolStrip
 isc.ClassFactory.defineClass('OBGridToolStripSeparator', isc.Img);
 
-isc.OBGridToolStripSeparator.addProperties({});
+isc.OBGridToolStripSeparator.addProperties({  
+});
 
 // = OBGridButtonsComponent =
 // The component which is used to create the contents of the
@@ -1996,9 +1999,7 @@
   record: null,
   
   initWidget: function(){
-    var me = this, formButton, saveButton;
-    
-    this.progressIcon = isc.Img.create(this.grid.progressIconDefaults);
+    var me = this, formButton;
     
     this.editButton = isc.OBGridToolStripIcon.create({
       buttonType: 'edit',
@@ -2046,6 +2047,27 @@
       }
     });
     
+    this.buttonSeparator1 = isc.OBGridToolStripSeparator.create({});
+    
+    if (me.grid.view.readOnly) {
+      this.buttonSeparator1.visibility = 'hidden';
+    }
+    
+    this.addMembers([formButton, this.buttonSeparator1, this.editButton]);
+    this.Super('initWidget', arguments);
+  },
+  
+  addSaveCancelProgressButtons: function() {
+    var me = this;
+    // already been here
+    if (this.cancelButton) {
+      return;
+    }
+    
+    this.progressIcon = isc.Img.create(this.grid.progressIconDefaults);
+    this.progressIcon.setVisibility(false);
+    this.addMember(this.progressIcon, 0);
+    
     // is referred to in OBViewForm.showClickMask
     this.cancelButton = isc.OBGridToolStripIcon.create({
       buttonType: 'cancel',
@@ -2055,7 +2077,7 @@
       }
     });
     
-    saveButton = isc.OBGridToolStripIcon.create({
+    var saveButton = isc.OBGridToolStripIcon.create({
       buttonType: 'save',
       prompt: OB.I18N.getLabel('OBUIAPP_GridSaveButtonPrompt'),
       action: function(){
@@ -2063,64 +2085,67 @@
       }
     });
     
-    this.buttonSeparator1 = isc.OBGridToolStripSeparator.create({});
-    
-    if (me.grid.view.readOnly) {
-      this.buttonSeparator1.visibility = 'hidden';
-    }
-    
-    buttonSeparator2 = isc.OBGridToolStripSeparator.create({});
-    
-    this.OBGridToolStrip = isc.OBGridToolStrip.create({
-      members: [formButton, this.buttonSeparator1, this.editButton, this.cancelButton, buttonSeparator2, saveButton]
-    });
-    
-    this.addMember(this.progressIcon);
-    this.addMember(this.OBGridToolStrip);
-    this.OBGridToolStrip.hideMember(5);
-    this.OBGridToolStrip.hideMember(4);
-    this.OBGridToolStrip.hideMember(3);
+    this.addMembers([ this.cancelButton, isc.OBGridToolStripSeparator.create({}), saveButton]);
   },
   
   toggleProgressIcon: function(toggle){
     if (toggle) {
-      this.progressIcon.show();
-      this.OBGridToolStrip.hide();
+      this.hideMember(6);
+      this.hideMember(5);
+      this.hideMember(4);
+      this.showMember(0);
     } else {
-      this.progressIcon.hide();
-      this.OBGridToolStrip.show();
+      var offset = 0;
+      if (this.cancelButton) {
+        offset = 1;
+        this.hideMember(0);
+      }
+      this.showMember(2 + offset);
+      this.showMember(1 + offset);
+      this.showMember(0 + offset);
     }
   },
   
   showEditOpen: function(){
-    this.OBGridToolStrip.hideMember(5);
-    this.OBGridToolStrip.hideMember(4);
-    this.OBGridToolStrip.hideMember(3);
-    this.OBGridToolStrip.showMember(0);
+    var offset = 0;
+    if (this.cancelButton) {
+      this.hideMember(6);
+      this.hideMember(5);
+      this.hideMember(4);
+      this.hideMember(0);
+      offset = 1;
+    }
+    this.showMember(0 + offset);
     if (this.editButton.showable()) {
-      this.OBGridToolStrip.showMember(1);
-      this.OBGridToolStrip.showMember(2);
+      this.showMember(1 + offset);
+      this.showMember(2 + offset);
     } else {
-      this.OBGridToolStrip.hideMember(1);
-      this.OBGridToolStrip.hideMember(2);
+      this.hideMember(1 + offset);
+      this.hideMember(2 + offset);
     }
     this.grid.currentEditColumnLayout = null;
   },
   
   showSaveCancel: function(){
-    this.OBGridToolStrip.hideMember(2);
-    this.OBGridToolStrip.hideMember(1);
-    this.OBGridToolStrip.hideMember(0);
-    this.OBGridToolStrip.showMember(3);
-    this.OBGridToolStrip.showMember(4);
-    this.OBGridToolStrip.showMember(5);
+    this.addSaveCancelProgressButtons();
+    
+    this.hideMember(3);
+    this.hideMember(2);
+    this.hideMember(1);
+    this.hideMember(0);
+    
+    this.showMember(4);
+    this.showMember(5);
+    this.showMember(6);
+    
     this.grid.currentEditColumnLayout = this;
   },
   
   doEdit: function(){
     this.showSaveCancel();
     this.grid.selectSingleRecord(this.record);
-    this.grid.startEditing(this.rowNum);
+    var rowNum = this.grid.getRecordIndex(this.record);
+    this.grid.startEditing(rowNum);
   },
   
   doOpen: function(){
@@ -2136,5 +2161,22 @@
   
   doCancel: function(){
     this.grid.cancelEditing();
+  },
+  
+  hideMember: function(memberNo) {
+    // already hidden
+    if (this.members[memberNo] && this.members[memberNo].visibility === isc.Canvas.HIDDEN) {
+      return;
+    }
+    this.Super('hideMember', arguments);
+  },
+
+  showMember: function(memberNo) {
+    // already visible
+    if (this.members[memberNo] && this.members[memberNo].visibility === isc.Canvas.INHERIT || this.members[memberNo].visibility === isc.Canvas.VISIBLE) {
+      return;
+    }
+    this.Super('showMember', arguments);
   }
+
 });
--- a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-grid-styles.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/3.00/org.openbravo.client.application/ob-grid-styles.js	Tue Apr 26 10:43:12 2011 +0200
@@ -61,11 +61,11 @@
 
   getDefaultColumnWidth: function(length) {
     if (length <= 1) {
-      return isc.OBViewGrid.defaultColumnWidths[0];
+      return isc.OBGrid.defaultColumnWidths[0];
     } else if (length <= 30) {
-      return isc.OBViewGrid.defaultColumnWidths[1];
+      return isc.OBGrid.defaultColumnWidths[1];
     } else if (length <= 60) {
-      return isc.OBViewGrid.defaultColumnWidths[2];
+      return isc.OBGrid.defaultColumnWidths[2];
     }
     return 200;
   }
@@ -93,6 +93,12 @@
   src: '[SKIN]/../../org.openbravo.client.application/images/grid/gridHeader_bg.png'
 });
 
+isc.OBViewGrid.addProperties({
+  // note should be the same as the height of the OBGridButtonsComponent
+  recordComponentHeight: 21,
+  cellHeight: 25
+});
+
 isc.OBGrid.changeDefaults('headerMenuButtonDefaults', {
   showDown: false,
   showTitle: true,
@@ -100,7 +106,6 @@
   //src: '[SKIN]/../../org.openbravo.client.application/images/grid/gridHeader_bg.png'
 });
 
-
 // Styling properties for the header button of a generic grid (ob-grid.js)
 isc.OBGridHeaderImgButton.addProperties({
   showFocused: false,
@@ -109,7 +114,6 @@
   showDown: false
 });
 
-
 // Styling properties for the buttons of the grid in 'grid mode' (ob-view-grid.js)
 isc.OBGridToolStripIcon.addProperties({
   width: 21,
@@ -140,20 +144,17 @@
   src: '[SKIN]/../../org.openbravo.client.application/images/grid/gridButton-separator.png'
 });
 
-isc.OBGridToolStrip.addProperties({
-  height: '100%',
+isc.OBGridButtonsComponent.addProperties({
+  // note this height should be the same as the recordComponentHeight defined above
+  height: 21,
   width: '100%',
+  overflow: 'hidden',
+  align: 'center',
+  defaultLayoutAlign: 'center',
   styleName: 'OBGridToolStrip',
   membersMargin: 4
 });
 
-isc.OBGridButtonsComponent.addProperties({
-  height: 1,
-  width: '100%',
-  visible: 'overflow',
-  align: 'center'
-});
-
 isc.OBGridLinkButton.addProperties({
   baseStyle: 'OBGridLinkButton',
   showDown: true,
--- a/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <NAME><![CDATA[HTML Widget]]></NAME>
-<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION><![CDATA[1.0.11559]]></VERSION>
+<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION><![CDATA[1.0.11592]]></VERSION>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <DESCRIPTION><![CDATA[Provides the HTML Widget superclass that allows to create widget classes that embed the html code.]]></DESCRIPTION>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HELP><![CDATA[With this module you can define your own widget classes just setting up your own html code or the html code provided by third parties.]]></HELP>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <URL><![CDATA[http://forge.openbravo.com/projects/htmlwidget]]></URL>
@@ -21,7 +21,7 @@
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--D393BE6F22BB44B7B728259B34FC795A-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--D393BE6F22BB44B7B728259B34FC795A-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--D393BE6F22BB44B7B728259B34FC795A--></AD_MODULE>
 
--- a/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.htmlwidget/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <AD_MODULE_ID><![CDATA[D393BE6F22BB44B7B728259B34FC795A]]></AD_MODULE_ID>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--DCE798FBC5B648F7A3C81A6941720A57-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--DCE798FBC5B648F7A3C81A6941720A57-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--DCE798FBC5B648F7A3C81A6941720A57-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--4B828F4D03264080AA1D2057B13F613C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <NAME><![CDATA[User Interface Client Kernel]]></NAME>
-<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION><![CDATA[2.1.11559]]></VERSION>
+<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION><![CDATA[2.1.11592]]></VERSION>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <DESCRIPTION><![CDATA[Provides framework functionality for the Openbravo User Interface]]></DESCRIPTION>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <HELP><![CDATA[The user interface client kernel is a generation framework for generating client (browser) components used in Openbravo. Its components are mainly used by other modules to provide customizable and extendable user interfaces.]]></HELP>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravoclientkernel]]></URL>
@@ -22,7 +22,7 @@
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <UPDATEINFO><![CDATA[Bug fix for issue 15289]]></UPDATEINFO>
-<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--4B828F4D03264080AA1D2057B13F613C-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--4B828F4D03264080AA1D2057B13F613C-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--4B828F4D03264080AA1D2057B13F613C--></AD_MODULE>
 
--- a/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--26B041893E844A53AFA58BC326C4F0D7-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--26B041893E844A53AFA58BC326C4F0D7-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--26B041893E844A53AFA58BC326C4F0D7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <STARTVERSION><![CDATA[1.1.11559]]></STARTVERSION>
+<!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <STARTVERSION><![CDATA[1.1.11592]]></STARTVERSION>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--3AB045DA35ED4CA58EF7EB5BF04CDE3F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <AD_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_MODULE_ID>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <STARTVERSION><![CDATA[2.0.11559]]></STARTVERSION>
+<!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <STARTVERSION><![CDATA[2.0.11592]]></STARTVERSION>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--D7BA4BB0844942C58DC46B9E23CF8E67-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/TemplateResolver.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/TemplateResolver.java	Tue Apr 26 10:43:12 2011 +0200
@@ -22,7 +22,7 @@
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 
@@ -96,7 +96,7 @@
     while (true) {
       final OBCriteria<Template> templateCriteria = OBDal.getInstance().createCriteria(
           Template.class);
-      templateCriteria.add(Expression.eq(Template.PROPERTY_OVERRIDESTEMPLATE, currentTemplate));
+      templateCriteria.add(Restrictions.eq(Template.PROPERTY_OVERRIDESTEMPLATE, currentTemplate));
       final List<Template> overridingTemplates = templateCriteria.list();
       if (overridingTemplates.size() == 0) {
         return currentTemplate;
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java	Tue Apr 26 10:43:12 2011 +0200
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2010 Openbravo SLU 
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -115,4 +115,9 @@
         + "return OB.Utilities.Date.JSToOB(value, OB.Format.date);" + "},");
     return sb.toString();
   }
+
+  @Override
+  public String getCellAlign() {
+    return "left";
+  }
 }
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/NumberUIDefinition.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/NumberUIDefinition.java	Tue Apr 26 10:43:12 2011 +0200
@@ -123,7 +123,7 @@
   @Override
   public Object createFromClassicString(String value) {
     if (value == null || value.length() == 0) {
-      return "";
+      return null;
     }
     String valueStr = value.toString();
     VariablesSecureApp variables = RequestContext.get().getVariablesSecureApp();
@@ -166,6 +166,10 @@
 
     @Override
     public Object createFromClassicString(String value) {
+      if (value == null || value.length() == 0) {
+        return null;
+      }
+
       final BigDecimal superValue = (BigDecimal) super.createFromClassicString(value);
       return superValue.longValue();
     }
--- a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/UIDefinition.java	Tue Apr 26 10:43:12 2011 +0200
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2010 Openbravo SLU 
+ * All portions are Copyright (C) 2010-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -217,6 +217,16 @@
     return jsnobject.toString();
   }
 
+  /**
+   * Returns alignment in grid view. In case it returns null, default alignment for actual data type
+   * is used.
+   * 
+   * @return <code>null</code> for default alignment, "left", "center" or "right"
+   */
+  public String getCellAlign() {
+    return null;
+  }
+
   private String setNOWDefault() {
     JSONObject jsnobject = new JSONObject();
     try {
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <NAME><![CDATA[Workspace & Widgets]]></NAME>
-<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION><![CDATA[2.1.11559]]></VERSION>
+<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION><![CDATA[2.1.11592]]></VERSION>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <DESCRIPTION><![CDATA[Workspace & Widgets]]></DESCRIPTION>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <HELP><![CDATA[Provides the infrastructure of workspace tab (formerly My Openbravo)]]></HELP>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <URL><![CDATA[http://forge.openbravo.com/projects/myopenbravo]]></URL>
@@ -22,7 +22,7 @@
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <UPDATEINFO><![CDATA[Styling bugfixing]]></UPDATEINFO>
-<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--2758CD25B2704AF6BBAD10365FC82C06-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--2758CD25B2704AF6BBAD10365FC82C06-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--2758CD25B2704AF6BBAD10365FC82C06--></AD_MODULE>
 
--- a/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.myob/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--15F51F03882F444CAB6593B4566DC929-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--15F51F03882F444CAB6593B4566DC929-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--15F51F03882F444CAB6593B4566DC929-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--15F51F03882F444CAB6593B4566DC929-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--15F51F03882F444CAB6593B4566DC929-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--15F51F03882F444CAB6593B4566DC929-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--15F51F03882F444CAB6593B4566DC929-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--15F51F03882F444CAB6593B4566DC929-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <AD_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_MODULE_ID>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--E71B28FC949D481D9F59C17D01E46EF9-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--E71B28FC949D481D9F59C17D01E46EF9-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <DEPENDANT_MODULE_NAME><![CDATA[Core]]></DEPENDANT_MODULE_NAME>
 <!--E71B28FC949D481D9F59C17D01E46EF9-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOBUtils.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/MyOBUtils.java	Tue Apr 26 10:43:12 2011 +0200
@@ -27,7 +27,7 @@
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.util.OBClassLoader;
 import org.openbravo.base.weld.WeldUtils;
@@ -117,10 +117,10 @@
     OBCriteria<WidgetClassMenu> obcMenuItems = OBDal.getInstance().createCriteria(
         WidgetClassMenu.class);
     if (widgetClass.getWidgetSuperclass() != null) {
-      obcMenuItems.add(Expression.eq(WidgetClassMenu.PROPERTY_WIDGETCLASS, widgetClass
+      obcMenuItems.add(Restrictions.eq(WidgetClassMenu.PROPERTY_WIDGETCLASS, widgetClass
           .getWidgetSuperclass()));
     } else {
-      obcMenuItems.add(Expression.eq(WidgetClassMenu.PROPERTY_WIDGETCLASS, widgetClass));
+      obcMenuItems.add(Restrictions.eq(WidgetClassMenu.PROPERTY_WIDGETCLASS, widgetClass));
     }
     obcMenuItems.addOrderBy(WidgetClassMenu.PROPERTY_SEQUENCE, true);
     return obcMenuItems.list();
@@ -130,46 +130,46 @@
       String[] availableAtValues) {
     OBCriteria<WidgetInstance> widgetInstancesCrit = OBDal.getInstance().createCriteria(
         WidgetInstance.class);
-    widgetInstancesCrit.add(Expression.isNull(WidgetInstance.PROPERTY_VISIBLEATUSER));
+    widgetInstancesCrit.add(Restrictions.isNull(WidgetInstance.PROPERTY_VISIBLEATUSER));
     if ("OB".equals(availableAtLevel)) {
       widgetInstancesCrit.setFilterOnReadableClients(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 0L));
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance()
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 0L));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance()
           .get(Client.class, "0")));
       widgetInstancesCrit.setFilterOnReadableOrganization(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_ORGANIZATION, OBDal
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_ORGANIZATION, OBDal
           .getInstance().get(Organization.class, "0")));
     } else if ("SYSTEM".equals(availableAtLevel)) {
       widgetInstancesCrit.setFilterOnReadableClients(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 1L));
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance()
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 1L));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance()
           .get(Client.class, "0")));
       widgetInstancesCrit.setFilterOnReadableOrganization(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_ORGANIZATION, OBDal
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_ORGANIZATION, OBDal
           .getInstance().get(Organization.class, "0")));
     } else if ("CLIENT".equals(availableAtLevel)) {
       widgetInstancesCrit.setFilterOnReadableClients(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance()
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance()
           .get(Client.class, availableAtValues[0])));
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 2L));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 2L));
     } else if ("ORG".equals(availableAtLevel)) {
       final Organization organization = OBDal.getInstance().get(Organization.class,
           availableAtValues[0]);
       widgetInstancesCrit.setFilterOnReadableClients(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_CLIENT, organization
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_CLIENT, organization
           .getClient()));
       widgetInstancesCrit.setFilterOnReadableOrganization(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_ORGANIZATION, organization));
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 3L));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_ORGANIZATION, organization));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 3L));
     } else if ("ROLE".equals(availableAtLevel)) {
       final Role role = OBDal.getInstance().get(Role.class, availableAtValues[0]);
       widgetInstancesCrit.setFilterOnReadableClients(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_CLIENT, role.getClient()));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_CLIENT, role.getClient()));
       widgetInstancesCrit.setFilterOnReadableOrganization(false);
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_ORGANIZATION, OBDal
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_ORGANIZATION, OBDal
           .getInstance().get(Organization.class, "0")));
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_VISIBLEATROLE, role));
-      widgetInstancesCrit.add(Expression.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 4L));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_VISIBLEATROLE, role));
+      widgetInstancesCrit.add(Restrictions.eq(WidgetInstance.PROPERTY_RELATIVEPRIORITY, 4L));
     } else if ("USER".equals(availableAtLevel)) {
       // not supported
     }
@@ -184,18 +184,18 @@
     OBCriteria<WidgetInstance> obc = OBDal.getInstance().createCriteria(WidgetInstance.class);
     obc.setFilterOnReadableClients(false);
     obc.setFilterOnActive(isActive);
-    obc.add(Expression.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance().get(Client.class,
+    obc.add(Restrictions.eq(WidgetInstance.PROPERTY_CLIENT, OBDal.getInstance().get(Client.class,
         OBContext.getOBContext().getCurrentClient().getId())));
-    obc.add(Expression.eq(WidgetInstance.PROPERTY_VISIBLEATROLE, OBDal.getInstance().get(
+    obc.add(Restrictions.eq(WidgetInstance.PROPERTY_VISIBLEATROLE, OBDal.getInstance().get(
         Role.class, OBContext.getOBContext().getRole().getId())));
-    obc.add(Expression.eq(WidgetInstance.PROPERTY_VISIBLEATUSER, OBDal.getInstance().get(
+    obc.add(Restrictions.eq(WidgetInstance.PROPERTY_VISIBLEATUSER, OBDal.getInstance().get(
         User.class, OBContext.getOBContext().getUser().getId())));
     return obc.list();
   }
 
   static WidgetClass getWidgetClassFromTitle(String strClassTitle) {
     OBCriteria<WidgetClass> widgetClassCrit = OBDal.getInstance().createCriteria(WidgetClass.class);
-    widgetClassCrit.add(Expression.eq(WidgetClass.PROPERTY_WIDGETTITLE, strClassTitle));
+    widgetClassCrit.add(Restrictions.eq(WidgetClass.PROPERTY_WIDGETTITLE, strClassTitle));
     if (widgetClassCrit.list().size() == 0) {
       return null;
     }
--- a/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/URLWidgetProvider.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.myob/src/org/openbravo/client/myob/URLWidgetProvider.java	Tue Apr 26 10:43:12 2011 +0200
@@ -22,7 +22,7 @@
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONObject;
 import org.hibernate.NonUniqueResultException;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.dal.service.OBDao;
 
@@ -56,7 +56,7 @@
       jsonObject.put(WidgetProvider.PARAMETERS, parameters);
       try {
         final WidgetURL widgetURL = (WidgetURL) OBDao.getFilteredCriteria(WidgetURL.class,
-            Expression.eq(WidgetURL.PROPERTY_WIDGETCLASS, getWidgetClass())).uniqueResult();
+            Restrictions.eq(WidgetURL.PROPERTY_WIDGETCLASS, getWidgetClass())).uniqueResult();
         if (widgetURL != null) {
           parameters.put(SRC, widgetURL.getURL());
         } else {
@@ -83,14 +83,16 @@
       addDefaultWidgetProperties(jsonObject, widgetInstance);
       final JSONObject parameters = jsonObject.getJSONObject(WidgetProvider.PARAMETERS);
       final WidgetURL widgetURL = (WidgetURL) OBDao.getFilteredCriteria(WidgetURL.class,
-          Expression.eq(WidgetURL.PROPERTY_WIDGETCLASS, getWidgetClass())).uniqueResult();
+          Restrictions.eq(WidgetURL.PROPERTY_WIDGETCLASS, getWidgetClass())).uniqueResult();
       if (widgetURL != null) {
         parameters.put(SRC, widgetURL.getURL());
       } else {
         log.error("No url widget defined for widget class " + widgetInstance.getWidgetClass());
       }
     } catch (NonUniqueResultException e) {
-      log.error("More than one active url defined for widget " + widgetInstance.getWidgetClass(), e);
+      log
+          .error("More than one active url defined for widget " + widgetInstance.getWidgetClass(),
+              e);
     } catch (Exception e) {
       throw new OBException(e);
     }
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <NAME><![CDATA[Query/List Widget]]></NAME>
-<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION><![CDATA[1.0.11559]]></VERSION>
+<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION><![CDATA[1.0.11592]]></VERSION>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <DESCRIPTION><![CDATA[Provides the Query/List superclass widget that allows to create widget classes that prints a grid of data based on a query.]]></DESCRIPTION>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HELP><![CDATA[With this module you can define your own widget classes that just with simple Application Dictionary shows a grid of data based on a HQL Query.]]></HELP>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <URL><![CDATA[http://forge.openbravo.com/projects/querylistwidget]]></URL>
@@ -21,7 +21,7 @@
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--0A060B2AF1974E8EAA8DB61388E9AECC--></AD_MODULE>
 
--- a/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.querylist/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--26558497C31140BFAB067BA4BC47D799-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--26558497C31140BFAB067BA4BC47D799-->  <AD_MODULE_ID><![CDATA[0A060B2AF1974E8EAA8DB61388E9AECC]]></AD_MODULE_ID>
 <!--26558497C31140BFAB067BA4BC47D799-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--26558497C31140BFAB067BA4BC47D799-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--26558497C31140BFAB067BA4BC47D799-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--26558497C31140BFAB067BA4BC47D799-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--26558497C31140BFAB067BA4BC47D799-->  <DEPENDANT_MODULE_NAME><![CDATA[My Openbravo Tab]]></DEPENDANT_MODULE_NAME>
 <!--26558497C31140BFAB067BA4BC47D799-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListUtils.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.querylist/src/org/openbravo/client/querylist/QueryListUtils.java	Tue Apr 26 10:43:12 2011 +0200
@@ -24,7 +24,7 @@
 import org.apache.log4j.Logger;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.ModelProvider;
@@ -119,7 +119,7 @@
   public static List<OBCQL_QueryColumn> getColumns(OBCQL_WidgetQuery query) {
     OBCriteria<OBCQL_QueryColumn> obcColumns = OBDal.getInstance().createCriteria(
         OBCQL_QueryColumn.class);
-    obcColumns.add(Expression.eq(OBCQL_QueryColumn.PROPERTY_WIDGETQUERY, query));
+    obcColumns.add(Restrictions.eq(OBCQL_QueryColumn.PROPERTY_WIDGETQUERY, query));
     obcColumns.addOrderBy(OBCQL_QueryColumn.PROPERTY_SEQUENCENUMBER, true);
     return obcColumns.list();
   }
--- a/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.querylist/web/org.openbravo.client.querylist/js/ob-querylist-widget.js	Tue Apr 26 10:43:12 2011 +0200
@@ -190,6 +190,10 @@
   canAutoFitFields: false,
   showGridSummary: true,
   
+  summaryRowProperties: {
+    showEmptyMessage: false
+  },
+  
   dataProperties: {
     useClientFiltering: false//,
     //useClientSorting: false
--- a/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--FF8080812D842086012D844F3CC0003E-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--FF8080812D842086012D844F3CC0003E-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812D842086012D844F3CC0003E-->  <NAME><![CDATA[Widgets Collection]]></NAME>
-<!--FF8080812D842086012D844F3CC0003E-->  <VERSION><![CDATA[0.0.11559]]></VERSION>
+<!--FF8080812D842086012D844F3CC0003E-->  <VERSION><![CDATA[0.0.11592]]></VERSION>
 <!--FF8080812D842086012D844F3CC0003E-->  <DESCRIPTION><![CDATA[Collection of Workspace Widgets]]></DESCRIPTION>
 <!--FF8080812D842086012D844F3CC0003E-->  <HELP><![CDATA[Collection of Workspace Widgets]]></HELP>
 <!--FF8080812D842086012D844F3CC0003E-->  <URL><![CDATA[http://forge.openbravo.com/projects/widgetscollection]]></URL>
@@ -22,7 +22,7 @@
 <!--FF8080812D842086012D844F3CC0003E-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--FF8080812D842086012D844F3CC0003E-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--FF8080812D842086012D844F3CC0003E-->  <UPDATEINFO><![CDATA[Added Currency Converter. Added Google Docs]]></UPDATEINFO>
-<!--FF8080812D842086012D844F3CC0003E-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--FF8080812D842086012D844F3CC0003E-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--FF8080812D842086012D844F3CC0003E-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--FF8080812D842086012D844F3CC0003E--></AD_MODULE>
 
--- a/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.client.widgets/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--FF8080812D842086012D845002070046-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--FF8080812D842086012D845002070046-->  <AD_MODULE_ID><![CDATA[FF8080812D842086012D844F3CC0003E]]></AD_MODULE_ID>
 <!--FF8080812D842086012D845002070046-->  <AD_DEPENDENT_MODULE_ID><![CDATA[2758CD25B2704AF6BBAD10365FC82C06]]></AD_DEPENDENT_MODULE_ID>
-<!--FF8080812D842086012D845002070046-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--FF8080812D842086012D845002070046-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--FF8080812D842086012D845002070046-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--FF8080812D842086012D845002070046-->  <DEPENDANT_MODULE_NAME><![CDATA[Workspace & Widgets]]></DEPENDANT_MODULE_NAME>
 <!--FF8080812D842086012D845002070046-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <NAME><![CDATA[Payment Report]]></NAME>
-<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION><![CDATA[3.0.11559]]></VERSION>
+<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION><![CDATA[3.0.11592]]></VERSION>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <DESCRIPTION><![CDATA[Payment Report]]></DESCRIPTION>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <URL><![CDATA[http://forge.openbravo.com/projects/paymentreport]]></URL>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <TYPE><![CDATA[M]]></TYPE>
@@ -22,7 +22,7 @@
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--2A5EE903D7974AC298C0504FBC4501A7-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--2A5EE903D7974AC298C0504FBC4501A7-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--2A5EE903D7974AC298C0504FBC4501A7--></AD_MODULE>
 
--- a/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <AD_MODULE_ID><![CDATA[2A5EE903D7974AC298C0504FBC4501A7]]></AD_MODULE_ID>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_DEPENDENT_MODULE_ID>
-<!--A3B449C4D5FE4D688CC58236FE33B802-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--A3B449C4D5FE4D688CC58236FE33B802-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <DEPENDANT_MODULE_NAME><![CDATA[Advanced Payables and Receivables Mngmt]]></DEPENDANT_MODULE_NAME>
 <!--A3B449C4D5FE4D688CC58236FE33B802-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.financial.paymentreport/src/org/openbravo/financial/paymentreport/erpCommon/ad_reports/PaymentReportDao.java	Tue Apr 26 10:43:12 2011 +0200
@@ -27,7 +27,6 @@
 import java.util.Iterator;
 import java.util.Set;
 
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Restrictions;
 import org.openbravo.advpaymentmngt.utility.FIN_Utility;
 import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -881,10 +880,10 @@
 
       final OBCriteria<ConversionRate> obcConvRate = OBDal.getInstance().createCriteria(
           ConversionRate.class);
-      obcConvRate.add(Expression.eq(ConversionRate.PROPERTY_CURRENCY, transCurrency));
-      obcConvRate.add(Expression.eq(ConversionRate.PROPERTY_TOCURRENCY, baseCurrency));
-      obcConvRate.add(Expression.le(ConversionRate.PROPERTY_VALIDFROMDATE, conversionDateObj));
-      obcConvRate.add(Expression.ge(ConversionRate.PROPERTY_VALIDTODATE, conversionDateObj));
+      obcConvRate.add(Restrictions.eq(ConversionRate.PROPERTY_CURRENCY, transCurrency));
+      obcConvRate.add(Restrictions.eq(ConversionRate.PROPERTY_TOCURRENCY, baseCurrency));
+      obcConvRate.add(Restrictions.le(ConversionRate.PROPERTY_VALIDFROMDATE, conversionDateObj));
+      obcConvRate.add(Restrictions.ge(ConversionRate.PROPERTY_VALIDTODATE, conversionDateObj));
 
       convRateList = obcConvRate.list();
 
@@ -905,9 +904,9 @@
     String values[];
     try {
       final OBCriteria<Reference> obc = OBDal.getInstance().createCriteria(Reference.class);
-      obc.add(Expression.eq(Reference.PROPERTY_NAME, refName));
+      obc.add(Restrictions.eq(Reference.PROPERTY_NAME, refName));
       final OBCriteria<List> obcValue = OBDal.getInstance().createCriteria(List.class);
-      obcValue.add(Expression.eq(List.PROPERTY_REFERENCE, obc.list().get(0)));
+      obcValue.add(Restrictions.eq(List.PROPERTY_REFERENCE, obc.list().get(0)));
       java.util.List<List> v = obcValue.list();
       int n = v.size();
 
@@ -937,7 +936,7 @@
 
       if (!"en_US".equals(language.getLanguage())) {
         OBCriteria<ListTrl> obcTrl = OBDal.getInstance().createCriteria(ListTrl.class);
-        obcTrl.add(Expression.eq(ListTrl.PROPERTY_LANGUAGE, language));
+        obcTrl.add(Restrictions.eq(ListTrl.PROPERTY_LANGUAGE, language));
         obcTrl.createAlias(ListTrl.PROPERTY_LISTREFERENCE, "lr");
         obcTrl.add(Restrictions.eq("lr." + List.PROPERTY_SEARCHKEY, strCode));
         obcTrl.setFilterOnReadableClients(false);
@@ -949,7 +948,7 @@
         OBCriteria<List> obc = OBDal.getInstance().createCriteria(List.class);
         obc.setFilterOnReadableClients(false);
         obc.setFilterOnReadableOrganization(false);
-        obc.add(Expression.eq(List.PROPERTY_SEARCHKEY, strCode));
+        obc.add(Restrictions.eq(List.PROPERTY_SEARCHKEY, strCode));
         strMessage = (obc.list() != null && obc.list().size() > 0) ? obc.list().get(0).getName()
             : null;
       }
--- a/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--3A3A943684D64DEF9EC39F588A656848-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <NAME><![CDATA[Orders Awaiting Delivery]]></NAME>
-<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION><![CDATA[1.1.11559]]></VERSION>
+<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION><![CDATA[1.1.11592]]></VERSION>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <DESCRIPTION><![CDATA[Report displaying sales orders not shipped.]]></DESCRIPTION>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <URL><![CDATA[http://forge.openbravo.com/projects/ordersawaitingdlivery]]></URL>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <TYPE><![CDATA[M]]></TYPE>
@@ -19,7 +19,7 @@
 <!--3A3A943684D64DEF9EC39F588A656848-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--3A3A943684D64DEF9EC39F588A656848-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--3A3A943684D64DEF9EC39F588A656848-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--3A3A943684D64DEF9EC39F588A656848--></AD_MODULE>
 
--- a/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.reports.ordersawaitingdelivery/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <AD_MODULE_ID><![CDATA[3A3A943684D64DEF9EC39F588A656848]]></AD_MODULE_ID>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--64060E9EE9EC408BBFFD0CC2DE25C86F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <NAME><![CDATA[JSON Datasource]]></NAME>
-<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION><![CDATA[2.1.11559]]></VERSION>
+<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION><![CDATA[2.1.11592]]></VERSION>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <DESCRIPTION><![CDATA[Provides data source CRUD functionality using JSON as the data format]]></DESCRIPTION>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <HELP><![CDATA[This module implements the datasource concept. Datasources play a central role in Smartclient applications. The datasource module automatically creates a datasource for each Openbravo entity. In addition custom data source implementations can be defined.]]></HELP>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <URL><![CDATA[http://forge.openbravo.com/projects/datasourceservice]]></URL>
@@ -22,7 +22,7 @@
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0]]></UPDATEINFO>
-<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--A44B9BA75C354D8FB2E3F7D6EB6BFDC4--></AD_MODULE>
 
--- a/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <STARTVERSION><![CDATA[1.1.11559]]></STARTVERSION>
+<!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <STARTVERSION><![CDATA[1.1.11592]]></STARTVERSION>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--0BA071C783CC4984AC9C03BB7CAA87C7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <AD_DEPENDENT_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_DEPENDENT_MODULE_ID>
-<!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <STARTVERSION><![CDATA[2.0.11559]]></STARTVERSION>
+<!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <STARTVERSION><![CDATA[2.0.11592]]></STARTVERSION>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON REST Webservice]]></DEPENDANT_MODULE_NAME>
 <!--3E531F0CD0A54130996F5AF3B6A2D01B-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--4FCE95802A854F7E8623AFF7C33D13EE-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--4FCE95802A854F7E8623AFF7C33D13EE-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--4FCE95802A854F7E8623AFF7C33D13EE-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--54AF8B39C55E4E7496902893ECD82786-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--54AF8B39C55E4E7496902893ECD82786-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--54AF8B39C55E4E7496902893ECD82786-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--54AF8B39C55E4E7496902893ECD82786-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <AD_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_MODULE_ID>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--D03C56D8A4E14F45A5466350E05C631F-->  <STARTVERSION><![CDATA[8.1.11559]]></STARTVERSION>
+<!--D03C56D8A4E14F45A5466350E05C631F-->  <STARTVERSION><![CDATA[8.1.11592]]></STARTVERSION>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--D03C56D8A4E14F45A5466350E05C631F-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceServiceProvider.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/DataSourceServiceProvider.java	Tue Apr 26 10:43:12 2011 +0200
@@ -24,7 +24,7 @@
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.util.OBClassLoader;
@@ -67,7 +67,7 @@
 
           final OBCriteria<DataSource> obCriteria = OBDal.getInstance().createCriteria(
               DataSource.class);
-          obCriteria.add(Expression.eq(DataSource.PROPERTY_NAME, name));
+          obCriteria.add(Restrictions.eq(DataSource.PROPERTY_NAME, name));
           if (!obCriteria.list().isEmpty()) {
             dataSource = obCriteria.list().get(0);
           }
--- a/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <NAME><![CDATA[JSON REST Webservice]]></NAME>
-<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION><![CDATA[2.0.11559]]></VERSION>
+<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION><![CDATA[2.0.11592]]></VERSION>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <DESCRIPTION><![CDATA[Provides a JSON REST webservice for CRUD service requests]]></DESCRIPTION>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <HELP><![CDATA[Provides a JSON REST webservice for CRUD service requests. Both the servlet implementation (receiving HTTP REST requests in JSON) as the backend processing are provided.]]></HELP>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <URL><![CDATA[http://forge.openbravo.com/projects/openbravojsonrest]]></URL>
@@ -22,7 +22,7 @@
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0]]></UPDATEINFO>
-<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--F8D1B3ECB3474E8DA5C216473C840DF1--></AD_MODULE>
 
--- a/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.json/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--9E3E7B42DB16405FB794496D309D7044-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <AD_MODULE_ID><![CDATA[F8D1B3ECB3474E8DA5C216473C840DF1]]></AD_MODULE_ID>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--9E3E7B42DB16405FB794496D309D7044-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--9E3E7B42DB16405FB794496D309D7044-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--9E3E7B42DB16405FB794496D309D7044-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java	Tue Apr 26 10:43:12 2011 +0200
@@ -523,7 +523,7 @@
       orNesting--;
       return value;
     }
-    throw new IllegalArgumentException("Unsupported operation " + operator);
+    return parseSingleClause(advancedCriteria);
   }
 
   private String parseStructuredClause(JSONArray clauses, String hqlOperator) throws JSONException {
@@ -818,9 +818,7 @@
       } else {
         final List<Property> newIdentifierProperties = prop.getReferencedProperty().getEntity()
             .getIdentifierProperties();
-        sb
-            .append(createIdentifierLeftClause(newIdentifierProperties, prefix + prop.getName()
-                + "."));
+        sb.append(createIdentifierLeftClause(newIdentifierProperties, prefix + prop.getName() + "."));
       }
     }
 
--- a/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonToDataConverter.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonToDataConverter.java	Tue Apr 26 10:43:12 2011 +0200
@@ -40,6 +40,7 @@
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.Property;
+import org.openbravo.base.model.domaintype.BigDecimalDomainType;
 import org.openbravo.base.model.domaintype.EncryptedStringDomainType;
 import org.openbravo.base.model.domaintype.HashedStringDomainType;
 import org.openbravo.base.model.domaintype.TimestampDomainType;
@@ -395,6 +396,19 @@
           } else {
             // no _cleartext value found -> skipping field
           }
+        } else if (property.getDomainType() instanceof BigDecimalDomainType
+            && jsonObject.has(keyName + "_textualValue")) {
+          final String strValue = (String) jsonObject.get(keyName + "_textualValue");
+          try {
+            if (strValue == null || strValue.trim().length() == 0) {
+              setValue(obObject, property, null);
+            } else {
+              setValue(obObject, property, new BigDecimal(strValue));
+            }
+          } catch (Exception e) {
+            throw new OBException("Exception while trying to convert value:-->" + strValue + "<-- "
+                + e.getMessage(), e);
+          }
         } else {
           setValue(obObject, property, jsonObject.get(keyName));
         }
@@ -635,8 +649,8 @@
           // there are mismatches between json and the database in
           // precision of times/dates, these are repaired here by
           // not updating if the relevant part is the same
-          if (areDatesEqual((Date) value, (Date) currentValue, property.isDatetime(), property
-              .getDomainType() instanceof TimestampDomainType)) {
+          if (areDatesEqual((Date) value, (Date) currentValue, property.isDatetime(),
+              property.getDomainType() instanceof TimestampDomainType)) {
             return;
           }
         }
--- a/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <NAME><![CDATA[User Interface Selector]]></NAME>
-<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION><![CDATA[2.1.11559]]></VERSION>
+<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION><![CDATA[2.1.11592]]></VERSION>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <DESCRIPTION><![CDATA[Provides a selector with a suggestion box and popup grid window]]></DESCRIPTION>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <HELP><![CDATA[The Openbravo selector provides new selector functionality which is used inside of existing Openbravo forms. The selector is mainly used for supporting foreign key references in the user interface. The selector combines both suggestion box behavior with a popup grid.]]></HELP>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <URL><![CDATA[http://forge.openbravo.com/projects/selector]]></URL>
@@ -22,7 +22,7 @@
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0]]></UPDATEINFO>
-<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--5EB4F15C80684ACA904756BDC12ADBE5-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--5EB4F15C80684ACA904756BDC12ADBE5-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--5EB4F15C80684ACA904756BDC12ADBE5--></AD_MODULE>
 
--- a/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <AD_DEPENDENT_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_DEPENDENT_MODULE_ID>
-<!--38825CAED43941D38CA0C78DB04FCFA0-->  <STARTVERSION><![CDATA[8.1.11559]]></STARTVERSION>
+<!--38825CAED43941D38CA0C78DB04FCFA0-->  <STARTVERSION><![CDATA[8.1.11592]]></STARTVERSION>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <DEPENDANT_MODULE_NAME><![CDATA[Smartclient]]></DEPENDANT_MODULE_NAME>
 <!--38825CAED43941D38CA0C78DB04FCFA0-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <AD_DEPENDENT_MODULE_ID><![CDATA[9BA0836A3CD74EE4AB48753A47211BCC]]></AD_DEPENDENT_MODULE_ID>
-<!--6DDE7B1A70174242AF82B5022FB89279-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--6DDE7B1A70174242AF82B5022FB89279-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Application]]></DEPENDANT_MODULE_NAME>
 <!--6DDE7B1A70174242AF82B5022FB89279-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--94F9CD2CB5EF4467A67475C786C984A7-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--94F9CD2CB5EF4467A67475C786C984A7-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--94F9CD2CB5EF4467A67475C786C984A7-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -49,7 +49,7 @@
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <STARTVERSION><![CDATA[1.1.11559]]></STARTVERSION>
+<!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <STARTVERSION><![CDATA[1.1.11592]]></STARTVERSION>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--BCCB5A08EC0446DE8BCE191C6BC607A4-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -63,7 +63,7 @@
 <!--C8DAC574B88649D08C9468521B343F12-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--C8DAC574B88649D08C9468521B343F12-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--C8DAC574B88649D08C9468521B343F12-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--C8DAC574B88649D08C9468521B343F12-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--C8DAC574B88649D08C9468521B343F12-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--C8DAC574B88649D08C9468521B343F12-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--C8DAC574B88649D08C9468521B343F12-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--C8DAC574B88649D08C9468521B343F12-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -77,7 +77,7 @@
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <AD_MODULE_ID><![CDATA[5EB4F15C80684ACA904756BDC12ADBE5]]></AD_MODULE_ID>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <AD_DEPENDENT_MODULE_ID><![CDATA[A44B9BA75C354D8FB2E3F7D6EB6BFDC4]]></AD_DEPENDENT_MODULE_ID>
-<!--F14EB17946BE4724A46F80CB1A47EC70-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--F14EB17946BE4724A46F80CB1A47EC70-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <DEPENDANT_MODULE_NAME><![CDATA[JSON Datasource]]></DEPENDANT_MODULE_NAME>
 <!--F14EB17946BE4724A46F80CB1A47EC70-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java	Tue Apr 26 10:43:12 2011 +0200
@@ -35,7 +35,7 @@
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.hibernate.Query;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.domaintype.BigDecimalDomainType;
 import org.openbravo.base.model.domaintype.BooleanDomainType;
@@ -362,7 +362,7 @@
     // If sortByClause is empty set default sort options.
     if (sortByClause.length() == 0) {
       OBCriteria<SelectorField> selFieldsCrit = OBDao.getFilteredCriteria(SelectorField.class,
-          Expression.eq(SelectorField.PROPERTY_OBUISELSELECTOR, sel), Expression.eq(
+          Restrictions.eq(SelectorField.PROPERTY_OBUISELSELECTOR, sel), Restrictions.eq(
               SelectorField.PROPERTY_SHOWINGRID, true));
       selFieldsCrit.addOrderBy(SelectorField.PROPERTY_SORTNO, true);
       for (SelectorField selField : selFieldsCrit.list()) {
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorComponent.java	Tue Apr 26 10:43:12 2011 +0200
@@ -30,7 +30,7 @@
 
 import org.apache.log4j.Logger;
 import org.hibernate.criterion.Criterion;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.Property;
@@ -344,8 +344,8 @@
    */
   public String getShowSelectorGrid() {
     if (OBDao.getFilteredCriteria(SelectorField.class,
-        Expression.eq(SelectorField.PROPERTY_OBUISELSELECTOR, getSelector()),
-        Expression.eq(SelectorField.PROPERTY_SHOWINGRID, true)).count() > 0) {
+        Restrictions.eq(SelectorField.PROPERTY_OBUISELSELECTOR, getSelector()),
+        Restrictions.eq(SelectorField.PROPERTY_SHOWINGRID, true)).count() > 0) {
       return Boolean.TRUE.toString();
     }
     return Boolean.FALSE.toString();
@@ -542,10 +542,11 @@
 
     OBContext.setAdminMode();
     try {
-      final Criterion selectorConstraint = Expression.eq(SelectorField.PROPERTY_OBUISELSELECTOR,
+      final Criterion selectorConstraint = Restrictions.eq(SelectorField.PROPERTY_OBUISELSELECTOR,
           getSelector());
-      final Criterion isOutFieldConstraint = Expression.eq(SelectorField.PROPERTY_ISOUTFIELD, true);
-      final Criterion hasSuffixConstraint = Expression.isNotNull(SelectorField.PROPERTY_SUFFIX);
+      final Criterion isOutFieldConstraint = Restrictions.eq(SelectorField.PROPERTY_ISOUTFIELD,
+          true);
+      final Criterion hasSuffixConstraint = Restrictions.isNotNull(SelectorField.PROPERTY_SUFFIX);
       List<SelectorField> fields = OBDao.getFilteredCriteria(SelectorField.class,
           selectorConstraint, isOutFieldConstraint, hasSuffixConstraint).list();
       for (final SelectorField field : fields) {
@@ -572,6 +573,7 @@
     localSelectorField.setTitle(" ");
     localSelectorField.setSort(false);
     localSelectorField.setFilter(false);
+    localSelectorField.setSelectorItem(isSelectorItem());
     pickListFields.add(localSelectorField);
     pickListFields.addAll(getSelectorFields(true, false));
     return pickListFields;
@@ -610,6 +612,7 @@
       localSelectorField.setName(fieldName);
       localSelectorField.setTitle(getTranslatedName(selectorField));
       localSelectorField.setSort(!pickList && selectorField.isSortable());
+      localSelectorField.setSelectorItem(isSelectorItem());
 
       localSelectorField.setFilter(!pickList && selectorField.isFilterable());
       localSelectorField.setDomainType(domainType);
@@ -709,6 +712,7 @@
     private String displayField;
     private boolean filter;
     private boolean sort;
+    private boolean isSelectorItem;
     private DomainType domainType;
     private UIDefinition uiDefinition;
     private SelectorField selectorField;
@@ -747,7 +751,7 @@
 
     public String getFilterEditorProperties() {
       if (getUIDefinition() != null) {
-        if (getUIDefinition() instanceof FKComboUIDefinition) {
+        if (getUIDefinition() instanceof FKComboUIDefinition && isSelectorItem) {
           return ", filterOperator: 'equals', filterOnKeypress: true, canFilter:true, required: false, filterEditorType: 'OBSelectorFilterSelectItem', filterEditorProperties: {entity: '"
               + getEntityName() + "', displayField: '" + JsonConstants.IDENTIFIER + "'}";
         }
@@ -805,6 +809,10 @@
       this.sort = sort;
     }
 
+    public void setSelectorItem(boolean isSelectorItem) {
+      this.isSelectorItem = isSelectorItem;
+    }
+
     public static class LocalSelectorFieldProperty {
       private String name;
       private String value;
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDataSourceFilter.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDataSourceFilter.java	Tue Apr 26 10:43:12 2011 +0200
@@ -28,7 +28,7 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.log4j.Logger;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.Property;
@@ -75,8 +75,8 @@
       Selector sel = OBDal.getInstance().get(Selector.class, selectorId);
 
       OBCriteria<SelectorField> sfc = OBDal.getInstance().createCriteria(SelectorField.class);
-      sfc.add(Expression.isNotNull(SelectorField.PROPERTY_DEFAULTEXPRESSION));
-      sfc.add(Expression.eq(SelectorField.PROPERTY_OBUISELSELECTOR, sel));
+      sfc.add(Restrictions.isNotNull(SelectorField.PROPERTY_DEFAULTEXPRESSION));
+      sfc.add(Restrictions.eq(SelectorField.PROPERTY_OBUISELSELECTOR, sel));
 
       if ((sel.getFilterExpression() == null || sel.getFilterExpression().equals(""))
           && sfc.count() == 0) { // Nothing to filter
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDefaultFilterActionHandler.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorDefaultFilterActionHandler.java	Tue Apr 26 10:43:12 2011 +0200
@@ -28,7 +28,7 @@
 
 import org.apache.log4j.Logger;
 import org.codehaus.jettison.json.JSONObject;
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.client.application.OBBindings;
 import org.openbravo.client.kernel.BaseActionHandler;
 import org.openbravo.client.kernel.KernelConstants;
@@ -61,8 +61,8 @@
 
       Selector sel = OBDal.getInstance().get(Selector.class, selectorId);
       OBCriteria<SelectorField> obc = OBDal.getInstance().createCriteria(SelectorField.class);
-      obc.add(Expression.eq(SelectorField.PROPERTY_OBUISELSELECTOR, sel));
-      obc.add(Expression.isNotNull(SelectorField.PROPERTY_DEFAULTEXPRESSION));
+      obc.add(Restrictions.eq(SelectorField.PROPERTY_OBUISELSELECTOR, sel));
+      obc.add(Restrictions.isNotNull(SelectorField.PROPERTY_DEFAULTEXPRESSION));
 
       if (obc.count() == 0) {
         return result;
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorFieldPropertyCallout.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/SelectorFieldPropertyCallout.java	Tue Apr 26 10:43:12 2011 +0200
@@ -26,7 +26,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.hibernate.criterion.Expression;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.filter.IsIDFilter;
 import org.openbravo.base.model.Entity;
 import org.openbravo.base.model.ModelProvider;
@@ -123,8 +123,8 @@
           Table.PROPERTY_DBTABLENAME + "='" + propertyEntity.getTableName() + "'").list().get(0);
 
       final OBCriteria<Column> columnCriteria = OBDal.getInstance().createCriteria(Column.class);
-      columnCriteria.add(Expression.and(Expression.eq(Column.PROPERTY_TABLE, propertyTable),
-          Expression.eq(Column.PROPERTY_DBCOLUMNNAME, foundProperty.getColumnName())));
+      columnCriteria.add(Restrictions.and(Restrictions.eq(Column.PROPERTY_TABLE, propertyTable),
+          Restrictions.eq(Column.PROPERTY_DBCOLUMNNAME, foundProperty.getColumnName())));
       final List<Column> columnList = columnCriteria.list();
       if (columnList.isEmpty()) {
         writeEmptyResult(response);
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/model/domaintype/SelectorDomainType.java	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/model/domaintype/SelectorDomainType.java	Tue Apr 26 10:43:12 2011 +0200
@@ -24,8 +24,8 @@
 import org.apache.log4j.Logger;
 import org.hibernate.Criteria;
 import org.hibernate.Session;
-import org.hibernate.criterion.Expression;
 import org.hibernate.criterion.Order;
+import org.hibernate.criterion.Restrictions;
 import org.openbravo.base.model.Column;
 import org.openbravo.base.model.ModelProvider;
 import org.openbravo.base.model.Table;
@@ -57,7 +57,7 @@
     Session session = ModelProvider.getInstance().getSession();
 
     final Criteria criteria = session.createCriteria(SelectorDefinition.class);
-    criteria.add(Expression.eq("referenceId", getReference().getId()));
+    criteria.add(Restrictions.eq("referenceId", getReference().getId()));
     final List<?> list = criteria.list();
     if (list.isEmpty()) {
       // a base reference
@@ -97,7 +97,7 @@
   private List<Column> readColumns(Session session, Table table) {
     final Criteria c = session.createCriteria(Column.class);
     c.addOrder(Order.asc("position"));
-    c.add(Expression.eq("table", table));
+    c.add(Restrictions.eq("table", table));
     return c.list();
   }
 
--- a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js	Tue Apr 26 10:43:12 2011 +0200
@@ -388,7 +388,7 @@
         this.form.focusInNextItem(this.name);
       }
     }
-    if (currentValue !== this.getValue() && this.form && this.form.handleItemChange) {
+    if (this.form && this.form.handleItemChange) {
       this._hasChanged = true;
       this.form.handleItemChange(this);
     }
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <NAME><![CDATA[2.50 to 3.00 Compatibility Skin]]></NAME>
-<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION><![CDATA[2.0.11559]]></VERSION>
+<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION><![CDATA[2.0.11592]]></VERSION>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <DESCRIPTION><![CDATA[Skin module to proper visualization of classic windows inside the MDI interface]]></DESCRIPTION>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HELP><![CDATA[With this skin module the classic windows styles will display in a way more coherent with the new 3.00 styles]]></HELP>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <URL><![CDATA[www.openbravo.com]]></URL>
@@ -23,7 +23,7 @@
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HASCHARTOFACCOUNTS><![CDATA[N]]></HASCHARTOFACCOUNTS>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
-<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--96998CBC42744B3DBEE28AC8095C9335-->  <VERSION_LABEL><![CDATA[RC6]]></VERSION_LABEL>
 <!--96998CBC42744B3DBEE28AC8095C9335-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--96998CBC42744B3DBEE28AC8095C9335--></AD_MODULE>
 
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <AD_MODULE_ID><![CDATA[96998CBC42744B3DBEE28AC8095C9335]]></AD_MODULE_ID>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--39BF75AD9AB3453698BF5DE29E727AA9-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--39BF75AD9AB3453698BF5DE29E727AA9-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--39BF75AD9AB3453698BF5DE29E727AA9-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.skin.250to300Comp/web/org.openbravo.userinterface.skin.250to300Comp/skins/250to300Comp/Openbravo_ERP_250.css	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.skin.250to300Comp/web/org.openbravo.userinterface.skin.250to300Comp/skins/250to300Comp/Openbravo_ERP_250.css	Tue Apr 26 10:43:12 2011 +0200
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2008-2010 Openbravo SLU 
+ * All portions are Copyright (C) 2008-2011 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -304,23 +304,23 @@
 }
 
 tr.DataGrid_Body_Row_Even, tr.DataGrid_Body_Row_1 {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: repeat; sprite-margin-bottom: 30px; */
+  background-image: none;
   background-color: #FFFFFF;
 }
 
 tr.DataGrid_Body_Row_Odd, tr.DataGrid_Body_Row_0 {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: repeat; sprite-margin-bottom: 30px; */
+  background-image: none;
   background-color: #F5F5F5;
 }
 
 tr.DataGrid_Body_Row_focus {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: repeat; sprite-margin-bottom: 30px; */
+  background-image: none;
   background-color: #FFBA6E;
   color: #000000;
 }
 
 tr.DataGrid_Body_Row_selected {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: repeat; sprite-margin-bottom: 30px; */
+  background-image: none;
   background-color: #B8D587;
   color: #000000;
 }
@@ -374,7 +374,7 @@
   font-family: arial, sans-serif !important;
   font-size: 12px !important;
   color: #000000 !important;
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: repeat; sprite-margin-bottom: 30px; */
+  background-image: none;
   background-color: #FFE1C0;
 }
 
@@ -550,7 +550,7 @@
 }
 
 a.LabelLink_focus {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */
+  background-image: none;
   color: #333333;
   border-color: #FA962F;
 }
@@ -1309,13 +1309,13 @@
 }
 
 a.Main_ToolBar_Button:hover {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */
+  background-image: none;
   background-color: #3a6b01;
   border: 1px solid #74a23f;
 }
 
 a.Main_ToolBar_Button:active {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */
+  background-image: none;
   background-color: #2C4E00;
   border: 1px solid #74a23f;
 }
@@ -1332,7 +1332,7 @@
   margin-right: 2px;
   width: 28px;
   height: 28px;
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */
+  background-image: none;
   background-color: #2C4E00;
   border: 1px solid #74a23f;
 }
@@ -1353,12 +1353,12 @@
 }
 
 a.Main_ToolBar_Button_Selected:hover {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */
+  background-image: none;
   border: 1px solid #74a23f;
 }
 
 a.Main_ToolBar_Button_Selected:active {
-  background-image: none;  /** sprite-ref: xxspritexx_V; sprite-alignment-ltr: left; */
+  background-image: none;
 }
 
 a.Main_ToolBar_Button_Selected:focus {
--- a/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -6,7 +6,7 @@
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <NAME><![CDATA[Smartclient]]></NAME>
-<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION><![CDATA[8.1.11559]]></VERSION>
+<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION><![CDATA[8.1.11628]]></VERSION>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <DESCRIPTION><![CDATA[Smartclient libraries for use within Openbravo]]></DESCRIPTION>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <HELP><![CDATA[This module contains the Smartclient libraries for usage by other modules. It also contains some simple test pages to validate that Smartclient is working correctly. Also contains generic Openbravo Smartclient components]]></HELP>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <URL><![CDATA[http://forge.openbravo.com/projects/obsmartclient]]></URL>
@@ -23,7 +23,7 @@
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <HASREFERENCEDATA><![CDATA[N]]></HASREFERENCEDATA>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <UPDATEINFO><![CDATA[Bug fixing & new development for 3.0
 Update to new smartclient 8.0]]></UPDATEINFO>
-<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION_LABEL><![CDATA[CI]]></VERSION_LABEL>
+<!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <VERSION_LABEL><![CDATA[CI ]]></VERSION_LABEL>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9-->  <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL>
 <!--EC356CEE3D46416CA1EBEEB9AB82EDB9--></AD_MODULE>
 
--- a/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.smartclient/src-db/database/sourcedata/AD_MODULE_DEPENDENCY.xml	Tue Apr 26 10:43:12 2011 +0200
@@ -7,7 +7,7 @@
 <!--086331E18477496B8AC74D2CFEBD1307-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <AD_DEPENDENT_MODULE_ID><![CDATA[0]]></AD_DEPENDENT_MODULE_ID>
-<!--086331E18477496B8AC74D2CFEBD1307-->  <STARTVERSION><![CDATA[3.0.11559]]></STARTVERSION>
+<!--086331E18477496B8AC74D2CFEBD1307-->  <STARTVERSION><![CDATA[3.0.11592]]></STARTVERSION>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <DEPENDANT_MODULE_NAME><![CDATA[core]]></DEPENDANT_MODULE_NAME>
 <!--086331E18477496B8AC74D2CFEBD1307-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -21,7 +21,7 @@
 <!--DC5D4EF450244482BD2B458DAA496333-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <AD_DEPENDENT_MODULE_ID><![CDATA[4B828F4D03264080AA1D2057B13F613C]]></AD_DEPENDENT_MODULE_ID>
-<!--DC5D4EF450244482BD2B458DAA496333-->  <STARTVERSION><![CDATA[2.1.11559]]></STARTVERSION>
+<!--DC5D4EF450244482BD2B458DAA496333-->  <STARTVERSION><![CDATA[2.1.11592]]></STARTVERSION>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <DEPENDANT_MODULE_NAME><![CDATA[User Interface Client Kernel]]></DEPENDANT_MODULE_NAME>
 <!--DC5D4EF450244482BD2B458DAA496333-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
@@ -35,7 +35,7 @@
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <AD_MODULE_ID><![CDATA[EC356CEE3D46416CA1EBEEB9AB82EDB9]]></AD_MODULE_ID>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <AD_DEPENDENT_MODULE_ID><![CDATA[C70732EA90A14EC0916078B85CC33D2D]]></AD_DEPENDENT_MODULE_ID>
-<!--F2AF15C0AF5540E393D96BE506E20648-->  <STARTVERSION><![CDATA[1.1.11559]]></STARTVERSION>
+<!--F2AF15C0AF5540E393D96BE506E20648-->  <STARTVERSION><![CDATA[1.1.11592]]></STARTVERSION>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <ISINCLUDED><![CDATA[N]]></ISINCLUDED>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <DEPENDANT_MODULE_NAME><![CDATA[JBoss Weld]]></DEPENDANT_MODULE_NAME>
 <!--F2AF15C0AF5540E393D96BE506E20648-->  <DEPENDENCY_ENFORCEMENT><![CDATA[MAJOR]]></DEPENDENCY_ENFORCEMENT>
--- a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/isomorphic/ISC_Combined.js	Wed Apr 20 13:09:38 2011 +0200
+++ b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/isomorphic/ISC_Combined.js	Tue Apr 26 10:43:12 2011 +0200
@@ -1,6 +1,6 @@
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * 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-01-11/LGPL Deployment";isc.versionNumber="SC_SNAPSHOT-2011-01-11";isc.buildDate="2011-01-11";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"},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-04-17/LGPL Deployment";isc.versionNumber="SC_SNAPSHOT-2011-04-17";isc.buildDate="2011-04-17";isc.expirationDate="";isc.licenseType="LGPL";isc.licenseCompany="Isomorphic Software";isc.licenseSerialNumber="ISC_LGPL_NIGHTLY";isc.licensingPage="http://smartclient.com/product/";isc.$41r={SCServer:{present:"false",name:"SmartClient Server",serverOnly:true,isPro:true},Drawing:{present:"false",name:"Drawing Module"},PluginBridges:{present:"true",name:"PluginBridges Module"},RichTextEditor:{present:"true",name:"RichTextEditor Module"},Calendar:{present:"true",name:"Calendar Module"},Analytics:{present:"false",name:"Analytics Module"},Tools:{present:"${includeTools}",name:"Portal and Tools Module"},NetworkPerformance:{present:"false",name:"Network Performance Module"},FileLoader:{present:"false",name:"Network Performance Module"},RealtimeMessaging:{present:"false",name:"RealtimeMessaging Module"},serverCriteria:{present:"false",name:"Server Advanced Filtering",serverOnly:true,isFeature:true},customSQL:{present:"false",name:"SQL Templating",serverOnly:true,isFeature:true},chaining:{present:"false",name:"Transaction Chaining",serverOnly:true,isFeature:true},batchDSGenerator:{present:"false",name:"Batch DS-Generator",serverOnly:true,isFeature:true},batchUploader:{present:"false",name:"Batch Uploader",serverOnly:true,isFeature:true},transactions:{present:"false",name:"Automatic Transaction Management",serverOnly:true,isFeature:true}};isc.canonicalizeModules=function(_1){if(!_1)return null;if(isc.isA.String(_1)){if(_1.indexOf(",")!=-1){_1=_1.split(",");var _2=/^\s+/,_3=/\s+$/;for(var i=0;i<_1.length;i++){_1[i]=_1[i].replace(_2,"").replace(_3,"")}}else _1=[_1]}
 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,8 +22,8 @@
 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>7
-isc.Browser.isIE8Strict=isc.Browser.isIE&&isc.Browser.isStrict&&isc.Browser.isIE8;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.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)})()}}
 isc.Browser.isWin=navigator.platform.toLowerCase().indexOf("win")>-1;isc.Browser.isWin2k=navigator.userAgent.match(/NT 5.01?/)!=null;isc.Browser.isMac=navigator.platform.toLowerCase().indexOf("mac")>-1;isc.Browser.isUnix=(!isc.Browser.isMac&&!isc.Browser.isWin);isc.Browser.isAndroid=navigator.userAgent.indexOf("Android")>-1;isc.Browser.isMobileWebkit=(isc.Browser.isSafari&&navigator.userAgent.indexOf(" Mobile/")>-1||isc.Browser.isAndroid&&navigator.userAgent.indexOf(" Mobile ")>-1);isc.Browser.isMobile=(isc.Browser.isMobileWebkit);isc.Browser.isTouch=(isc.Browser.isMobileWebkit);isc.Browser.isIPhone=(isc.Browser.isMobileWebkit&&navigator.userAgent.indexOf("AppleWebKit"));isc.Browser.isHandset=(isc.Browser.isMobileWebkit&&navigator.userAgent.indexOf("iPad")==-1);isc.Browser.isIPad=(isc.Browser.isIPhone&&navigator.userAgent.indexOf("iPad"));isc.Browser.isTablet=(isc.Browser.isIPad);isc.Browser.isBorderBox=(isc.Browser.isIE&&!isc.Browser.isStrict);isc.Browser.lineFeed=(isc.Browser.isWin?"\r\n":"\r");isc.Browser.$h=false;isc.Browser.isDOM=(isc.Browser.isMoz||isc.Browser.isOpera||isc.Browser.isSafari||(isc.Browser.isIE&&isc.Browser.version>=5));isc.Browser.isSupported=((isc.Browser.isIE&&isc.Browser.minorVersion>=5.5&&isc.Browser.isWin)||isc.Browser.isMoz||isc.Browser.isOpera||isc.Browser.isSafari||isc.Browser.isAIR);isc.Browser.allowsXSXHR=((isc.Browser.isFirefox&&isc.Browser.firefoxVersion>="3.5")||(isc.Browser.isChrome)||(isc.Browser.isSafari&&isc.Browser.safariVersion>=531));isc.noOp=function(){};isc.emptyObject={};isc.$ac=[];isc.emptyString=isc.$ad="";isc.dot=".";isc.semi=";";isc.colon=":";isc.slash="/";isc.star="*";isc.auto="auto";isc.px="px";isc.nbsp="&nbsp;";isc.xnbsp="&amp;nbsp;";isc.$ae="false";isc.$af="FALSE";isc.$ag="_";isc.$75g="$";isc.$ah="_$observed_";isc.$ai="_$SuperProto_";isc.gwtRef="__ref";isc.logWarn=function(_1,_2){isc.Log.logWarn(_1,_2)}
@@ -69,10 +69,11 @@
 return _4});isc.addGlobal("sortObjectByProperties",function(_1,_2){if(!isc.isA.Object(_1))return _1;if(isc.isAn.Array(_1)){if(_2!=null)return _1.sort(_2);return _1.sort()}
 var _3=isc.getValues(_1);_3=(_2==null?_3.sort():_3.sort(_2));var _4={};for(var i=0;i<_3.length;i++){var _6=_3[i];for(var _7 in _1){if(_1[_7]===_6){_4[_7]=_1[_7];continue}}}
 return _4});isc.addGlobal("addDefaults",function(_1,_2){if(_1==null)return;var _3;for(var _4 in _2){if(_1[_4]===_3)_1[_4]=_2[_4]}
-return _1});isc.addGlobal("propertyDefined",function(_1,_2){if(_1==null)return false;var _3;if(_1[_2]!==_3)return true;var _4=isc.getKeys(_1);return(_4.contains(_2))});isc.addGlobal("objectsAreEqual",function(_1,_2){if(_1===_2)return true;else if(isc.isAn.Object(_1)&&isc.isAn.Object(_2)){if(isc.isA.Date(_1)){return isc.isA.Date(_2)&&(Date.compareDates(_1,_2)==0)}else if(isc.isAn.Array(_1)){if(isc.isAn.Array(_2)&&_1.length==_2.length){for(var i=0;i<_1.length;i++){if(!isc.objectsAreEqual(_1[i],_2[i]))return false}
-return true}
-return false}else{if(isc.isAn.Array(_2))return false;var _4=0;for(var _5 in _1){if(!isc.objectsAreEqual(_1[_5],_2[_5]))return false;_4++}
-if(isc.getKeys(_2).length!=_4)return false;return true}}else{return false}});isc.addGlobal("combineObjects",function(_1,_2){if(_1==null||!isc.isAn.Object(_1))return _2;if(_2==null||!isc.isAn.Object(_2))return _1;for(var _3 in _2){var _4=_1[_3],_5=_2[_3];if(isc.isAn.Object(_4)&&!isc.isAn.Array(_4)&&!isc.isA.Date(_4)&&isc.isAn.Object(_5)&&!isc.isAn.Array(_5)&&!isc.isA.Date(_5))
+return _1});isc.addGlobal("propertyDefined",function(_1,_2){if(_1==null)return false;var _3;if(_1[_2]!==_3)return true;var _4=isc.getKeys(_1);return(_4.contains(_2))});isc.$829="__ref";isc.addGlobal("objectsAreEqual",function(_1,_2){if(_1===_2)return true;else if(isc.isAn.Object(_1)&&isc.isAn.Object(_2)){if(isc.isA.Date(_1)){return isc.isA.Date(_2)&&(Date.compareDates(_1,_2)==0)}else if(isc.isAn.Array(_1)){if(isc.isAn.Array(_2)&&_1.length==_2.length){for(var i=0;i<_1.length;i++){if(!isc.objectsAreEqual(_1[i],_2[i]))return false}
+return true}
+return false}else{if(isc.isAn.Array(_2))return false;var _4=0;for(var _5 in _1){if(_5==isc.$829)continue;if(!isc.objectsAreEqual(_1[_5],_2[_5]))return false;_4++}
+var _6=0;for(var _7 in _2){if(_5==isc.$829)continue;_6++;if(_6>_4)return false}
+if(_6!=_4)return false;return true}}else{return false}});isc.addGlobal("combineObjects",function(_1,_2){if(_1==null||!isc.isAn.Object(_1))return _2;if(_2==null||!isc.isAn.Object(_2))return _1;for(var _3 in _2){var _4=_1[_3],_5=_2[_3];if(isc.isAn.Object(_4)&&!isc.isAn.Array(_4)&&!isc.isA.Date(_4)&&isc.isAn.Object(_5)&&!isc.isAn.Array(_5)&&!isc.isA.Date(_5))
 {isc.combineObjects(_4,_5)}else{_1[_3]=_5}}});isc.applyMask=function(_1,_2){var _3={};if(_1==null)return _3;if(_2==null){return isc.addProperties(_3,_1)}
 var _4=false;if(!isc.isAn.Array(_1)){_4=true;_1=[_1]}
 if(!isc.isAn.Array(_2))_2=isc.getKeys(_2);var _3=[],_5,_6,_7,_8;for(var i=0;i<_1.length;i++){_5=_1[i];_6=_3[i]={};for(var j=0;j<_2.length;j++){_7=_2[j];if(_5[_7]===_8)continue;_6[_7]=_5[_7]}}
@@ -136,21 +137,22 @@
 ,isc.A.Interface=function isc_isA_Interface(_1){return(_1!=null&&_1.$a5==true)}
 ,isc.A.InstancePrototype=function isc_isA_InstancePrototype(_1){return(isc.isAn.Instance(_1)&&_1.$76y==_1)}
 );isc.B._maxIndex=isc.C+4;isc.A=isc.ClassFactory;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$f="isc.";isc.A.$bq="Window";isc.A.$br="Selection";isc.A.$bs={};isc.A.$bt="object";isc.A.$bu=["if(object==null||object.isA==null||object.isA==isc.isA)return false;return object.isA(isc.",null,")"];isc.A.$60l={toolbar:true,parent:true,window:true};isc.A._$isc_OID_="isc_OID_";isc.A._$isc_="isc_";isc.A.$bv="_";isc.A.$bw=[];isc.A.$75m={};isc.A.reuseGlobalIDs=true;isc.A.globalIDClassPoolSize=1000;isc.A.$63v={};isc.A.$bx=0;isc.A._$isc_="isc_";isc.A.$by=[null,"_",null];isc.A.reuseDOMIDs=false;isc.A.DOMIDPoolSize=10000;isc.A.$63w=[];isc.A.$bz=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];isc.A.$b0=[];isc.A.$b1="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p";isc.B.push(isc.A.defineClass=function isc_ClassFactory_defineClass(_1,_2,_3,_4){return this.$b2(_1,_2,_3,null,_4)}
+,isc.A.overwriteClass=function isc_ClassFactory_overwriteClass(_1,_2,_3,_4){return this.$b2(_1,_2,_3,null,_4,true)}
 ,isc.A.defineInterface=function isc_ClassFactory_defineInterface(_1,_2){return this.$b2(_1,_2,null,true)}
 ,isc.A.defineRootClass=function isc_ClassFactory_defineRootClass(_1){return this.$b3(_1,null)}
-,isc.A.$b2=function isc_ClassFactory__defineNonRootClass(_1,_2,_3,_4,_5){_2=(_2||isc.ClassFactory.defaultSuperClass);if(!_2){isc.Log.logWarn("isc.ClassFactory.defineClass("+_1+") called with null"+" superClass and no ClassFactory.defaultRootClass is defined.");return null}
-return this.$b3(_1,_2,_3,_4,_5)}
-,isc.A.$b3=function isc_ClassFactory__defineClass(_1,_2,_3,_4,_5){var _6=(isc.Browser.isMoz&&(_1==this.$bq||_1==this.$br));var _7,_8,_9=(isc.$a&&!_5);_7=isc[_1];if(_7!=null)_8=true
-else if(_9&&!_6){_7=window[_1]}
-if(_7!=null&&_1!="IButton")
-{var _10="New Class ID: '"+_1+"' collides with ID of existing "+(isc.isA&&isc.isA.Function(isc.isA.Class)&&isc.isA.Class(_7)?"Class object '":"object with value '")+_7+"'.  Existing object will be replaced.";if(!_8)_10+="\nThis conflict would be avoided by disabling "+"ISC Simple Names mode.  See documentation for "+"further information."
-if(window.isc.Log)isc.Log.logWarn(_10)}
-_2=this.getClass(_2);var _11=(_2?new _2.$b4.$b5():{});var _12=this.$b6(_2);_11.$b5=this.$b7(_11);_12.Class=_1;_12.$bp=true;if(isc.definingFramework==true)_12.isFrameworkClass=true;else _12.isFrameworkClass=false;if(!_12.isFrameworkClass){var _13=_2;while(_13&&!_13.isFrameworkClass){_13=_13.getSuperClass()}
-if(_13)_12.$75y=_13.Class}
-if(!_12.$75y)_12.$75y=_12.Class;_12.$a5=_11.$a5=!!_4;_12.$b8=_2;_12.$b4=_11;_11.Class=_1;_11.$b9=_12;_11.$76y=_11;_11.isFrameworkClass=_12.isFrameworkClass;_11.$75y=_12.$75y;isc[_1]=_12;if(_9)window[_1]=_12;this.classList[this.classList.length]=_1
+,isc.A.$b2=function isc_ClassFactory__defineNonRootClass(_1,_2,_3,_4,_5,_6){_2=(_2||isc.ClassFactory.defaultSuperClass);if(!_2){isc.Log.logWarn("isc.ClassFactory.defineClass("+_1+") called with null"+" superClass and no ClassFactory.defaultRootClass is defined.");return null}
+return this.$b3(_1,_2,_3,_4,_5,_6)}
+,isc.A.$b3=function isc_ClassFactory__defineClass(_1,_2,_3,_4,_5,_6){var _7=(isc.Browser.isMoz&&(_1==this.$bq||_1==this.$br))||(isc.Browser.isChrome&&_1=="DataView");var _8,_9,_10=(isc.$a&&!_5);_8=isc[_1];if(_8!=null)_9=true
+else if(_10&&!_7){_8=window[_1]}
+if(_8!=null&&_1!="IButton"&&_6!=true)
+{var _11="New Class ID: '"+_1+"' collides with ID of existing "+(isc.isA&&isc.isA.Function(isc.isA.Class)&&isc.isA.Class(_8)?"Class object '":"object with value '")+_8+"'.  Existing object will be replaced.";if(!_9)_11+="\nThis conflict would be avoided by disabling "+"ISC Simple Names mode.  See documentation for "+"further information."
+if(window.isc.Log)isc.Log.logWarn(_11)}
+_2=this.getClass(_2);var _12=(_2?new _2.$b4.$b5():{});var _13=this.$b6(_2);_12.$b5=this.$b7(_12);_13.Class=_1;_13.$bp=true;if(isc.definingFramework==true)_13.isFrameworkClass=true;else _13.isFrameworkClass=false;if(!_13.isFrameworkClass){var _14=_2;while(_14&&!_14.isFrameworkClass){_14=_14.getSuperClass()}
+if(_14)_13.$75y=_14.Class}
+if(!_13.$75y)_13.$75y=_13.Class;_13.$a5=_12.$a5=!!_4;_13.$b8=_2;_13.$b4=_12;_12.Class=_1;_12.$b9=_13;_12.$76y=_12;_12.isFrameworkClass=_13.isFrameworkClass;_12.$75y=_13.$75y;isc[_1]=_13;if(_10)window[_1]=_13;this.classList[this.classList.length]=_1
 if(!(isc.isA.$58k[_1]&&isc.isA[_1])){isc.isA[_1]=this.makeIsAFunc(_1)}
 if(_3!=null){if(!isc.isAn.Array(_3))_3=[_3];for(var i=0;i<_3.length;i++){this.mixInInterface(_1,_3[i])}}
-return _12}
+return _13}
 ,isc.A.makeIsAFunc=function isc_ClassFactory_makeIsAFunc(_1){if(this.isFirefox2==null){this.isFirefox2=(isc.Browser.isFirefox&&isc.Browser.geckoVersion>=20061010)}
 if(this.isFirefox2){return function(_3){if(_3==null||_3.isA==null||_3.isA==isc.isA)return false;return _3.isA(_1)}}else{var _2=this.$bu;_2[1]=_1;return new Function(this.$bt,_2.join(isc.$ad))}}
 ,isc.A.$b6=function isc_ClassFactory__makeSubClass(_1){if(!_1)return{};var _2=_1.$b8,_3=_1.$ca;if(!
@@ -196,7 +198,8 @@
 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.writePassthroughFunctions=function isc_ClassFactory_writePassthroughFunctions(_1,_2,_3){var _4=this.makePassthroughMethods(_3,_2);_1.addMethods(_4)}
-);isc.B._maxIndex=isc.C+22;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.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)}
 isc.defineInterface=function(_1,_2){return isc.ClassFactory.defineInterface(_1,_2)}
 isc.defer=function(_1){var _2=isc.ClassFactory.getClass(isc.ClassFactory.classList.last()),_3=_2.$cg;isc.Log.logWarn("deferred code being placed on class: "+_2);if(!_3)_2.$cg=[_1];else _3.add(_1)}
 if(!isc.Browser.isSafari){isc.$ch=window;isc.$ci=window.document}
@@ -403,7 +406,7 @@
 if(isc.isA.String(_3)){if(_3==isc.Canvas.NONE){if(this.isDrawn())_2.draw();return}
 var _5=this[_3]||window[_3]||_3;if(!isc.isA.Canvas(_5)){this.logWarn("no valid parent could be found for String '"+_3+"'")}else _3=_5}
 if(!isc.isA.Canvas(_2)||!isc.isA.Canvas(_3))return;this.$dy(_2,_3,_4)}
-,isc.A.$dy=function isc_Class__addAutoChildToParent(_1,_2,_3){if(_1.addAsPeer||_1.snapEdge)_2.addPeer(_1);else if(isc.isA.Layout(_2)&&!_1.addAsChild&&!_1.snapTo)_2.addMember(_1,_3);else if(isc.isA.TileLayout(_2)&&!_1.addAsChild&&!_1.snapTo)_2.addTile(_1,_3);else _2.addChild(_1)}
+,isc.A.$dy=function isc_Class__addAutoChildToParent(_1,_2,_3){if(_1.addAsPeer||_1.snapEdge)_2.addPeer(_1);else if(isc.isA.Layout(_2)&&!_1.addAsChild&&!_1.snapTo)_2.addMember(_1,_3);else if(isc.TileLayout&&isc.isA.TileLayout(_2)&&!_1.addAsChild&&!_1.snapTo)_2.addTile(_1,_3);else _2.addChild(_1)}
 ,isc.A.shouldCreateChild=function isc_Class_shouldCreateChild(_1){var _2=this.$do+_1.charAt(0).toUpperCase()+_1.substring(1);if(this[_2]!=null&&this[_2]==false)return false;var _3=this.$d0(_1);if(_3==null)return true;return(this.shouldCreateChild(_3))}
 ,isc.A.getAutoChildClass=function isc_Class_getAutoChildClass(_1,_2,_3,_4,_5){_4=_4||this.$d1(_1);var _6=this[_4];_5=_5||this.$543(_1);var _7=this[_5];return this[_1+this.$dp]||(_2?_2._constructor:null)||(_7?_7._constructor:null)||(_6?_6._constructor:null)||_3||isc.Canvas}
 ,isc.A.applyBaseDefaults=function isc_Class_applyBaseDefaults(_1,_2,_3){_1.autoDraw=false;_1._generated=true;_1.creator=this;var _4=this.creatorName;if(_4)_1[_4]=this;var _5;if(_3==null||_3.ID===_5){_1.ID=this.getID()+isc.$ag+_2;if(window[_1.ID]){_1.ID=_1.ID+isc.$ag+isc.ClassFactory.getNextGlobalID()}}}
@@ -535,7 +538,7 @@
 _2[_2.length]=(this[i]?this[i][_1]:null);return _2}
 ,isc.A.getValueMap=function isc_Arra_getValueMap(_1,_2){var _3={};for(var i=0,l=this.getLength();i<l;i++){var _6=this.get(i);if(!isc.isAn.Object(_6))continue;if(_6&&_6[_1]!=null){_3[_6[_1]]=_6[_2]}}
 return _3}
-,isc.A.map=function isc_Arra_map(_1,_2,_3,_4,_5,_6){var _7=isc.isA.Function(_1),_8=[],_9=this.getLength();for(var i=0;i<_9;i++){var _11=this.get(i);if(_7){_8[i]=_1(_11,_2,_3,_4,_5,_6)}else{_8[i]=(_11&&_11[_1]!=null?_11[_1](_2,_3,_4,_5,_6):null)}}
+,isc.A.map=function isc_Arra_map(_1,_2,_3,_4,_5,_6){var _7=isc.isA.Function(_1),_8=[],_9=this.getLength();var _10,_11=_7&&(_2===_10||isc.isAn.Object(_2))&&_3===_10&&_4===_10&&_5===_10&&_6===_10;for(var i=0;i<_9;i++){var _13=this.get(i);if(_11){if(_2==null)_8[i]=_1(_13,i,this);else{_2.$838=_1;_8[i]=_2.$838(_13,i,this);delete _2.$838}}else if(_7){_8[i]=_1(_13,_2,_3,_4,_5,_6)}else{_8[i]=(_13&&_13[_1]!=null?_13[_1](_2,_3,_4,_5,_6):null)}}
 return _8}
 ,isc.A.setProperty=function isc_Arra_setProperty(_1,_2){for(var i=0,l=this.length;i<l;i++)
 if(this[i])this[i][_1]=_2}
@@ -617,14 +620,14 @@
 ,isc.A.toCurrencyString=function isc_c_Format_toCurrencyString(_1,_2,_3,_4,_5){if(!isc.isA.Number(_1))return _1;return _1.toCurrencyString(_2,_3,_4,_5)}
 );isc.B._maxIndex=isc.C+3;isc.Math={random:function(_1,_2){if(_2==null){return Math.round(Math.random()*_1)}else{return Math.round(Math.random()*(_2-_1))+_1}}}
 isc.addGlobal("timeStamp",function(){return new Date().getTime()});isc.addGlobal("timestamp",isc.timeStamp);Date.prototype.Class="Date";Date.Class="Date";isc.Date=Date;isc.A=Date;isc.A.INVALID_DATE_STRING="Invalid date format";isc.A=Date;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$64g={toUSShortDate:"MDY",toUSShortDateTime:"MDY",toEuropeanShortDate:"DMY",toEuropeanShortDateTime:"DMY",toJapanShortDate:"YMD",toJapanShortDateTime:"YMD"};isc.B.push(isc.A.newInstance=function isc_Date_newInstance(_1,_2,_3,_4,_5,_6,_7){return new Date(_1,_2,_3,_4,_5,_6,_7)}
-,isc.A.create=function isc_Date_create(_1,_2,_3,_4,_5,_6,_7){return new Date(_1,_2,_3,_4,_5,_6,_7)}
+,isc.A.create=function isc_Date_create(_1,_2,_3,_4,_5,_6,_7){var _8;if(_1===_8)return new Date();if(_2===_8)return new Date(_1);if(_3===_8)_3=0;if(_4===_8)_4=0;if(_5===_8)_5=0;if(_6===_8)_6=0;if(_7===_8)_7=0;return new Date(_1,_2,_3,_4,_5,_6,_7)}
 ,isc.A.compareDates=function isc_Date_compareDates(_1,_2){var _3=(_1!=null?_1.getTime():0),_4=(_2!=null?_2.getTime():0);return _3>_4?-1:(_4>_3?1:0)}
 ,isc.A.compareLogicalDates=function isc_Date_compareLogicalDates(_1,_2){if(_1==_2)return 0;if(!isc.isA.Date(_1)||!isc.isA.Date(_2))return false;var _3=_1.getFullYear(),_4=_1.getMonth(),_5=_1.getDate(),_6=_2.getFullYear(),_7=_2.getMonth(),_8=_2.getDate();var _9=_3*10000+_4*100+_5,_10=_6*10000+_7*100+_8;return _9>_10?-1:(_10>_9?1:0)}
 ,isc.A.setInputFormat=function isc_Date_setInputFormat(_1){this.$ei=_1}
-,isc.A.getInputFormat=function isc_Date_getInputFormat(){return this.$ei}
+,isc.A.getInputFormat=function isc_Date_getInputFormat(){if(this.$ei!=null)return this.$ei;return this.mapDisplayFormatToInputFormat("toShortDate")}
 ,isc.A.mapDisplayFormatToInputFormat=function isc_Date_mapDisplayFormatToInputFormat(_1){if(_1=="toShortDate"){_1=Date.prototype.$el}else if(_1=="toNormalDate"){_1=Date.prototype.formatter}
-if(isc.isA.Function(_1)){isc.Log.logInfo("Unable to determine input format associated with display format "+"function - returning default input format","Date");return this.getInputFormat()}
-var _2=this.$64g[_1];if(_2!=null&&isc.isA.String(_2))return _2;if(_1=="toSerializeableDate")return this.parseSchemaDate;isc.Log.logInfo("Unable to determine input format associated with display format "+_1+" - returning default input format","Date");return this.getInputFormat()}
+if(isc.isA.Function(_1)){isc.Log.logInfo("Unable to determine input format associated with display format "+"function - returning default input format","Date");return this.$ei||"MDY"}
+var _2=this.$64g[_1];if(_2!=null&&isc.isA.String(_2))return _2;if(_1=="toSerializeableDate")return this.parseSchemaDate;isc.Log.logInfo("Unable to determine input format associated with display format "+_1+" - returning default input format","Date");return this.$ei||"MDY"}
 ,isc.A.parseInput=function isc_Date_parseInput(_1,_2,_3,_4,_5){if(isc.isA.Date(_1))return _1;if(!isc.isA.String(_1)||isc.isAn.emptyString(_1)){return null}
 if(_2==null)_2=this.getInputFormat();if(isc.isA.Function(Date[_2]))_2=Date[_2];if(isc.isA.Function(_2)){return _2(_1,_3,_4,_5)}
 var _6=this.$ej(_1,_2);if(_6!=null){var _7=_6[0];if(_7&&_7.length<=2){_7=parseInt(_7,10);if(_7<_3)_7+=2000;else _7+=1900
@@ -713,7 +716,7 @@
 );isc.B._maxIndex=isc.C+38;Date.prototype.toBrowserString=Date.prototype.toString;Date.prototype.toBrowserLocaleString=Date.prototype.toLocaleString;if(!Date.prototype.formatter)Date.prototype.formatter="toLocaleString"
 if(!Date.prototype.$el)Date.setShortDisplayFormat("toUSShortDate");if(!Date.prototype.$68e)Date.setShortDatetimeDisplayFormat("toUSShortDateTime");Date.prototype.iscToLocaleString=function(){var _1=this.localeStringFormatter;if(isc.isA.Function(_1))return _1.apply(this);else if(this[_1])return this[_1]()}
 if(!Date.prototype.localeStringFormatter)
-Date.prototype.localeStringFormatter="toLocaleString";Date.setInputFormat("MDY");isc.A=Date;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.$ek=function isc_Date__splitDateViaSubstring(_1,_2,_3,_4){var _5=_4*3,_6=_1.substring(_5,_5+4);var _7=(parseInt(_6)!=_6);if(_7)_6=_6.substring(0,2);var _8=0,_9=0;if(_2>_3)_8+=3;else _9+=3;if(_2>_4)_8+=(_7?3:5);if(_3>_4)_9+=(_7?3:5);var _10=_1.substring(_8,_8+2)-1;var _11=_1.substring(_9,_9+2);var _12=_7?9:11,_13=(_1.substring(_12,_12+2)||0),_14=(_1.substring(_12+3,_12+5)||0),_15=(_1.substring(_12+6,_12+8)||0);return[_6,_10,_11,_13,_14,_15]}
+Date.prototype.localeStringFormatter="toLocaleString";isc.A=Date;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.$ek=function isc_Date__splitDateViaSubstring(_1,_2,_3,_4){var _5=_4*3,_6=_1.substring(_5,_5+4);var _7=(parseInt(_6)!=_6);if(_7)_6=_6.substring(0,2);var _8=0,_9=0;if(_2>_3)_8+=3;else _9+=3;if(_2>_4)_8+=(_7?3:5);if(_3>_4)_9+=(_7?3:5);var _10=_1.substring(_8,_8+2)-1;var _11=_1.substring(_9,_9+2);var _12=_7?9:11,_13=(_1.substring(_12,_12+2)||0),_14=(_1.substring(_12+3,_12+5)||0),_15=(_1.substring(_12+6,_12+8)||0);return[_6,_10,_11,_13,_14,_15]}
 );isc.B._maxIndex=isc.C+1;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.B.push(isc.A.toPrettyString=function isc_Dat_toPrettyString(){return this.toUSShortDateTime()}
 );isc.B._maxIndex=isc.C+1;isc.A=Date;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.parseStandardDate=function isc_Date_parseStandardDate(_1){if(!isc.isA.String(_1))return null;var _2=_1.substring(0,4),_3=_1.substring(5,7)-1,_4=_1.substring(8,10),_5=_1.substring(11,13),_6=_1.substring(14,16),_7=_1.substring(17,19);if(_1.length<19){if(!isc.isA.Number(_2-_3-_4))return null}else{if(!isc.isA.Number(_2-_3-_4-_5-_6-_7))return null}
 return new Date(_2,_3,_4,_5,_6,_7)}
@@ -732,9 +735,9 @@
 if(isc.Browser.isMoz){var _5="x",_6=_5.toLocaleString();if(_6!=_5){_4.toBrowserLocaleString=_4.toLocaleString;_4.toLocaleString=_4.toString}
 _5=true;_6=_5.toLocaleString();if(_6!=_5+""){Boolean.prototype.toBrowserLocaleString=Boolean.prototype.toLocaleString;Boolean.prototype.toLocaleString=Boolean.prototype.toString}}}
 isc.$ey();isc.A=String;isc.A.$ez=new RegExp("'","g");isc.A.$e0=new RegExp("\"","g");isc.A=String.prototype;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.replaceAll=function isc_Strin_replaceAll(_1,_2){return isc.replaceAll(this,_1,_2)}
-,isc.A.contains=function isc_Strin_contains(_1){if(!isc.isA.String(_1))_1=_1.toString();return isc.contains(this,_1)}
-,isc.A.startsWith=function isc_Strin_startsWith(_1){if(!isc.isA.String(_1))_1=_1.toString();return isc.startsWith(this,_1)}
-,isc.A.endsWith=function isc_Strin_endsWith(_1){if(!isc.isA.String(_1))_1=_1.toString();return isc.endsWith(this,_1)}
+,isc.A.contains=function isc_Strin_contains(_1){if(_1&&!isc.isA.String(_1))_1=_1.toString();return isc.contains(this,_1)}
+,isc.A.startsWith=function isc_Strin_startsWith(_1){if(_1&&!isc.isA.String(_1))_1=_1.toString();return isc.startsWith(this,_1)}
+,isc.A.endsWith=function isc_Strin_endsWith(_1){if(_1&&!isc.isA.String(_1))_1=_1.toString();return isc.endsWith(this,_1)}
 ,isc.A.trim=function isc_Strin_trim(_1){var _2=_1||" \t\n\r",l=this.length,_4=0,_5=l-1,i=0;while(_4<l&&_2.contains(this.charAt(i++)))_4++;i=l-1;while(_5>=0&&_5>=_4&&_2.contains(this.charAt(i--)))_5--;return this.substring(_4,_5+1)}
 ,isc.A.convertTags=function isc_Strin_convertTags(_1,_2){return(_1?_1:"")+this.replace(/</g,"&lt;").replace(/>/g,"&gt;")+(_2?_2:"")}
 ,isc.A.asHTML=function isc_Strin_asHTML(_1){var s=this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/(\r\n|\r|\n) /g,"<BR>&nbsp;").replace(/(\r\n|\r|\n)/g,"<BR>").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");return(_1?s.replace(/ /g,"&nbsp;"):s.replace(/  /g," &nbsp;"))}
@@ -798,7 +801,36 @@
 ,isc.A.set=function isc_c_Cookie_set(_1,_2,_3,_4,_5){isc.Cookie.init();document.cookie=_1+"="+escape(_2)+(_3?";path="+_3:"")+(_4?";domain="+_4:"")+(_5?";expires="+(isc.isA.String(_5)?_5:_5.toGMTString()):"")}
 ,isc.A.clear=function isc_c_Cookie_clear(_1,_2,_3){isc.Cookie.init();this.set(_1,"",_2,_3,"Thu, 01-Jan-70 00:00:01 GMT")}
 ,isc.A.getList=function isc_c_Cookie_getList(){isc.Cookie.init();return isc.getKeys(isc.Cookie.list)}
-);isc.B._maxIndex=isc.C+5;isc.$e5={getCallTrace:function(_1,_2,_3){if(_1==null)_1=arguments.caller;if(_1==null)return"[getCallTrace(): Error: couldn't get arguments object]";var _4,_5=_1.callee;if(_5==null){_4="[args.callee == null]"}else if(!isc.Func){_4="[Func utility class not loaded]"}else{_4=isc.Func.getName(_5,true)}
+);isc.B._maxIndex=isc.C+5;isc.defineClass("StackTrace");isc.A=isc.StackTrace;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.fromNativeStack=function isc_c_StackTrace_fromNativeStack(_1){if(isc.Browser.isMoz){return isc.MozStackTrace.create({stack:_1})}else if(isc.Browser.isChrome){return isc.ChromeStackTrace.create({stack:_1})}else{return isc.UnsupportedStackTrace.create({stack:_1})}}
+);isc.B._maxIndex=isc.C+1;isc.A=isc.StackTrace.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.stack=null;isc.A.$83t="";isc.B.push(isc.A.init=function isc_StackTrace_init(){if(this.stack){this.$83u()}}
+,isc.A.extractFunctionFromLine=function isc_StackTrace_extractFunctionFromLine(_1){this.logError("Should implement extractFunctionFromLine in subclass")}
+,isc.A.extractArgumentsFromLine=function isc_StackTrace_extractArgumentsFromLine(_1){this.logError("Should implement extractArgumentsFromLine in subclass")}
+,isc.A.extractSourceFromLine=function isc_StackTrace_extractSourceFromLine(_1){this.logError("Should implement extractSourceFromLine in subclass")}
+,isc.A.$83u=function isc_StackTrace__parseStack(){try{var _1=this.stack.split("\n"),_2=isc.StringBuffer.create(),_3=isc.Page.getAppDir(),_4=window.location.protocol+"//"+window.location.host;for(var i=0;i<_1.length;i++){var _6=_1[i],_7=null,_8=null,_9=null;var _10=this.extractFunctionFromLine(_6);if(_10==""){_10="unnamed"}else if(_10.startsWith("isc_")){var _11;if(_10.startsWith("isc_c_")){_10=_10.substring(6);_11=true}else{_10=_10.substring(4)}
+_8=_10.substring(0,_10.indexOf("_"));_9=_10.substring(_8.length+1);var _12=isc.ClassFactory.getClass(_8),_13;if(_12){_13=_11?_12[_9]:_12.getInstanceProperty(_9)}
+if(_13!=null){_10=isc.Func.getName(_13,true);var _14;if(!_11){_14=_12.getArgString(_9)}else{_14=isc.Func.getArgString(_13)}
+_7=_14.split(",")}else{_10=_10.replace(/_{1}/,".");_10=_10.replace(/_{2}/,"._")}}
+_2.append("    ",_10,"(");var _14=this.extractArgumentsFromLine(_6);var _15=0;while(_14&&_14.length>0){if(_15>0)_2.append(", ");if(_7)_2.append(_7[_15]+"=>");var _16=_14.length;_14=this.$83v(_14,_2);if(_14.length==_16){isc.logWarn("failure to parse next arg at:\n"+_14);break}
+_15++}
+_2.append(")");var _17=_6.lastIndexOf("@");_2.append(this.$83w(this.extractSourceFromLine(_6),_3,_4));_2.append("\n")}
+this.$83t=_2.toString()}
+catch(e){this.$83t=this.stack}}
+,isc.A.$83v=function isc_StackTrace__parseArgument(_1,_2){var _3=_1.charAt(0);if(_3=="\""){var _4=_1.search(/[^\\]"/);if(_4==-1)_4=_1.length;var _5=_1.substring(0,_4+2);if(_5.length>40){_5=_5.substring(0,40)+"...\"[ "+_5.length+"]"}
+_2.append(_5);return _1.substring(_4+3)}else if(_3=="["){var _6=_1.substring(1).indexOf("]"),_7=_1.substring(0,_6+2);if(_7=="[object Object]")_7="{Obj}";_2.append(_7);return _1.substring(_6+3)}else if(_1.startsWith("(void 0)")){_2.append("undef");return _1.substring(9)}else if(_1.startsWith("undefined")){_2.append("undef");return _1.substring(10)}else if(_1.startsWith("(function ")){var _8=_1.substring(1,_1.indexOf("{"));if(_8.endsWith(" "))_8=_8.substring(0,_8.length-1);_2.append(_8);var _9=_1.indexOf("}),");if(_9==-1)return"";return _1.substring(_9+3)}else{var _10=_1.indexOf(",");if(_10==-1)_10=_1.length;_2.append(_1.substring(0,_10));return _1.substring(_10+1)}}
+,isc.A.$83w=function isc_StackTrace__getSourceLine(_1,_2,_3){var _4=_1.indexOf("/system/modules/ISC_"),_5=_1.indexOf("/system/development/ISC_");if(_4!=-1){_1=_1.substring(_4+16)}else if(_5!=-1){_1=_1.substring(_5+20)+"[d]"}
+if(_4!=-1||_5!=-1){if(!this.logIsDebugEnabled("traceLineNumbersCore"))return"";var _6=_1.indexOf("?isc_version");if(_6!=-1){_1=_1.substring(0,_6)+_1.substring(_1.indexOf(":"))}}
+if(_1.startsWith(_2)){_1=_1.substring(_2.length)}else if(_1.startsWith(_3)){_1=_1.substring(_3.length)}
+return" @ "+_1}
+,isc.A.toString=function isc_StackTrace_toString(){return this.$83t}
+);isc.B._maxIndex=isc.C+8;isc.defineClass("MozStackTrace",isc.StackTrace);isc.A=isc.MozStackTrace.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.extractFunctionFromLine=function isc_MozStackTrace_extractFunctionFromLine(_1){var _2=_1.indexOf("(");return _1.substring(0,_2)}
+,isc.A.extractArgumentsFromLine=function isc_MozStackTrace_extractArgumentsFromLine(_1){var _2=_1.indexOf("(");var _3=_1.lastIndexOf("@");return _1.substring(_2+1,_3-1)}
+,isc.A.extractSourceFromLine=function isc_MozStackTrace_extractSourceFromLine(_1){var _2=_1.lastIndexOf("@");if(_2>=0){return _1.substring(_2+1)}else{return""}}
+);isc.B._maxIndex=isc.C+3;isc.defineClass("ChromeStackTrace",isc.StackTrace);isc.A=isc.ChromeStackTrace.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$83x=/Object\.([^ ]+)/;isc.A.$83y=/\((.+)\)/;isc.B.push(isc.A.extractFunctionFromLine=function isc_ChromeStackTrace_extractFunctionFromLine(_1){var _2=_1.match(this.$83x);return _2?_2[1]:""}
+,isc.A.extractArgumentsFromLine=function isc_ChromeStackTrace_extractArgumentsFromLine(_1){return""}
+,isc.A.extractSourceFromLine=function isc_ChromeStackTrace_extractSourceFromLine(_1){var _2=_1.match(this.$83y);return _2?_2[1]:""}
+);isc.B._maxIndex=isc.C+3;isc.defineClass("UnsupportedStackTrace",isc.StackTrace);isc.A=isc.UnsupportedStackTrace.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.$83u=function isc_UnsupportedStackTrace__parseStack(){}
+,isc.A.toString=function isc_UnsupportedStackTrace_toString(){return this.stack}
+);isc.B._maxIndex=isc.C+2;isc.$e5={getCallTrace:function(_1,_2,_3){if(_1==null)_1=arguments.caller;if(_1==null)return"[getCallTrace(): Error: couldn't get arguments object]";var _4,_5=_1.callee;if(_5==null){_4="[args.callee == null]"}else if(!isc.Func){_4="[Func utility class not loaded]"}else{_4=isc.Func.getName(_5,true)}
 _4+="(";var _6=(_5!=null?isc.Func.getArgs(_5):[]);var _7=Math.max(_1.length,_6.length);for(var i=0;i<_7;i++){var _9=_6[i],_10=_1[i];if(i>0)_4+=", ";if(_9!=null){_4+=_9+"=>"}
 _4+=this.echoLeaf(_10)}
 _4+=")";_2=_2||_1.$cw;if(_2)_4+=" on "+this.echoLeaf(_2);if(!_3&&!_5.$c7)return _4;var _11=this.$e6(_5);if(!_5.$c7){var _12=_11.split(/[\r\n]+/);if(_12.length>1||_12[0].length>200)return _4}
@@ -812,20 +844,8 @@
 _4.add("    "+this.getCallTrace(_1,null,(_9||_1.callee.caller==null)));if(_10==0){var _11=this.$e7(_1.$e8);if(_11)_4.add(_11)}
 _7=_1.callee;if(!_5){_7=_7.caller;if(_7)_1=_7.arguments}else _1=_1.caller;_9=false;_10++}
 if(_4.length==0)return"";return"\r\n"+_4.join("\r")+"\r"},hasFireBug:function(){return isc.Browser.isMoz&&window.console!=null&&window.console.trace!=null},fireBugVersion:function(){return this.hasFireBug()?window.console.firebug:null},fireBugTrace:function(_1){window.console.trace(_1);return" [Complete stack trace logged via Firebug: "+_1+"]"},$e7:function(_1){var _2=isc.SB.create();for(var _3 in _1){var _4=_1[_3],_5;if(_4===_5)continue;if(isc.startsWith(_3,isc.$ag))continue;_2.append("\n        "+_3+" = "+this.echoLeaf(_4))}
-return _2.toString()},$am:function(_1,_2,_3,_4){if(_1.$fa)return;_1.$fa=true;var _5=_1.toString();if(isc.Browser.isMoz){if(_1.stack){var _6;try{_6=this.transformMozStackTrace(_1.stack)}catch(e){_6=_1.stack}
-_5+="\n"+_6}else{_5+="  [No error.stack available]"}}
-this.logWarn(_5)},transformMozStackTrace:function(_1){var _2=_1.split("\n"),_3=isc.StringBuffer.create(),_4=isc.Page.getAppDir(),_5=window.location.protocol+"//"+window.location.host;for(var i=0;i<_2.length;i++){var _7=_2[i],_8=_7.indexOf("("),_9=_7.lastIndexOf("@"),_10=null,_11=null,_12=null;var _13=_7.substring(0,_8);if(_13==""){_13="unnamed"}else if(_13.startsWith("isc_")){var _14;if(_13.startsWith("isc_c_")){_13=_13.substring(6);_14=true}else{_13=_13.substring(4)}
-_11=_13.substring(0,_13.indexOf("_"));_12=_13.substring(_11.length+1);var _15=isc.ClassFactory.getClass(_11),_16;if(_15){_16=_14?_15[_12]:_15.getInstanceProperty(_12)}
-if(_16!=null){_13=isc.Func.getName(_16,true);var _17;if(!_14){_17=_15.getArgString(_12)}else{_17=isc.Func.getArgString(_16)}
-_10=_17.split(",")}else{_13=_13.replace(/_{1}/,".");_13=_13.replace(/_{2}/,"._")}}
-_3.append("    ",_13,"(");var _17=_7.substring(_8+1,_9-1),_18=0;while(_17&&_17.length>0){if(_18>0)_3.append(", ");if(_10)_3.append(_10[_18]+"=>");var _19=_17.length;_17=this.parseMozArgument(_17,_3);if(_17.length==_19){isc.logWarn("failure to parse next arg at:\n"+_17);break}
-_18++}
-_3.append(")");_3.append(this.getSourceLine(_7.substring(_9),_4,_5));_3.append("\n")}
-return _3.toString()},parseMozArgument:function(_1,_2){var _3=_1.charAt(0);if(_3=="\""){var _4=_1.search(/[^\\]"/);if(_4==-1)_4=_1.length;var _5=_1.substring(0,_4+2);if(_5.length>40){_5=_5.substring(0,40)+"...\"[ "+_5.length+"]"}
-_2.append(_5);return _1.substring(_4+3)}else if(_3=="["){var _6=_1.substring(1).indexOf("]"),_7=_1.substring(0,_6+2);if(_7=="[object Object]")_7="{Obj}";_2.append(_7);return _1.substring(_6+3)}else if(_1.startsWith("(void 0)")){_2.append("undef");return _1.substring(9)}else if(_1.startsWith("undefined")){_2.append("undef");return _1.substring(10)}else if(_1.startsWith("(function ")){var _8=_1.substring(1,_1.indexOf("{"));if(_8.endsWith(" "))_8=_8.substring(0,_8.length-1);_2.append(_8);var _9=_1.indexOf("}),");if(_9==-1)return"";return _1.substring(_9+3)}else{var _10=_1.indexOf(",");if(_10==-1)_10=_1.length;_2.append(_1.substring(0,_10));return _1.substring(_10+1)}},getSourceLine:function(_1,_2,_3){var _4=_1.indexOf("/system/modules/ISC_"),_5=_1.indexOf("/system/development/ISC_");if(!this.logIsDebugEnabled("traceLineNumbersCore"))return"";if(_4!=-1){_1=_1.substring(_4+16)}else if(_5!=-1){_1=_1.substring(_5+20)+"[d]"}
-if(_4!=-1||_5!=-1){var _6=_1.indexOf("?isc_version");if(_6!=-1){_1=_1.substring(0,_6)+_1.substring(_1.indexOf(":"))}}
-if(_1.startsWith(_2)){_1=_1.substring(_2.length)}else if(_1.startsWith(_3)){_1=_1.substring(_3.length)}
-return" @ "+_1},echoLeaf:function(_1,_2){var _3="",_4;if(_1===_4)return"undef";try{if(isc.isA.Class(_1)){_3+=_1.toString()}else if(isc.isAn.Array(_1)){_3+="Array["+_1.length+"]"}else if(isc.isA.Date(_1)){_3+="Date("+_1.toShortDate()+")"}else if(isc.isA.Function(_1)){_3+=isc.Func.getName(_1,true)+"()"}else{switch(typeof _1){case"string":if(_1.length<=40||_2){_3+='"'+_1+'"';break}
+return _2.toString()},$am:function(_1,_2,_3,_4){if(_1.$fa)return;_1.$fa=true;var _5=_1.toString();if(_1.stack){_5+="\n";_5+=isc.StackTrace.fromNativeStack(_1.stack).toString()}else{_5+="  [No error.stack available]"}
+this.logWarn(_5)},transformMozStackTrace:function(_1){return isc.StackTrace.fromNativeStack(_1).toString()},echoLeaf:function(_1,_2){var _3="",_4;if(_1===_4)return"undef";try{if(isc.isA.Class(_1)){_3+=_1.toString()}else if(isc.isAn.Array(_1)){_3+="Array["+_1.length+"]"}else if(isc.isA.Date(_1)){_3+="Date("+_1.toShortDate()+")"}else if(isc.isA.Function(_1)){_3+=isc.Func.getName(_1,true)+"()"}else{switch(typeof _1){case"string":if(_1.length<=40||_2){_3+='"'+_1+'"';break}
 _3+='"'+_1.substring(0,40)+'..."['+_1.length+']';_3=_3.replaceAll("\n","\\n").replaceAll("\r","\\r");break;case"object":if(_1==null){_3+="null";break}
 if(_1.tagName!=null){_3+="["+_1.tagName+"Element]"+this.getIDText(_1);break}
 var _5=""+_1;if(_5!=""&&_5!="[object Object]"&&_5!="[object]")
@@ -886,7 +906,7 @@
 ,isc.A.updateInlineLogResults=function isc_c_Log_updateInlineLogResults(){if(isc.Canvas==null||this.$fp==null)return;if(!this.inlineLogCanvas){this.inlineLogCanvas=isc.Canvas.create({width:"50%",height:"100%",overflow:"auto",backgroundColor:"white",canDragReposition:true,autoDraw:true})}
 this.inlineLogCanvas.setContents(this.$fp.join("<br>"));this.inlineLogCanvas.bringToFront()}
 ,isc.A.getMessages=function isc_c_Log_getMessages(){var _1=this.$fp,_2=this.$fo,_3=this.$fn;return _1.slice(_3-_2,_3).concat(_1.slice(0,_2))}
-,isc.A.show=function isc_c_Log_show(_1,_2,_3){if(!this.logViewer)this.logViewer=isc.LogViewer.create();this.logViewer.showLog(_1,_2,_3)}
+,isc.A.show=function isc_c_Log_show(_1,_2,_3,_4){if(!this.logViewer)this.logViewer=isc.LogViewer.create();this.logViewer.showLog(_1,_2,_3,_4)}
 ,isc.A.clear=function isc_c_Log_clear(){this.$fp=[];this.$fo=0;if(this.logViewer)this.logViewer.clear()}
 ,isc.A.evaluate=function isc_c_Log_evaluate(_1,_2){var _3=isc.timeStamp();var _4,_5;if(isc.Log.supportsOnError){_5=isc.Class.evalWithVars(_1,_2,this)}else{try{_5=isc.Class.evalWithVars(_1,_2,this)}catch(e){_4=e}}
 var _6=isc.timeStamp(),_7=isc.Log.getLogTimestamp()+":";var _8=_1.split(/[\r\n]+/);if(_8.length>1)_1=_8[0]+"...";if(_1.length>200)_1=_1.substring(0,200)+"...";if(_4){if(!isc.Log.supportsOnError){isc.Log.$am(_4);return}
@@ -1060,10 +1080,9 @@
 if(_4==null||_4==0){_4=_1.innerHeight}
 if(_1==window)this.height=_4;return _4}}:function(_1){if(!_1)_1=window;var _2=_1.document.body;if(isc.Browser.isStrict&&!isc.Browser.isOpera)
 _2=_1.document.documentElement;if(_2){return _2.clientHeight}else{this.logWarn("NOTE: isc.Page.getHeight() called before <BODY> tag was written out -- value cannot be determined.  Returning 500");return 500}});isc.A.getScrollHeight=(isc.Browser.isNS?function(_1){var _1=_1||document;var _2=_1.body.scrollHeight;if(isc.isA.Number(_2))return _2}:function(_1){var _1=_1||document;if(_1==null||_1.body==null)return 800;if(isc.Browser.version>=6){return Math.max(_1.body.scrollHeight,_1.documentElement.clientHeight)}
-return _1.body.scrollHeight});isc.A.getScrollLeft=(isc.Browser.isNS?function(){return window.pageXOffset}:function(){if(document==null||document.body==null)return 0;return(isc.Browser.isStrict?document.documentElement.scrollLeft:document.body.scrollLeft)});isc.A.getScrollTop=(isc.Browser.isNS?function(){return window.pageYOffset}:function(){if(document==null||document.body==null)return 0;return(isc.Browser.isStrict?document.documentElement.scrollTop:document.body.scrollTop)});isc.A.unsupportedBrowserAction="continue";isc.B.push(isc.A.finishedLoading=function isc_c_Page_finishedLoading(){if(this.width==null||this.height==null)isc.EH.$hr()
-isc.Page.$hj=true;isc.Log.logInfo("isc.Page is loaded");isc.EH.startIdleTimer();if(isc.Browser.isSafari)isc.Canvas.clearCSSCaches();if(!window.suppressAutoLogWindow){var _1=isc.LogViewer.getLogCookie();if(_1!=null&&_1.keepOpen){isc.Timer.setTimeout("isc.Log.show(true)",1000)}}
+return _1.body.scrollHeight});isc.A.getScrollLeft=(isc.Browser.isNS?function(){return window.pageXOffset}:function(){if(document==null||document.body==null)return 0;return(isc.Browser.isStrict?document.documentElement.scrollLeft:document.body.scrollLeft)});isc.A.getScrollTop=(isc.Browser.isNS?function(){return window.pageYOffset}:function(){if(document==null||document.body==null)return 0;return(isc.Browser.isStrict?document.documentElement.scrollTop:document.body.scrollTop)});isc.A.unsupportedBrowserAction="continue";isc.B.push(isc.A.finishedLoading=function isc_c_Page_finishedLoading(){isc.Page.$hj=true;isc.Log.logInfo("isc.Page is loaded");isc.EH.startIdleTimer();if(isc.Browser.isSafari)isc.Canvas.clearCSSCaches();if(!window.suppressAutoLogWindow){var _1=isc.LogViewer.getLogCookie();if(_1!=null&&_1.keepOpen){isc.Timer.setTimeout("isc.Log.show(true)",1000)}}
 if(isc.Time&&isc.Time.UTCHoursOffset!=null){isc.logWarn("This application includes code to set the Time.UTCHoursOffset attribute. "+"This property will be respected but has been deprecated in favor of the "+"classMethod isc.Time.setDefaultDisplayTimezone().");isc.Time.setDefaultDisplayTimezone(isc.Time.UTCHoursOffset.stringify()+":00")}
-if(isc.Page.pollPageSize){isc.EH.$hr()}else{isc.EH.delayCall("$hr",null,200)}}
+if(isc.Page.pollPageSize){isc.EH.$hr()}else{isc.EH.delayCall("$hr",[true],200)}}
 ,isc.A.isLoaded=function isc_c_Page_isLoaded(){return this.$hj}
 ,isc.A.getBlankFrameURL=function isc_c_Page_getBlankFrameURL(){if(isc.Browser.isIE&&("https:"==window.location.protocol||document.domain!=location.hostname)){return this.getURL("[HELPERS]empty.html")}
 return"about:blank"}
@@ -1212,7 +1231,7 @@
 _7=((_9.action(_2,_9.target)!=false)&&_7)}
 return _7}
 );isc.B._maxIndex=isc.C+8;isc.ClassFactory.defineClass("EventHandler");isc.EH=isc.Event=isc.EventHandler;isc.A=isc.EventHandler;isc.A.lastEvent={};isc.A.$i0=[];isc.A.$i1=[];isc.A.passThroughEvents=true;isc.A.maskNativeTargets=true;isc.A.STILL_DOWN_DELAY=100;isc.A.DOUBLE_CLICK_DELAY=500;isc.A.IDLE_DELAY=10;isc.A.STOP_BUBBLING="***STOP***";isc.A.ALL_EDGES=["T","L","B","R","TL","TR","BL","BR"];isc.A.eventTypes={MOUSE_DOWN:"mouseDown",RIGHT_MOUSE_DOWN:"rightMouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",SHOW_CONTEXT_MENU:"showContextMenu",CLICK:"click",DOUBLE_CLICK:"doubleClick",MOUSE_OUT:"mouseOut",MOUSE_STILL_DOWN:"mouseStillDown",MOUSE_OVER:"mouseOver",TOUCH_START:"touchStart",TOUCH_MOVE:"touchMove",TOUCH_END:"touchEnd",LONG_TOUCH:"longTouch",SET_DRAG_TRACKER:"setDragTracker",GET_DRAG_DATA:"getDragData",RELEASE_DRAG_DATA:"releaseDragData",DRAG_START:"dragStart",DRAG_STOP:"dragStop",DRAG_MOVE:"dragMove",DRAG_OUT:"dragOut",DRAG_REPOSITION_START:"dragRepositionStart",DRAG_REPOSITION_MOVE:"dragRepositionMove",DRAG_REPOSITION_STOP:"dragRepositionStop",DRAG_RESIZE_START:"dragResizeStart",DRAG_RESIZE_MOVE:"dragResizeMove",DRAG_RESIZE_STOP:"dragResizeStop",DROP_OVER:"dropOver",DROP_MOVE:"dropMove",DROP_OUT:"dropOut",DROP:"drop",KEY_DOWN:"keyDown",KEY_UP:"keyUp",KEY_PRESS:"keyPress",MOUSE_WHEEL:"mouseWheel",SELECT_START:"selectStart",SELECTION_CHANGE:"selectionChange",FOCUS_IN:"focusIn",FOCUS_OUT:"focusOut",IDLE:"idle",LOAD:"load",UNLOAD:"unload",RESIZE:"resize",ORIENTATION_CHANGE:"orientationChange"};isc.A.$i2={mousemove:"mouseMove",mousedown:"mouseDown",mouseup:"mouseUp",mousewheel:"mouseWheel",selectionchange:"selectionChange",DOMMouseScroll:"mouseWheel",mouseMove:"mouseMove",mouseDown:"mouseDown",mouseUp:"mouseUp",mouseWheel:"mouseWheel",touchstart:"touchStart",touchmove:"touchMove",touchend:"touchEnd",touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",selectionstart:"selectionStart",selectionStart:"selectionStart",selectionchange:"selectionChange",selectionChange:"selectionChange"};isc.A.$i3="event,eventInfo";isc.A.DRAG_RESIZE="dragResize";isc.A.DRAG_REPOSITION="dragReposition";isc.A.DRAG_SCROLL="dragScroll";isc.A.DRAG_SELECT="dragSelect";isc.A.DRAG="drag";isc.A.NONE="none";isc.A.TRACKER="tracker";isc.A.TARGET="target";isc.A.OUTLINE="outline";isc.A.INTERSECT_WITH_MOUSE="mouse";isc.A.INTERSECT_WITH_RECT="rect";isc.A.dragTargetShadowDepth=10;isc.A.$i4={A:true,AREA:true};isc.A.$i5={INPUT:true,TEXTAREA:true,SELECT:true,OPTION:true};isc.A.$i6="LABEL";isc.A.$i7={keydown:"keyDown",keyup:"keyUp",keypress:"keyPress"};isc.A.$i8={Backspace:8,Tab:9,Shift:16,Ctrl:17,Alt:18,Pause_Break:19,Caps_Lock:20,Page_Up:33,Page_Down:34,End:35,Home:36,Arrow_Left:37,Arrow_Up:38,Arrow_Right:39,Arrow_Down:40,Insert:45,Delete:46,Meta:91,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,Num_Lock:144,Scroll_Lock:145};isc.A.$iz={'0':'$i9','8':'Backspace','9':'Tab','13':'Enter','16':'Shift','17':'Ctrl','18':'Alt','19':'Pause_Break','20':'Caps_Lock','27':'Escape','32':'Space','33':'Page_Up','34':'Page_Down','35':'End','36':'Home','37':'Arrow_Left','38':'Arrow_Up','39':'Arrow_Right','40':'Arrow_Down','44':'Print_Screen','45':'Insert','46':'Delete','48':'0',"49":"1","50":"2","51":"3","52":"4","53":"5","54":"6","55":"7","56":"8","57":"9",'58':';','59':';','60':',','61':'=','62':"/",'65':'A','66':'B','67':'C','68':'D','69':'E','70':'F','71':'G','72':'H','73':'I','74':'J','75':'K','76':'L','77':'M','78':'N','79':'O','80':'P','81':'Q','82':'R','83':'S','84':'T','85':'U','86':'V','87':'W','88':'X','89':'Y','90':'Z','91':'Meta','92':'Meta','93':'Menu','96':'0','97':'1','98':'2','99':'3','100':'4','101':'5','102':'6','103':'7','104':'8','105':'9','106':'*','107':'+','109':'-','110':'.','111':'/','112':'f1','113':'f2','114':'f3','115':'f4','116':'f5','117':'f6','118':'f7','119':'f8','120':'f9','121':'f10','122':'f11','123':'f12','144':'Num_Lock','145':'Scroll_Lock','160':'Shift','161':'Shift','162':'Ctrl','163':'Ctrl','164':'Alt','165':'Alt','186':';','187':'=','188':',','189':'-','190':'.','191':'/','192':'`','219':'[','220':'\\','221':']','222':"'"};isc.A.$ja={'8':'Backspace','9':'Tab','13':'Enter','27':'Escape','32':'Space','33':'1','34':"'",'35':'3','36':'4','37':'5','38':'7','39':"'",'40':'9','41':'0','42':'8','43':'=','44':',','45':'-','46':'.','47':'/','48':'0','49':'1','50':'2','51':'3','52':'4','53':'5','54':'6','55':'7','56':'8','57':'9','58':';','59':';','60':',','61':'=','62':'.','63':'/','64':'2','65':'A','66':'B','67':'C','68':'D','69':'E','70':'F','71':'G','72':'H','73':'I','74':'J','75':'K','76':'L','77':'M','78':'N','79':'O','80':'P','81':'Q','82':'R','83':'S','84':'T','85':'U','86':'V','87':'W','88':'X','89':'Y','90':'Z','91':'[','92':'\\','93':']','94':'6','95':'-','96':'`','97':'A','98':'B','99':'C','100':'D','101':'E','102':'F','103':'G','104':'H','105':'I','106':'J','107':'K','108':'L','109':'M','110':'N','111':'O','112':'P','113':'Q','114':'R','115':'S','116':'T','117':'U','118':'V','119':'W','120':'X','121':'Y','122':'Z','123':'[','124':'\\','125':']','126':'`'};isc.A.$jb={'3':"Enter",'25':"Tab",'63232':"Arrow_Up",'63233':"Arrow_Down",'63234':"Arrow_Left",'63235':"Arrow_Right",'64236':"f1",'64237':"f2",'64238':"f3",'64239':"f4",'64240':"f5",'64241':"f6",'64242':"f7",'64243':"f8",'64244':"f9",'64245':"f10",'64246':"f11",'63247':"f12",'63273':"Home",'63275':"End",'63276':"Page_Up",'63277':"Page_Down"};isc.A.$jc={};isc.A.dynamicBackMask=false;isc.A.alwaysBackMask=false;isc.A.dragTrackerDefaults={ID:"isc_dragTracker",width:10,height:10,offsetX:-10,offsetY:-10,autoDraw:false,visibility:"hidden",overflow:"visible",cursor:"arrow"};isc.EventHandler.addClassProperties(isc.EventHandler.eventTypes)
-isc.A=isc.EventHandler;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$je="f10";isc.A.$20w="Escape";isc.A.$jf="Tab";isc.A.$70a={keydown:true,keyup:true,keypress:true};isc.A.$jg="IMG";isc.A.$jh="progid:DXImageTransform.Microsoft.AlphaImageLoader";isc.A.longTouchDelay=500;isc.A.$ji={};isc.A.$jj="BODY";isc.A.$jk="HTML";isc.A.$jl="eventProxy";isc.A.$jm="[object Text]";isc.A.$jn={autoDraw:false,$jo:true,$jp:false,overflow:"hidden",visibility:"hidden",$jq:false,getTarget:function(){return this.$jr},show:function(){var _1=this.masterElement;this.moveAbove(_1);return this.Super("show",arguments)}};isc.A.$js=isc.Browser.isIE?isc.undef:true;isc.A.$jt="handleNativeEvents";isc.A.$49r="APPLET";isc.A.$ju={mouseMove:true,mouseOver:true,mouseOut:true};isc.A.$41z="selectionChange";isc.A.currentOrientation=isc.Page.getOrientation();isc.A.$jv="$jw";isc.A.$jx=0;isc.A.$jy={load:"LOD",mousedown:"MDN",mouseup:"MUP",mousemove:"MMV",mouseout:"MOU",touchstart:"TDN",touchmove:"TMVP",touchend:"TUP",contextmenu:"CXT",keypress:"KPR",keydown:"KDN",keyup:"KUP",resize:"RSZ"};isc.A.$jz="nativeEvents";isc.A.$j0="event";isc.A.$j1=(isc.Browser.isMoz?"if(event.getPreventDefault&&event.getPreventDefault())return;":isc.Browser.isSafari?"if(event.returnValue==false)return;":"")+"var returnVal=arguments.callee.$ch.isc.EH.dispatch(arguments.callee.$j2,event);"+(!isc.Browser.isIE&&isc.Browser.isDOM?"if(returnVal==false)event.preventDefault();else if(returnVal==isc.EH.STOP_BUBBLING)event.stopPropogation();":"")+"return returnVal;";isc.A.$j3={};isc.A.$j4={onmousedown:"mousedown",onmouseup:"mouseup",onclick:"click",ondblclick:"dblclick",oncontextmenu:"contextmenu",onmousewheel:"mousewheel",onmouseover:"mouseover",onmouseout:"mouseout",onmousemove:"mousemove",onresize:"resize",onload:"load",onunload:"unload",onselecttext:"selecttext",onselectionchanged:"selectionchanged",onkeydown:"keydown",onkeyup:"keyup",onkeypress:"keypress"};isc.A.$649={};isc.A.getMouseEventProperties=(isc.Browser.isIE?function(_1){var _2=this.lastEvent;if(!_1)_1=this.getWindow().event;_2.DOMevent=_1;_2.eventType=this.$i2[_1.type];_2.y=parseInt(_1.clientY)+this.ns.Page.getScrollTop();_2.x=parseInt(_1.clientX);if(!isc.Page.isRTL()){_2.x+=this.ns.Page.getScrollLeft()}else{var _3=this.ns.Page.getScrollLeft();if(_3>0){var _4=(this.ns.Page.getScrollWidth()-this.ns.Page.getWidth());_2.x-=(_4-_3)}
+isc.A=isc.EventHandler;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$je="f10";isc.A.$20w="Escape";isc.A.$jf="Tab";isc.A.$70a={keydown:true,keyup:true,keypress:true};isc.A.$jg="IMG";isc.A.$jh="progid:DXImageTransform.Microsoft.AlphaImageLoader";isc.A.longTouchDelay=500;isc.A.$ji={};isc.A.$jj="BODY";isc.A.$jk="HTML";isc.A.$jl="eventProxy";isc.A.$jm="[object Text]";isc.A.$jn={autoDraw:false,$jo:true,$jp:false,overflow:"hidden",visibility:"hidden",$jq:false,getTarget:function(){return this.$jr},show:function(){var _1=this.masterElement;this.moveAbove(_1);return this.Super("show",arguments)}};isc.A.$js=isc.Browser.isIE?isc.undef:true;isc.A.$jt="handleNativeEvents";isc.A.$49r="APPLET";isc.A.$ju={mouseMove:true,mouseOver:true,mouseOut:true};isc.A.$41z="selectionChange";isc.A.currentOrientation=isc.Page.getOrientation();isc.A.$jv="$jw";isc.A.$jx=0;isc.A.$jy={load:"LOD",mousedown:"MDN",mouseup:"MUP",mousemove:"MMV",mouseout:"MOU",touchstart:"TDN",touchmove:"TMVP",touchend:"TUP",contextmenu:"CXT",keypress:"KPR",keydown:"KDN",keyup:"KUP",resize:"RSZ"};isc.A.$jz="nativeEvents";isc.A.$j0="event";isc.A.$j1="if (!isc.Browser.isIE && event == null) return;"+(isc.Browser.isMoz?"if(event.getPreventDefault&&event.getPreventDefault())return;":isc.Browser.isSafari?"if(event.returnValue==false)return;":"")+"var returnVal=arguments.callee.$ch.isc.EH.dispatch(arguments.callee.$j2,event);"+(!isc.Browser.isIE&&isc.Browser.isDOM?"if(returnVal==false)event.preventDefault();else if(returnVal==isc.EH.STOP_BUBBLING)event.stopPropogation();":"")+"return returnVal;";isc.A.$j3={};isc.A.$j4={onmousedown:"mousedown",onmouseup:"mouseup",onclick:"click",ondblclick:"dblclick",oncontextmenu:"contextmenu",onmousewheel:"mousewheel",onmouseover:"mouseover",onmouseout:"mouseout",onmousemove:"mousemove",onresize:"resize",onload:"load",onunload:"unload",onselecttext:"selecttext",onselectionchanged:"selectionchanged",onkeydown:"keydown",onkeyup:"keyup",onkeypress:"keypress"};isc.A.$649={};isc.A.getMouseEventProperties=(isc.Browser.isIE?function(_1){var _2=this.lastEvent;if(!_1)_1=this.getWindow().event;_2.DOMevent=_1;_2.eventType=this.$i2[_1.type];_2.y=parseInt(_1.clientY)+this.ns.Page.getScrollTop();_2.x=parseInt(_1.clientX);if(!isc.Page.isRTL()){_2.x+=this.ns.Page.getScrollLeft()}else{var _3=this.ns.Page.getScrollLeft();if(_3>0){var _4=(this.ns.Page.getScrollWidth()-this.ns.Page.getWidth());_2.x-=(_4-_3)}
 _2.x-=15}
 _2.nativeTarget=_1.srcElement;_2.target=this.getEventTargetCanvas(_1,_2.nativeTarget);var _5=_1.wheelDelta;if(_5!=null)_2.wheelDelta=-Math.round(_5/ 120);else _2.wheelDelta=null;_2.screenX=_1.screenX;_2.screenY=_1.screenY;_2.buttonNum=_1.button;_2.shiftKey=(_1.shiftKey==true);_2.ctrlKey=(_1.ctrlKey==true);_2.altKey=(_1.altKey==true);_2.metaKey=(_1.metaKey==true);return _2}:function(_1){var _2=this.lastEvent;_2.DOMevent=_1;_2.eventType=this.$i2[_1.type];var _3=false;if(isc.Browser.isMobileWebkit){if(isc.startsWith(_2.eventType,"touch")){if(_2.eventType==isc.EH.TOUCH_END){_3=true}else if(_1.touches!=null&&_1.touches[0]!=null){var _4=_1.touches[0];_2.clientX=_4.clientX;_2.clientY=_4.clientY;_2.screenX=_4.screenX;_2.screenY=_4.screenY;_2.x=_4.pageX;_2.y=_4.pageY}}}else{_2.screenX=_1.screenX;_2.screenY=_1.screenY;if(isc.Browser.isSafari){var _5=isc.Browser.safariVersion>=523.12
 _2.x=parseInt(_1.x);_2.y=parseInt(_1.y);if(_5){_2.x+=isc.Page.getScrollLeft();_2.y+=isc.Page.getScrollTop()}
@@ -1289,7 +1308,7 @@
 {return _3}
 var x=_2.x,y=_2.y,_6=_1.visibleAtPoint(x,y,true);if(!_6&&_1.$kt!=null){for(var i=0;i<_1.$kt.length;i++){_6=_1.$kt[i].visibleAtPoint(_2.x,_2.y,true);if(_6)break}}
 _2.$j5=_6;return _6}
-,isc.A.handleMouseMove=function isc_c_EventHandler_handleMouseMove(_1){if(isc.Browser.isTouch)return;if(!isc.Page.isLoaded())return false;var _2=isc.EH;if(_2.$km||_2.$ku)return;var _3=_2.getMouseEventProperties(_1);if((isc.Browser.isMoz||isc.Browser.isIE)){if(_2.delayedMouseMoveTimer==null){_2.delayedMouseMoveTimer=isc.Timer.setTimeout({target:_2,methodName:"$kv",args:[isc.timeStamp()]},0,true)}
+,isc.A.handleMouseMove=function isc_c_EventHandler_handleMouseMove(_1){if(isc.Browser.isTouch)return;if(!isc.Page.isLoaded())return false;var _2=isc.EH;if(_2.$km||_2.$ku)return;var _3=_2.getMouseEventProperties(_1);if((isc.Browser.isMoz||isc.Browser.isIE)&&!_2.immediateMouseMove){if(_2.delayedMouseMoveTimer==null){_2.delayedMouseMoveTimer=isc.Timer.setTimeout({target:_2,methodName:"$kv",args:[isc.timeStamp()]},0,true)}
 _2.$kw=0;return true}
 var _4=isc.timeStamp();var _5=_2.$kx(_1,_3);_2.$kw=isc.timeStamp()-_4;return _5}
 ,isc.A.$kv=function isc_c_EventHandler__delayedMouseMove(_1){this.delayedMouseMoveTimer=null;this.$kx(null,this.lastEvent)}
@@ -1342,9 +1361,9 @@
 ,isc.A.handleNativeClick=function isc_c_EventHandler_handleNativeClick(){var _1=isc.EH,_2=(_1.$k6!=false);delete _1.$k6}
 ,isc.A.handleClick=function isc_c_EventHandler_handleClick(_1,_2){if(!isc.Page.isLoaded())return false;var _3=this,_4=_3.lastEvent,_5;if(!_2)_2=(_3.isDoubleClick(_1)?_3.DOUBLE_CLICK:_3.CLICK);if(isc.Page.handleEvent(_1,_2)==false){_5=false}else if(_3.eventHandledNatively(_2,_4.nativeTarget)){_5=_3.$js}else if(!_3.targetIsEnabled(_1)){_5=false}else if(!_3.stillWithinMouseDownTarget()){_5=false}else{var _1=_3.mouseDownTarget();_5=_3.bubbleEvent(_1,_2)}
 _3.$k9=isc.timeStamp();return _5}
-,isc.A.isDoubleClick=function isc_c_EventHandler_isDoubleClick(_1){var _2=this,_1=_1||_2.lastEvent.nativeTarget;var _3=_2.useNativeEventTime!=null?_2.useNativeEventTime:(isc.Browser.isMoz&&isc.Browser.isWin),_4,_5;if(_3){var _6=_2.lastEvent.DOMevent
+,isc.A.isDoubleClick=function isc_c_EventHandler_isDoubleClick(_1){var _2=this,_1=_1||_2.lastEvent.nativeTarget;var _3=_2.useNativeEventTime!=null?_2.useNativeEventTime:(isc.Browser.isMoz&&isc.Browser.isWin),_4,_5;if(_2._isSecondClick!=null){_5=_2._isSecondClick}else{if(_3){var _6=_2.lastEvent.DOMevent
 _4=_6?_6.timeStamp:null;if(_4==0||!isc.isA.Number(_4)){this.logDebug("Unable to derive native 'timeStamp' attribute from DOM event");_4=isc.timeStamp()}
-_5=((_4-_2.lastClickTime)<_2.DOUBLE_CLICK_DELAY)}else{_4=isc.timeStamp();_5=((_2.$k9-_2.lastClickTime)<_2.DOUBLE_CLICK_DELAY)?((_4-_2.lastClickTime)<_2.DOUBLE_CLICK_DELAY):((_4-_2.$k9)<100)}
+_5=((_4-_2.lastClickTime)<_2.DOUBLE_CLICK_DELAY)}else{_4=isc.timeStamp();_5=((_2.$k9-_2.lastClickTime)<_2.DOUBLE_CLICK_DELAY)?((_4-_2.lastClickTime)<_2.DOUBLE_CLICK_DELAY):((_4-_2.$k9)<100)}}
 _2.lastClickTime=_4;if(!_5){delete _2.lastClickTarget}
 var _7=false;if(_1==_2.lastClickTarget){_7=!_1.noDoubleClicks;if(_7){var _8=_1;while(_8.parentElement){_8=_8.parentElement;if(_8.noDoubleClicks){_7=false;break}}}}
 _2.lastClickTarget=(_7?null:_1);return _7}
@@ -1435,7 +1454,7 @@
 );isc.evalBoundary;isc.B.push(isc.A.getEventTargetCanvas=function isc_c_EventHandler_getEventTargetCanvas(_1,_2){if(_1==null)_1={};var _3=this,_4=this.getWindow();if(!_2)_2=(isc.Browser.isIE?_1.srcElement:_1.target);if(!_3.$l7(_2)){return _3.lastTarget}
 if(_1&&_1.$49s)return _1.target;if(!_2||_2.tagName==this.$jj||_2.tagName==this.$jk){return(_3.lastTarget=null)}
 if(_2&&_2.tagName&&_2.tagName==this.$49r){var _5=isc.Applet?isc.Applet.idForName(_2.name):null;return _5?window[_5]:_3.lastTarget}
-if(isc.Browser.isIE&&_2.parentElement==null){_2=_3.lastTarget}else{var _6=this.$jl;if(isc.Browser.isIE){while(_2!=null){if(_2.eventProxy)break;_2=_2.parentElement}}else{while(_2!=null){if(_2.eventProxy!=null||(_2.hasAttribute!=null&&_2.hasAttribute(_6)))break;_2=_2.parentNode}}
+if(isc.Browser.isIE&&_2.parentElement==null){_2=_3.lastTarget}else{var _6=this.$jl;if(isc.Browser.isIE&&!isc.Browser.isIE9){while(_2!=null){if(_2.eventProxy)break;_2=_2.parentElement}}else{while(_2!=null){if(_2.eventProxy!=null||(_2.hasAttribute!=null&&_2.hasAttribute(_6)))break;_2=_2.parentNode}}
 if(!_2)return(_3.lastTarget=null);_2=_4[_2.getAttribute(_6)];while(_2&&_2.eventProxy){if(isc.isA.String(_2.eventProxy)){_2.eventProxy=_4[_2.eventProxy]}
 _2=_2.eventProxy}
 if(this.logIsInfoEnabled()&&!_1||(_1.type!="mousemove"&&_1.type!="selectstart"))
@@ -1522,9 +1541,9 @@
 return true}
 ,isc.A.handleOrientationChange=function isc_c_EventHandler_handleOrientationChange(_1){this.$78p()}
 ,isc.A.$mn=function isc_c_EventHandler__pageResizePollMethod(){isc.EH.$hr(true)}
-,isc.A.$hr=function isc_c_EventHandler__pageResize(_1){isc.EH.resizeTimer=null;var _2=isc.Page.getOrientation();if(!_1){this.$mo=isc.Page.getWidth(window,true);this.$mp=isc.Page.getHeight(window,true);if(this.resizingPollTimer!=null)isc.Timer.clearTimeout(this.resizingPollTimer);this.resizingPollTimer=isc.Timer.setTimeout(this.$mn,100)}else{var _3=isc.Page.getWidth(window,true),_4=isc.Page.getHeight(window,true),_5=(_2==this.currentOrietnation)&&(_3==this.$mo&&_4==this.$mp)
-if(isc.Page.pollPageSize){isc.Page.setEvent(isc.EH.IDLE,this.$mn,isc.Page.FIRE_ONCE);this.$mo=_3;this.$mp=_4}
-if(_5)return}
+,isc.A.$hr=function isc_c_EventHandler__pageResize(_1){isc.EH.resizeTimer=null;var _2=isc.Page.getOrientation();if(!_1){this.$mo=isc.Page.getWidth(window,true);this.$mp=isc.Page.getHeight(window,true);if(this.resizingPollTimer!=null)isc.Timer.clearTimeout(this.resizingPollTimer);this.resizingPollTimer=isc.Timer.setTimeout(this.$mn,100)}else{var _3=isc.Page.getWidth(window,true),_4=isc.Page.getHeight(window,true),_5=(_2==this.currentOrientation)&&(_3==this.$mo&&_4==this.$mp)
+if(isc.Page.pollPageSize){isc.Page.setEvent(isc.EH.IDLE,this.$mn,isc.Page.FIRE_ONCE)}
+if(_5)return;this.$mo=_3;this.$mp=_4}
 this.$78p(_2)}
 ,isc.A.$78p=function isc_c_EventHandler__fireResizeEvent(_1){isc.Page.handleEvent(null,isc.EH.RESIZE);if(_1==null)_1=isc.Page.getOrientation();if(_1!=this.currentOrientation){this.currentOrientation=_1;isc.Page.handleEvent(null,isc.EH.ORIENTATION_CHANGE)}}
 ,isc.A.handleMouseWheel=function isc_c_EventHandler_handleMouseWheel(_1){var _2=isc.EH;if(!_1)_1=_2.getWindow().event;var _3=(_1.srcElement||_1.target);if(_2.eventHandledNatively(_1.type,_3))return _2.$js;_2.getMouseEventProperties(_1);var _4=_2.getEventTargetCanvas(_1);if(_2.bubbleEvent(_4,_2.eventTypes.MOUSE_WHEEL)==false){if(_1.preventDefault)_1.preventDefault();return false}
@@ -1629,7 +1648,8 @@
 {this.logWarn("Attempting to unmask target canvas:"+_6.getID()+" with respect to a hard click mask. "+"This is not a top level Canvas - all ancestors of "+"this Canvas will also be unmasked.","clickMask");_1.add(_6.topElement)}}}
 this.$m3(_1);this.$m4(_1);return _1}
 ,isc.A.$m4=function isc_c_EventHandler__combineDescendantsIntoList(_1){var _2=_1.length;for(var i=0;i<_2;i++){if(_1[i]==null)continue;this.$m5(_1[i],_1)}}
-,isc.A.$m5=function isc_c_EventHandler__addDescendantsToList(_1,_2,_3){if(_3&&!_2.contains(_1))_2.add(_1);if(_1.children){for(var i=0;i<_1.children.length;i++){this.$m5(_1.children[i],_2,true)}}}
+,isc.A.$m5=function isc_c_EventHandler__addDescendantsToList(_1,_2,_3){if(_3&&!_2.contains(_1))_2.add(_1);if(_1.children){for(var i=0;i<_1.children.length;i++){this.$m5(_1.children[i],_2,true)}}
+if(isc.DynamicForm&&isc.CanvasItem&&isc.isA.DynamicForm(_1)){var _5=_1.getItems()||[];for(var i=0;i<_5.length;i++){if(_5[i].containerWidget==_1)continue;if(isc.isA.CanvasItem(_5[i])&&isc.isA.Canvas(_5[i].canvas)){this.$m5(_5[i].canvas,_2,true)}}}}
 ,isc.A.$m3=function isc_c_EventHandler__combineTopPeersIntoList(_1){for(var i=0,_3=_1.length;i<_3;i++){var t=_1[i];if(t.parentElement&&_1.contains(t.parentElement))continue;this.$m6(_1[i],_1)}}
 ,isc.A.$m6=function isc_c_EventHandler__addPeersToList(_1,_2,_3){if(_3&&!_2.contains(_1))_2.add(_1);var _4=_1.peers;if(_4){for(var i=0;i<_4.length;i++){this.$m6(_4[i],_2,true)}}
 this.$m5(_1,_2)}
@@ -1659,10 +1679,10 @@
 var _17=(isc.Browser.isIE&&this.lastEvent.eventType==this.MOUSE_DOWN)
 if(_17){this.$k7=_12}else{try{_12.focus()}catch(e){}}}}
 this.updateEventMasks()}
-,isc.A.$na=function isc_c_EventHandler__getNextHardMask(_1,_2){var _3=this.clickMaskRegistry;if(_2){for(var i=_1+1;i<_3.length;i++){if(this.isHardMask(_3[i]))return _3[i]}}else{for(var i=_1-1;i>=0;i--){if(this.isHardMask(_3[i]))return _3[i]}}
+);isc.evalBoundary;isc.B.push(isc.A.$na=function isc_c_EventHandler__getNextHardMask(_1,_2){var _3=this.clickMaskRegistry;if(_2){for(var i=_1+1;i<_3.length;i++){if(this.isHardMask(_3[i]))return _3[i]}}else{for(var i=_1-1;i>=0;i--){if(this.isHardMask(_3[i]))return _3[i]}}
 return null}
 ,isc.A.$m2=function isc_c_EventHandler__getCanvas(_1){if(isc.isA.String(_1))return window[_1];return _1}
-);isc.evalBoundary;isc.B.push(isc.A.$nb=function isc_c_EventHandler__hardUnmaskTargets(_1,_2){if(!_1||_1.length==0)return;for(var i=0;i<_1.length;i++){var _4=this.$m2(_1[i]);if(!_4)continue;if(_4.accessKey!=null&&_4.isDrawn()){_4.$m9(_4.accessKey)}
+,isc.A.$nb=function isc_c_EventHandler__hardUnmaskTargets(_1,_2){if(!_1||_1.length==0)return;for(var i=0;i<_1.length;i++){var _4=this.$m2(_1[i]);if(!_4)continue;if(_4.accessKey!=null&&_4.isDrawn()){_4.$m9(_4.accessKey)}
 if(!_4.isDrawn()&&isc.isA.DynamicForm&&isc.isA.DynamicForm(_4)&&_4.items&&_4.items.length>0)
 {var _5=_4.items[0];if(_5.containerWidget!=_4)_4=_5.containerWidget}
 if(!_2&&_4.parentElement==null&&_4.getZIndex()<=this.$m8.getZIndex()&&_4!=this.$m8)
@@ -1706,7 +1726,7 @@
 if(_4)return false;_3=_2[_2.indexOf(_3)-1]}
 return true}
 ,isc.A.$lj=function isc_c_EventHandler__clickMaskClick(_1){var _2=_1.autoHide,_3=_1.clickAction;if(_2==true)this.hideClickMask(_1.ID);if(_3!=null)this.fireCallback(_3)}
-);isc.B._maxIndex=isc.C+169;isc.EventHandler.captureEvents();isc.ClassFactory.defineClass("Element",null,null,true);isc.A=isc.Element;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$wq=window.isc_insertAfterBodyStart;isc.A.$wr="isc_global_insertion_marker";isc.A.$n7="afterBegin";isc.A.$n9="afterEnd";isc.A.$n6="beforeBegin";isc.A.$n8="beforeEnd";isc.A.$w2=isc.Browser.isMoz?"border-left-width":"borderLeftWidth";isc.A.$w3=isc.Browser.isMoz?"border-top-width":"borderTopWidth";isc.A.$oi=isc.Browser.isMoz?"margin-left":"marginLeft";isc.A.$ok=isc.Browser.isMoz?"margin-top":"marginTop";isc.A.$27r="none";isc.A.cacheCount=0;isc.A.uncachedCount=0;isc.A.$808="$808";isc.A.$809="$809";isc.A.cacheOffsetCoords=true;isc.A.$nk={};isc.A.$419={border:"borderStyle",borderWidth:"borderStyle",borderLeft:"borderLeftStyle",borderRight:"borderRightStyle",borderTop:"borderTopStyle",borderBottom:"borderBottomStyle",borderLeftWidth:"borderLeftStyle",borderRightWidth:"borderRightStyle",borderBottomWidth:"borderBottomStyle",borderTopWidth:"borderTopStyle"};isc.A.$nl={};isc.A.$39=";";isc.A.vendorCSSPrefix=(isc.Browser.isMoz?"-moz-":isc.Browser.isSafari?"-webkit-":isc.Browser.isOpera?"-o-":"");isc.B.push(isc.A.get=function isc_c_Element_get(_1,_2){_2=_2||this.getDocument();if(isc.Browser.isDOM)return _2.getElementById(_1)}
+);isc.B._maxIndex=isc.C+169;isc.EventHandler.captureEvents();isc.ClassFactory.defineClass("Element",null,null,true);isc.A=isc.Element;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$wq=window.isc_insertAfterBodyStart;isc.A.$wr="isc_global_insertion_marker";isc.A.$n7="afterBegin";isc.A.$n9="afterEnd";isc.A.$n6="beforeBegin";isc.A.$n8="beforeEnd";isc.A.$84e=(isc.Browser.isIE&&!isc.Browser.isIE9)||isc.Browser.isOpera;isc.A.$w2=isc.Browser.isMoz?"border-left-width":"borderLeftWidth";isc.A.$w3=isc.Browser.isMoz?"border-top-width":"borderTopWidth";isc.A.$oi=isc.Browser.isMoz?"margin-left":"marginLeft";isc.A.$ok=isc.Browser.isMoz?"margin-top":"marginTop";isc.A.$27r="none";isc.A.cacheCount=0;isc.A.uncachedCount=0;isc.A.$808="$808";isc.A.$809="$809";isc.A.cacheOffsetCoords=true;isc.A.$nk={};isc.A.$419={border:"borderStyle",borderWidth:"borderStyle",borderLeft:"borderLeftStyle",borderRight:"borderRightStyle",borderTop:"borderTopStyle",borderBottom:"borderBottomStyle",borderLeftWidth:"borderLeftStyle",borderRightWidth:"borderRightStyle",borderBottomWidth:"borderBottomStyle",borderTopWidth:"borderTopStyle"};isc.A.$nl={};isc.A.$39=";";isc.A.vendorCSSPrefix=(isc.Browser.isMoz?"-moz-":isc.Browser.isSafari?"-webkit-":isc.Browser.isOpera?"-o-":"");isc.B.push(isc.A.get=function isc_c_Element_get(_1,_2){_2=_2||this.getDocument();if(isc.Browser.isDOM)return _2.getElementById(_1)}
 ,isc.A.$mk=function isc_c_Element__getElementFromSelection(_1){if(!_1)_1=document;if(isc.Browser.isIE){var _2=_1.selection,_3=_2.type.toLowerCase(),_4=(_3=="text"||_3=="none");if(!_2)return null;if(_4){var _5;try{_5=_2.createRange()}catch(e){}
 return _5?_5.parentElement():null}else{var _5=_2.createRange(),_6;for(var i=0;i<_5.length;i++){if(!_6){_6=_5(i).parentElement}else{while(!_6.contains(_5(i))){_6=_6.parentElement}}}
 return _6}}}
@@ -1761,10 +1781,10 @@
 return 0}
 ,isc.A.getHMarginSize=function isc_c_Element_getHMarginSize(_1){return isc.Element.getLeftMargin(_1)+isc.Element.getRightMargin(_1)}
 ,isc.A.getVMarginSize=function isc_c_Element_getVMarginSize(_1){return isc.Element.getTopMargin(_1)+isc.Element.getBottomMargin(_1)}
-,isc.A.getTopBorderSize=function isc_c_Element_getTopBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderTopStyle==this.$27r)return 0;var _2=(isc.Browser.isIE||isc.Browser.isOpera?parseInt(_1.currentStyle.borderTopWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderTopWidth")));return isNaN(_2)?0:_2}
-,isc.A.getBottomBorderSize=function isc_c_Element_getBottomBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderBottomStyle==this.$27r)return 0;var _2=(isc.Browser.isIE||isc.Browser.isOpera?parseInt(_1.currentStyle.borderBottomWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderBottomWidth")));return isNaN(_2)?0:_2}
-,isc.A.getLeftBorderSize=function isc_c_Element_getLeftBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderLeftStyle==this.$27r)return 0;var _2=(isc.Browser.isIE||isc.Browser.isOpera?parseInt(_1.currentStyle.borderLeftWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderLeftWidth")));return isNaN(_2)?0:_2}
-,isc.A.getRightBorderSize=function isc_c_Element_getRightBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderRightStyle==this.$27r)return 0;var _2=(isc.Browser.isIE||isc.Browser.isOpera?parseInt(_1.currentStyle.borderRightWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderRightWidth")));return isNaN(_2)?0:_2}
+,isc.A.getTopBorderSize=function isc_c_Element_getTopBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderTopStyle==this.$27r)return 0;var _2=(this.$84e?parseInt(_1.currentStyle.borderTopWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderTopWidth")));return isNaN(_2)?0:_2}
+,isc.A.getBottomBorderSize=function isc_c_Element_getBottomBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderBottomStyle==this.$27r)return 0;var _2=(this.$84e?parseInt(_1.currentStyle.borderBottomWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderBottomWidth")));return isNaN(_2)?0:_2}
+,isc.A.getLeftBorderSize=function isc_c_Element_getLeftBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderLeftStyle==this.$27r)return 0;var _2=(this.$84e?parseInt(_1.currentStyle.borderLeftWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderLeftWidth")));return isNaN(_2)?0:_2}
+,isc.A.getRightBorderSize=function isc_c_Element_getRightBorderSize(_1){if(_1==null)return 0;if(isc.Browser.isOpera&&_1.currentStyle.borderRightStyle==this.$27r)return 0;var _2=(this.$84e?parseInt(_1.currentStyle.borderRightWidth):parseInt(isc.Element.getComputedStyleAttribute(_1,"borderRightWidth")));return isNaN(_2)?0:_2}
 ,isc.A.getVBorderSize=function isc_c_Element_getVBorderSize(_1){return isc.Element.getTopBorderSize(_1)+isc.Element.getBottomBorderSize(_1)}
 ,isc.A.getHBorderSize=function isc_c_Element_getHBorderSize(_1){return isc.Element.getLeftBorderSize(_1)+isc.Element.getRightBorderSize(_1)}
 ,isc.A.getVisibleWidth=function isc_c_Element_getVisibleWidth(_1){if(_1==null)return 0;var _2=isc.Element.getComputedStyleAttribute(_1,"overflow"),_3;if(_2==isc.Canvas.VISIBLE||!isc.isA.Number(parseInt(_1.style.width))){_3=isc.Element.getScrollWidth(_1)+isc.Element.getHBorderSize(_1)}else{_3=parseInt(_1.style.width)}
@@ -1777,7 +1797,7 @@
 var _3=parseInt(isc.Element.getComputedStyleAttribute(_1,"marginLeft"));if(isc.isA.Number(_3)&&_3>0){_2-=_3}
 var _4=this.getDocumentBody(),_5,_6="px",_7=_1.style.position;if(isc.Browser.isMoz){if(_1.offsetParent==null)return _2;if(_1.offsetParent!=_4){_5=this.ns.Element.getComputedStyle(_1.offsetParent,["borderLeftWidth","overflow"]);var _8=isc.Browser.geckoVersion,_9=(_5.overflow!="visible")&&(_8>=20051111||(_7==isc.Canvas.ABSOLUTE&&_5.overflow!="hidden")),_10=(_8>20020826&&(_1.offsetParent.style.MozBoxSizing=="border-box"));if(_10!=_9){if(_10){_2-=(isc.isA.Number(parseInt(_5.borderLeftWidth))?parseInt(_5.borderLeftWidth):0)}
 if(_9){_2+=(isc.isA.Number(parseInt(_5.borderLeftWidth))?parseInt(_5.borderLeftWidth):0)}}}}
-if(isc.Browser.isIE&&!isc.Browser.isIE8Strict){var _11=_1.offsetParent,_5;if(_5!=_4)_5=_11.currentStyle;var _12=(_1.currentStyle.height!=isc.Canvas.AUTO||_1.currentStyle.width!=isc.Canvas.AUTO);var _13=true;while(_11!=_4){if(_5.position==isc.Canvas.ABSOLUTE)_13=false;if(_5.width==isc.Canvas.AUTO&&_5.height==isc.Canvas.AUTO&&_5.position==isc.Canvas.RELATIVE){if(_13&&isc.isA.String(_5.borderLeftWidth)&&_5.borderLeftWidth.contains(_6)){_2-=parseInt(_5.borderLeftWidth)}
+if(isc.Browser.isIE&&!isc.Browser.isIE8Strict&&!isc.Browser.isIE9){var _11=_1.offsetParent,_5;if(_5!=_4)_5=_11.currentStyle;var _12=(_1.currentStyle.height!=isc.Canvas.AUTO||_1.currentStyle.width!=isc.Canvas.AUTO);var _13=true;while(_11!=_4){if(_5.position==isc.Canvas.ABSOLUTE)_13=false;if(_5.width==isc.Canvas.AUTO&&_5.height==isc.Canvas.AUTO&&_5.position==isc.Canvas.RELATIVE){if(_13&&isc.isA.String(_5.borderLeftWidth)&&_5.borderLeftWidth.contains(_6)){_2-=parseInt(_5.borderLeftWidth)}
 if(_12){if(isc.isA.String(_5.marginLeft)&&_5.marginLeft.contains(_6))
 {var _14=parseInt(_5.marginLeft);if(_14>0)_2-=_14}
 if(_11.offsetParent!=_4){var _15=_11.offsetParent.currentStyle.padding;if(isc.isA.String(_15)&&_15.contains(_6)){_2-=parseInt(_15)}}else{_2-=(_4.leftMargin?parseInt(_4.leftMargin):0)}}}
@@ -1789,7 +1809,7 @@
 var _3=parseInt(isc.Element.getComputedStyleAttribute(_1,"marginTop"));if(isc.isA.Number(_3)&&_3>0){_2-=_3}
 var _4=this.getDocumentBody(),_5,_6="px",_7=_1.style.position;if(isc.Browser.isMoz){if(_1.offsetParent==null)return _2;if(_1.offsetParent!=_4){_5=this.ns.Element.getComputedStyle(_1.offsetParent,["overflow","borderTopWidth"]);var _8=(_5.overflow!="visible")&&(isc.Browser.geckoVersion>=20051111||(_7==isc.Canvas.ABSOLUTE&&_5.overflow!="hidden")),_9=(isc.Browser.geckoVersion>20020826&&_1.offsetParent.style.MozBoxSizing=="border-box");if(_9!=_8){if(_9){_2-=(isc.isA.Number(parseInt(_5.borderTopWidth))?parseInt(_5.borderTopWidth):0)}
 if(_8){_2+=(isc.isA.Number(parseInt(_5.borderTopWidth))?parseInt(_5.borderTopWidth):0)}}}}
-if(isc.Browser.isIE){if(_1.offsetParent&&_1.offsetParent!=_4){_5=_1.offsetParent.currentStyle;if(_5.position==isc.Canvas.RELATIVE&&_5.height==isc.Canvas.AUTO&&_5.width==isc.Canvas.AUTO&&isc.isA.String(_5.borderTopWidth)&&_5.borderTopWidth.contains(_6)){_2-=parseInt(_5.borderTopWidth)}}}
+if(isc.Browser.isIE&&!isc.Browser.isIE9){if(_1.offsetParent&&_1.offsetParent!=_4){_5=_1.offsetParent.currentStyle;if(_5.position==isc.Canvas.RELATIVE&&_5.height==isc.Canvas.AUTO&&_5.width==isc.Canvas.AUTO&&isc.isA.String(_5.borderTopWidth)&&_5.borderTopWidth.contains(_6)){_2-=parseInt(_5.borderTopWidth)}}}
 if(isc.Browser.isSafari&&isc.Browser.safariVersion<525.271){if(_1.offsetParent&&_1.offsetParent!=_4){var _10=this.ns.Element.getComputedStyle(_1.offsetParent,["borderTopWidth"]).borderTopWidth;if(_10!=null)_10=parseInt(_10);if(isc.isA.Number(_10))_2-=_10}}
 _1.$yu=_1.offsetTop;_1.$yv=_2;return _2}
 ,isc.A.getLeftOffset=function isc_c_Element_getLeftOffset(_1,_2,_3,_4){return this.getOffset(isc.Canvas.LEFT,_1,_2,_3,_4)}
@@ -1797,7 +1817,7 @@
 ,isc.A.getOffset=function isc_c_Element_getOffset(_1,_2,_3,_4,_5){var _6=_5||isc.isA.Canvas(_2),_7=_5||_3==null||isc.isA.Canvas(_3);var _8=_6&&_7&&this.cacheOffsetCoords&&(_2.cacheOffsetCoords!=false);var _9=(_1==isc.Canvas.LEFT)?this.$808:this.$809;if(_8&&_2[_9]!=null){var _10=_2[_9][_3?_3.ID:this.$27r];if(_10!=null){this.cacheCount++;return _10}}
 this.uncachedCount++;var _11=_6?_2.getClipHandle():_2;var _12;if(_3==null)_12=this.getDocumentBody();else if(_7)_12=_3.getHandle();else _12=_3;if(_12==null||_11==null){return 0}
 var _13=_11.offsetParent;if(isc.Browser.isMoz&&_13==null)return 0;var _14=_12.offsetParent,_15=_11,_16=0,_17=(_1==isc.Canvas.LEFT),_18=(_17?this.$w2:this.$w3),_19=(_17?this.$oi:this.$ok);if(!_17)_4=false;else if(_4==null)_4=(isc.Page.getTextDirection()==isc.Canvas.RTL);var _20=0;while(_13!=_12&&_13!=_14){var _21=(_17?this.ns.Element.getOffsetLeft(_15):this.ns.Element.getOffsetTop(_15));_16+=_21;if(!_4){_16-=((_17?_13.scrollLeft:_13.scrollTop)||0)}else{if(isc.isA.Number(_13.scrollLeft)){var _22=(_13.scrollWidth-_13.clientWidth);_16+=(_22-_13.scrollLeft)}}
-var _23,_24,_25;if(isc.Browser.isIE||isc.Browser.isOpera){_23=_13.currentStyle;if(isc.Browser.isOpera&&(_17?_23.borderLeftStyle==this.$27r:_23.borderTopStyle==this.$27r))_24=null;else _24=parseInt(_23[_18]);if(isc.isA.Number(_24))_16+=_24;_25=parseInt(_23[_19]);if(isc.isA.Number(_25)&&_25>0)_16+=_25}else if(isc.Browser.isMoz){_23=document.defaultView.getComputedStyle(_13,null);_24=parseInt(_23.getPropertyValue(_18));_16+=_24;_25=parseInt(_23.getPropertyValue(_19));if(_25>0)_16+=_25}else{_24=parseInt(this.getComputedStyleAttribute(_13,_18));if(isc.isA.Number(_24))_16+=_24;_25=parseInt(this.getComputedStyleAttribute(_13,_19));if(isc.isA.Number(_25)&&_25>0)_16+=_25}
+var _23,_24,_25;if(this.$84e){_23=_13.currentStyle;if(isc.Browser.isOpera&&(_17?_23.borderLeftStyle==this.$27r:_23.borderTopStyle==this.$27r))_24=null;else _24=parseInt(_23[_18]);if(isc.isA.Number(_24))_16+=_24;_25=parseInt(_23[_19]);if(isc.isA.Number(_25)&&_25>0)_16+=_25}else if(isc.Browser.isMoz){_23=document.defaultView.getComputedStyle(_13,null);_24=parseInt(_23.getPropertyValue(_18));_16+=_24;_25=parseInt(_23.getPropertyValue(_19));if(_25>0)_16+=_25}else{_24=parseInt(this.getComputedStyleAttribute(_13,_18));if(isc.isA.Number(_24))_16+=_24;_25=parseInt(this.getComputedStyleAttribute(_13,_19));if(isc.isA.Number(_25)&&_25>0)_16+=_25}
 _15=_13;_13=_15.offsetParent;_20++}
 _16+=(_17?this.ns.Element.getOffsetLeft(_15):this.ns.Element.getOffsetTop(_15));if(_13==_14){_16-=(_17?this.ns.Element.getOffsetLeft(_12):this.ns.Element.getOffsetTop(_12))}
 if(_8){var _26=_2[_9]=_2[_9]||{};_26[_3?_3.ID:this.$27r]=_16}
@@ -1819,21 +1839,21 @@
 return _7}
 ,isc.A.getComputedStyle=function isc_c_Element_getComputedStyle(_1,_2){var _3,_4,_5;if(isc.isA.String(_1)){_3=isc.Element.get(_1)}else{_3=_1}
 if(_3==null||!isc.isAn.Object(_3)){this.logWarn("getComputedStyle: Unable to get to DOM element specified by '"+_1+"'."+this.getStackTrace());return null}
-if(isc.Browser.isIE||isc.Browser.isOpera){_4=_3.currentStyle;if(_2==null)_2=this.$yb;var _6=isc.applyMask(_4,_2);return _6}
+if(this.$84e){_4=_3.currentStyle;if(_2==null)_2=this.$yb;var _6=isc.applyMask(_4,_2);return _6}
 if(_2==null){_2=this.$yc}else if(isc.isAn.Array(_2)){var _7={},_8=this.$yc;for(var i=0;i<_2.length;i++){_7[_2[i]]=_8[_2[i]]}
 _2=_7}
 var _10=isc.Browser.isSafari&&isc.Browser.safariVersion<312,_11;if(_10){_4=_3.style;_11=this.getStyleDeclaration(_3.className)}else{_4=document.defaultView.getComputedStyle(_3,null)}
 _5={};for(var _12 in _2){_5[_12]=_4.getPropertyValue(_2[_12]);if(_10&&_5[_12]==null&&_11!=null&&_11[_12]!=null&&!isc.isAn.emptyString(_11[_12]))
 {_5[_12]=_11[_12]}}
 return _5}
-,isc.A.getComputedStyleAttribute=function isc_c_Element_getComputedStyleAttribute(_1,_2){if(_1==null||_2==null)return null;if(isc.Browser.isIE||isc.Browser.isOpera){if(_1.currentStyle==null)return null;if(isc.Browser.isOpera&&this.$419[_2]!=null&&_1.currentStyle[this.$419[_2]]==this.$27r)return 0;return _1.currentStyle[_2]}
+,isc.A.getComputedStyleAttribute=function isc_c_Element_getComputedStyleAttribute(_1,_2){if(_1==null||_2==null)return null;if(this.$84e){if(_1.currentStyle==null)return null;if(isc.Browser.isOpera&&this.$419[_2]!=null&&_1.currentStyle[this.$419[_2]]==this.$27r)return 0;return _1.currentStyle[_2]}
 if(isc.Browser.isSafari){var _3=null;if(_1.style)_3=_1.style[_2];if((_3==null||isc.isAn.emptyString(_3))&&_1.className)
 {var _4=isc.Element.getStyleEdges(_1.className);if(_4)_3=_4[_2]}
 if(isc.isAn.emptyString(_3))return null;return _3}
 var _5=this.$yc;var _6=this.$yd=this.$yd||document.defaultView;var _7=(_5[_2]||_2),_8=_6.getComputedStyle(_1,null);return _8.getPropertyValue(_7)}
 ,isc.A.getStyleDeclaration=function isc_c_Element_getStyleDeclaration(_1,_2){if(!_1)return null;if(!isc.allowDuplicateStyles)_2=false;if(isc.Browser.isSafari&&isc.Browser.safariVersion>=312){_1=_1.toLowerCase()}
 var _3="."+_1,_4=", ";var _5,_6=_2?[]:null;for(var i=document.styleSheets.length-1;i>=0;i--){var _8=this.$ye(document.styleSheets[i]);if(_8==null)continue;for(var j=_8.length-1;j>=0;j--){var _10=_8[j].selectorText;if(_10==null)continue;if(isc.Browser.isSafari&&isc.Browser.safariVersion>=312){_10=_10.toLowerCase()}
-if(isc.Browser.isMoz){var _11=_10.split(_4);for(var k=0;k<_11.length;k++){if(_11[k]==_3){_5=_8[j].style;if(_5!=null){if(_2)_6[_6.length]=_5;else return _5}}}}else{if(_10==_3){_5=_8[j].style;if(_5!=null){if(_2)_6[_6.length]=_5;else return _5}}}}}
+if(isc.Browser.isMoz||isc.Browser.isIE9){var _11=_10.split(_4);for(var k=0;k<_11.length;k++){if(_11[k]==_3){_5=_8[j].style;if(_5!=null){if(_2)_6[_6.length]=_5;else return _5}}}}else{if(_10==_3){_5=_8[j].style;if(_5!=null){if(_2)_6[_6.length]=_5;else return _5}}}}}
 if(_2&&_6.length>0)return _6;return null}
 ,isc.A.$ye=function isc_c_Element__getCSSRules(_1){if(!this.$yf){var _2="try{return $yg.rules||$yg.cssRules}"+"catch(e){isc.Page.$yh = true}";this.$yf=new Function("$yg",_2)}
 return this.$yf(_1)}
@@ -1959,7 +1979,10 @@
 this.$qb()}
 if(_2)isc.RPCManager.sendQueue();if(this.$kn&&this.$kk())this.makeFocusProxy();if(this.accessKey!=null&&this.$qc()&&this.$kk()){this.$qd()}
 if(this.$qe!=null)
-this.enforceScrollSize(this.$qe[0],this.$qe[1]);if(this.$qf())isc.EH.$mz([this]);if(this.clipCorners)this.$qg();this.$806=this.isVisible();if(!_1&&this.$806)this.show();if(this.parentElement)this.parentElement.childDrawn(this);if(this.masterElement)this.masterElement.peerDrawn(this);if(this.parentElement==null&&this.position==this.$411){this.$412=this.getPageLeft();this.$413=this.getPageTop();isc.Page.setEvent("resize",this,isc.Page.FIRE_ONCE,"$414")}
+this.enforceScrollSize(this.$qe[0],this.$qe[1]);if(this.$qf())isc.EH.$mz([this]);if(this.clipCorners)this.$qg();this.$806=this.isVisible();if(!_1&&this.$806)this.show();if(this.parentElement)this.parentElement.childDrawn(this);if(this.masterElement)this.masterElement.peerDrawn(this);if(this.parentElement==null&&isc.Page.isLoaded()&&!isc.Page.pollPageSize)
+{if(this.getPageRight()>=isc.Page.getWidth()||this.getPageBottom()>=isc.Page.getHeight())
+{isc.EH.fireOnPause("checkForBodyOverflowChange",{target:isc.Canvas,methodName:"checkForPageResize"},100)}}
+if(this.parentElement==null&&this.position==this.$411){this.$412=this.getPageLeft();this.$413=this.getPageTop();isc.Page.setEvent("resize",this,isc.Page.FIRE_ONCE,"$414")}
 return this}
 ,isc.A.doInitialFetch=function isc_Canvas_doInitialFetch(){}
 ,isc.A.$qb=function isc_Canvas__writeHTML(){this.setDrawnState(isc.Canvas.DRAWING_HANDLE);var _1=this.getDocument(),_2=this.separateContentInsertion;if(this.children!=null&&this.$p2()){this.$p5=true;var _3=this.getTagStart(),_4=this.getTagEnd();_1.write(_2?_3:_3+this.$px())
@@ -2123,8 +2146,8 @@
 _14[54]=(_14[54]||"")+";padding-top:"+this.topPadding+"px";if(this.bottomPadding!=null)
 _14[54]=(_14[54]||"")+";padding-bottom:"+this.bottomPadding+"px";if(this.leftPadding!=null)
 _14[54]=(_14[54]||"")+";padding-left:"+this.leftPadding+"px";if(this.rightPadding!=null)
-_14[54]=(_14[54]||"")+";padding-right:"+this.rightPadding+"px";_14[55]=(this.border?";BORDER:"+this.border:null);if(isc.Browser.isIE){if(!isc.Canvas.neverUseFilters||this.useOpacityFilter){_14[56]=(_9==null?null:";filter:progid:DXImageTransform.Microsoft.Alpha(opacity="+_9+")")}
-if(!isc.Canvas.neverUseFilters){if(this.$r9){_14[57]=";filter:progid:DXImageTransform.Microsoft.iris(irisStyle=circle)"}else{_14[57]=null}}}else{if(_9!=null){_14[56]=(this.$65q?";-moz-opacity:":";opacity:")+_9}else{_14[56]=null}}
+_14[54]=(_14[54]||"")+";padding-right:"+this.rightPadding+"px";_14[55]=(this.border?";BORDER:"+this.border:null);if(isc.Browser.isIE){if(!isc.Canvas.neverUseFilters||this.useOpacityFilter){_14[56]=(_9==null?null:";filter:progid:DXImageTransform.Microsoft.Alpha(opacity="+_9+")")}else{_14[56]=null}
+if(!isc.Canvas.neverUseFilters){if(this.$r9){_14[57]=";filter:progid:DXImageTransform.Microsoft.iris(irisStyle=circle)"}else{_14[57]=null}}else{_14[57]=null}}else{if(_9!=null){_14[56]=(this.$65q?";-moz-opacity:":";opacity:")+_9}else{_14[56]=null}}
 _14[58]=this.getTransformCSS();_14[60]=_4;var _15=64;if(this.$kk()&&this._useNativeTabIndex){_14[64]=_2.$ry;_14[65]=this.$qn();_14[66]=_2.$rz;_14[67]=this.$qo();if(!this.isDisabled()){_14[68]=_2.$r0;isc.$bk(_14,this.getTabIndex(),69,5);if(this.accessKey!=null){_14[74]=_2.$r1;_14[75]=this.accessKey;_15=76}else _15=74;if(!this.showFocusOutline){if(!_2.$sa)_2.$sa=" hideFocus=true";_14[_15]=_2.$sa;_15+=1}}else _15=68}
 _14.length=_15;_14[_15]=this.$oa;if(_1)return _14;return _14.join(isc.emptyString)}
 return _13}
@@ -2329,7 +2352,7 @@
 ,isc.A.getPageLeft=function isc_Canvas_getPageLeft(){if(isc.$cv)arguments.$cw=this;var _1=this.getClipHandle();if(_1&&isc.Browser.isMoz&&this.$st())_1=null;if(_1==null){if(!this.isDrawn()&&this.position==isc.Canvas.RELATIVE){this.logWarn("getPageLeft(): Called on undrawn relatively-position widget '"+this.getID()+"'.  The page level coordinates can not be reliably "+"calculated until the widget has drawn - returning estimated position")}
 var _2=this.parentElement;if(_2){var _3=0;if(_2.hscrollOn){if(!this.isRTL())_3=_2.getScrollLeft();else{var _4=_2.getScrollWidth()-_2.getViewportWidth();_3=-1*(_4-_2.getScrollLeft())}}
 return this.getOffsetLeft()+_2.getLeftBorderSize()+_2.getLeftMargin()+_2.getPageLeft()-_3}else{return this.getOffsetLeft()}}
-if(this.useClientRectAPI&&_1.getBou7ndingClientRect!=null){var _5=_1.getBoundingClientRect().left;_5-=this.getLeftMargin();_5+=isc.Page.getScrollLeft();return _5}
+if(this.useClientRectAPI&&_1.getBoundingClientRect!=null){var _5=_1.getBoundingClientRect().left;_5-=this.getLeftMargin();_5+=isc.Page.getScrollLeft();return _5}
 return this.getLeftOffset()}
 ,isc.A.getLeftOffset=function isc_Canvas_getLeftOffset(_1){var _2=this.ns.Element.getOffset(isc.Canvas.LEFT,this,_1,this.isRTL(),true);return _2}
 ,isc.A.getCanvasTop=function isc_Canvas_getCanvasTop(_1){if(_1!=null){if(!_1.contains(this,false)){this.logWarn("getCanvasTop passed ancestor:"+_1+". This is not an ancestor of this component - ignoring");_1=this.parentElement}}else{_1=this.parentElement}
@@ -2516,10 +2539,14 @@
 this.top+=_2;else
 _2=0;var _6=(_1!=0||_2!=0);if(!_6&&!_4)return false;this.$tx=_1;this.$ty=_2;var _7=(_4&&this.$tz?this.width:null),_8=(_4&&this.$t0?this.$o8:null);this.$q5(this.left,this.top,_7,_8);if(_4)this.$t1();this.$t2();return _6}
 ,isc.A.$t2=function isc_Canvas__completeMoveBy(){var _1=(this.$tx||0),_2=(this.$ty||0),_3;this.$tx=_3;this.$ty=_3;if(!_1&&!_2)return;this.$t3(this,_1,_2);this.$t4(_1,_2);if(this.parentElement)this.parentElement.childMoved(this,_1,_2);if(this.masterElement)this.masterElement.peerMoved(this,_1,_2);if(this.$kn&&this.$qj){var _4=this.$qq();if(_4!=null){var _5=parseInt(_4.style.left)+_1,_6=parseInt(_4.style.top)+_2;_4.style.left=_5+"px";_4.style.top=_6+"px"}}
-this.$808=this.$809=null;this.moved(_1,_2)}
+this.$808=this.$809=null;this.handleMoved(_1,_2)}
+,isc.A.handleMoved=function isc_Canvas_handleMoved(_1,_2){if(!this.$832&&this.isDrawn()&&this.parentElement==null&&!isc.Page.pollPageSize)
+{isc.EH.fireOnPause("checkForBodyOverflowChange",{target:isc.Canvas,methodName:"checkForPageResize"},100)}
+this.moved(_1,_2)}
 ,isc.A.moved=function(deltaX,deltaY){}
-,isc.A.parentMoved=function isc_Canvas_parentMoved(_1,_2,_3){this.$808=this.$809=null;this.$t3(_1,_2,_3)}
-,isc.A.$t3=function isc_Canvas__fireParentMoved(_1,_2,_3){var _4=this.children;if(_4==null)return;for(var i=0;i<_4.length;i++){if(isc.isA.Canvas(_4[i]))_4[i].parentMoved(_1,_2,_3)}}
+,isc.A.parentMoved=function isc_Canvas_parentMoved(_1,_2,_3){}
+,isc.A.handleParentMoved=function isc_Canvas_handleParentMoved(_1,_2,_3){this.$808=this.$809=null;this.parentMoved(_1,_2,_3);this.$t3(_1,_2,_3)}
+,isc.A.$t3=function isc_Canvas__fireParentMoved(_1,_2,_3){var _4=this.children;if(_4!=null){for(var i=0;i<_4.length;i++){if(isc.isA.Canvas(_4[i])){_4[i].handleParentMoved(_1,_2,_3)}}}}
 ,isc.A.childMoved=function isc_Canvas_childMoved(_1,_2,_3){if(this.allowContentAndChildren&&this.overflow==isc.Canvas.VISIBLE)
 this.$t5=true;this.$t6(this.$o4)}
 ,isc.A.$t4=function isc_Canvas__fireMasterMoved(_1,_2){var _3=this.peers;if(_3==null)return;for(var i=0;i<_3.length;i++){if(_3[i])_3[i].masterMoved(_1,_2)}}
@@ -2530,9 +2557,9 @@
 if(this.$pp){_3=this[_4]=0;if(this.percentBox=="custom")this[_4]=1}
 if(this.percentBox=="custom")return 0;var _7,_8,_9,_10=(_1==this.$oz||_1==this.$o6);if(this.percentSource||(this.snapTo&&this.masterElement)){_7=this.percentSource||this.masterElement;_9=(this.percentBox==this.$520),_8=_10?(_9?_7.getViewportWidth():_7.getVisibleWidth()):(_9?_7.getViewportHeight():_7.getVisibleHeight())}else{_7=this.parentElement;_8=(_10?(_7?_7.getInnerWidth():isc.Page.getWidth()):(_7?_7.getInnerHeight():isc.Page.getHeight()))}
 if(isc.Browser.isIE&&!isc.Page.isLoaded()&&((isc.Page.getWidth()==0)||(isc.Page.getHeight()==0)))
-{isc.Page.setEvent("load",this.ID+".pageResize()",isc.Page.FIRE_ONCE);this.$77g=true}
+{isc.Page.setEvent("load","if(window["+this.ID+"])"+this.ID+".pageResize()",isc.Page.FIRE_ONCE);this.$77g=true}
 if(isc.Browser.isChrome&&(!isc.Page.isLoaded()||isc.EH.$77e=="load")&&(isc.Page.getWidth()==0||isc.Page.getHeight()==0))
-{if(isc.Page.isLoaded()){isc.Page.setEvent("idle","if(window."+this.ID+")"+this.ID+".pageResize()",isc.Page.FIRE_ONCE)}else{isc.Page.setEvent("load","if(window."+this.ID+")"+this.ID+".delayCall('pageResize',null,100)",isc.Page.FIRE_ONCE)}
+{if(isc.Page.isLoaded()){isc.Page.setEvent("idle","if(window."+this.ID+")"+this.ID+".pageResize()",isc.Page.FIRE_ONCE)}else{isc.Page.setEvent("load","if(window."+this.ID+")"+this.ID+".delayCall('pageResize',[],100)",isc.Page.FIRE_ONCE)}
 this.$77g=true}
 _2=Math.round((parseInt(_2,10)/100)*_8);return _2-_3}
 var _11=_2;if(!isc.isA.Number(_2)){_2=parseInt(_2);if(isc.isA.Number(_2)&&isc.isA.String(_3)){this[_4]=_3=_2}}
@@ -2544,7 +2571,7 @@
 return _2-_3}
 ,isc.A.restoreDefaultSize=function isc_Canvas_restoreDefaultSize(_1){var _2=_1?this.$o5:this.$o6,_3=this.getClass().getInstanceProperty(_2);if(!isc.isA.Number(_3)){if(_1)_3=this.defaultHeight;else _3=this.defaultWidth}
 var _4=this[_2]=(isc.isA.Number(_3)?_3:0);if(_1)this.$o8=_4;return _4}
-,isc.A.pageResize=function isc_Canvas_pageResize(){this.$rq=null;this.$77g=null;this.$qw()}
+,isc.A.pageResize=function isc_Canvas_pageResize(){this.$832=true;this.$rq=null;this.$77g=null;this.$qw();delete this.$832}
 ,isc.A.moveTo=function isc_Canvas_moveTo(_1,_2,_3,_4){if(!_4&&_1==null&&_2==null)return false;if(isc.$cv)arguments.$cw=this;if(_1!=null&&_1.top!=null){_2=_1.top;_1=_1.left}
 var _5=this.getDelta(this.$oz,_1,this.getLeft()),_6=this.getDelta(this.$o0,_2,this.getTop());return this.moveBy(_5,_6,_3,_4)}
 ,isc.A.moveToEvent=function isc_Canvas_moveToEvent(_1,_2){var _3=this.ns.EH.getLastEvent(),x=_3.x,y=_3.y;if(isc.isA.Number(_1))x-=_1;if(isc.isA.Number(_2))y-=_2;var _6=this.ns.EH;var _7=_6.getDragTarget(_3);var _8;if(_6.getDragTarget().canDrop){_8=_6.getDropTarget(_3);if(_8){if(!_7.snapOnDrop||!_8.shouldSnapOnDrop(_7)){_8=null}}else{_8=_6.getDragTarget(_3).parentElement}}else{_8=_6.getDragTarget(_3).parentElement}
@@ -2579,7 +2606,8 @@
 ,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)}}
 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.$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.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)
@@ -2594,7 +2622,7 @@
 ,isc.A.masterResized=function isc_Canvas_masterResized(_1,_2,_3){this.$qw()}
 ,isc.A.dragResized=function isc_Canvas_dragResized(){}
 ,isc.A.resizePeersBy=function isc_Canvas_resizePeersBy(_1,_2){var _3=this.peers;if(_3){for(var i=0;i<_3.length;i++){if(_3[i]&&_3[i].$jo){_3[i].resizeBy(_1,_2)}}}}
-,isc.A.layoutChildren=function isc_Canvas_layoutChildren(_1,_2,_3){if(this.children)this.$uf()}
+);isc.evalBoundary;isc.B.push(isc.A.layoutChildren=function isc_Canvas_layoutChildren(_1,_2,_3){if(this.children)this.$uf()}
 ,isc.A.$uf=function isc_Canvas__resolveChildPercentSizes(){var _1=this.children;if(_1!=null&&_1.length>0){for(var i=0;i<_1.length;i++){if(isc.isA.Canvas(_1[i]))_1[i].parentResized()}}}
 ,isc.A.resizeTo=function isc_Canvas_resizeTo(_1,_2,_3,_4){if(isc.$cv)arguments.$cw=this;if(_1==null&&_2==null)return false;var _5=this.getDelta(this.$o6,_1,this.getWidth()),_6=this.getDelta(this.$o5,_2,this.getHeight());return this.resizeBy(_5,_6,_3,_4)}
 ,isc.A.resizeToEvent=function isc_Canvas_resizeToEvent(_1){var _2=this.ns.EH,_3=_2.getLastEvent(),x=_3.x,y=_3.y,_6=this.getPageLeft(),_7=this.getPageTop(),_8=this.getPageRight(),_9=this.getPageBottom();var _10=_2.getDragTarget(_3);var _11=_2.getDragTarget(_3).parentElement;if(_11){if(_10.snapResizeToGrid==true||(_10.snapResizeToGrid==null&&_10.snapToGrid==true)||(_10.snapResizeToGrid==null&&(_11.childrenSnapResizeToGrid==true||(_11.childrenSnapResizeToGrid==null&&_11.childrenSnapToGrid==true)))){if(_11.snapAxis==isc.Canvas.HORIZONTAL||_11.snapAxis==isc.Canvas.BOTH){var _12=(_11.getPageLeft()+_11.getLeftBorderSize()+_11.getLeftMargin()-_11.getScrollLeft());x-=_12;x=_11.getHSnapPosition(x)+_11.getHSnapOrigin(_10);x+=_12}
@@ -2603,7 +2631,7 @@
 _1=_1||_2.resizeEdge||"BR";if(_1.contains("T")){var _13=Math.min(this.maxHeight,Math.max(_9-y,this.minHeight));_7=_9-_13}else if(_1.contains("B")){var _13=Math.min(this.maxHeight,Math.max(y-_7,this.minHeight));_9=_7+_13}
 if(_1.contains("L")){var _14=Math.min(this.maxWidth,Math.max(_8-x,this.minWidth));_6=_8-_14}else if(_1.contains("R")){var _14=Math.min(this.maxWidth,Math.max(x-_6,this.minWidth));_8=_6+_14}
 var _15=_8-_6,_16=_9-_7;this.setPageRect(_6,_7,_15,_16,true);_2.dragResizeWidth=_15;_2.dragResizeHeight=_16;if(this==this.ns.EH.dragTracker)this.redrawIfDirty()}
-);isc.evalBoundary;isc.B.push(isc.A.resizeTarget=function isc_Canvas_resizeTarget(_1,_2,_3,_4,_5,_6,_7){_5=_5||0;_4=_4||0;if(_6==null)_6=_2?isc.EH.getY():isc.EH.getX();_6+=_4;if(this.parentElement){var _8=this.getParentPageRect(),_9=_2?(_8[1]+_8[3]):(_8[0]+_8[2]);_9-=_2?this.getVisibleHeight():this.getVisibleWidth();if(_6>_9)_6=_9}
+,isc.A.resizeTarget=function isc_Canvas_resizeTarget(_1,_2,_3,_4,_5,_6,_7){_5=_5||0;_4=_4||0;if(_6==null)_6=_2?isc.EH.getY():isc.EH.getX();_6+=_4;if(this.parentElement){var _8=this.getParentPageRect(),_9=_2?(_8[1]+_8[3]):(_8[0]+_8[2]);_9-=_2?this.getVisibleHeight():this.getVisibleWidth();if(_6>_9)_6=_9}
 _7=_7!=null?_7:!_2&&this.isRTL();var _10=_2?_1.getMinHeight():_1.getMinWidth(),_11=_2?_1.getMaxHeight():_1.getMaxWidth();var _12;if(_7){_12=(_2?_1.getPageBottom():_1.getPageRight())
 -(_2?this.getVisibleHeight():this.getVisibleWidth())}else{_12=_2?_1.getPageTop():_1.getPageLeft()}
 var _13=!_7?_6-_12-_5:_12-_6-_5;if(_13<_10){_13=_10}else if(_13>_11){_13=_11}
@@ -2802,12 +2830,12 @@
 {var _5=0,_6=0;if(_4=="Page_Up")_6-=this.getViewportHeight();else if(_4=="Page_Down")_6+=this.getViewportHeight();else if(_4=="Arrow_Up")_6-=10;else if(_4=="Arrow_Down")_6+=10;else if(_4=="Arrow_Left")_5-=10;else if(_4=="Arrow_Right")_5+=10;if(_5!=0||_6!=0){this.scrollTo(this.scrollLeft+_5,this.scrollTop+_6);return false}
 if(_4=="Home"){this.scrollTo(null,0);return false}else if(_4=="End"){this.scrollTo(null,(this.getScrollHeight()-this.getViewportHeight()));return false}}
 return _3}
-,isc.A.$q5=function isc_Canvas__setHandleRect(_1,_2,_3,_4){if(this.showCustomScrollbars&&this.vscrollOn&&_1!=null&&this.isRTL()){_1+=this.getScrollbarSize()}
+);isc.evalBoundary;isc.B.push(isc.A.$q5=function isc_Canvas__setHandleRect(_1,_2,_3,_4){if(this.showCustomScrollbars&&this.vscrollOn&&_1!=null&&this.isRTL()){_1+=this.getScrollbarSize()}
 if(_3!=null||_4!=null){var _5=this.$sf(_3,_4);_3=_5[0];_4=_5[1]}
 var _6=this.getStyleHandle();if(_6){if(_1!=null&&isc.isA.Number(_1))this.$u9(_6,isc.Canvas.LEFT,_1);if(_2!=null&&isc.isA.Number(_2))this.$u9(_6,isc.Canvas.TOP,_2);if(_3!=null&&isc.isA.Number(_3))this.$u9(_6,this.$o6,Math.max(_3,1));if(_4!=null&&isc.isA.Number(_4))this.$u9(_6,this.$o5,Math.max(_4,1))}}
 ,isc.A.$u9=function isc_Canvas__assignSize(_1,_2,_3){if(isc.Browser.isIE||isc.Browser.isOpera){if(!isc.Browser.isStrict){_1[_2]=_3}else{if(_3<0&&(_2==this.$o6||_2==this.$o5))_3=0;_1[_2]=_3+this.$ph}}else{if(_1==null){return}
 _1[_2]=_3+this.$ph}}
-);isc.evalBoundary;isc.B.push(isc.A.$qi=function isc_Canvas__sizeBackMask(){var _1=this._backMask;if(!_1)return;if(this.showEdges){var _2=this.$l0,_3=this.maskEdgeCenterOnly,_4=_3?_2.$y4:_2.$tb,_5=_3?_2.$y5:_2.$tc,_6=_3?_2.$y6:_2.$td,_7=_3?_2.$y7:_2.$te,_8=this.getVisibleWidth()-(_4+_5),_9=this.getVisibleHeight()-(_6+_7);if(_8<=0||_9<=0)_1.hide();else{if(this.isVisible())_1.show();_1.setRect(this.getLeft()+_4,this.getTop()+_6,_8,_9)}}else{_1.setRect(this.getRect())}}
+,isc.A.$qi=function isc_Canvas__sizeBackMask(){var _1=this._backMask;if(!_1)return;if(this.showEdges){var _2=this.$l0,_3=this.maskEdgeCenterOnly,_4=_3?_2.$y4:_2.$tb,_5=_3?_2.$y5:_2.$tc,_6=_3?_2.$y6:_2.$td,_7=_3?_2.$y7:_2.$te,_8=this.getVisibleWidth()-(_4+_5),_9=this.getVisibleHeight()-(_6+_7);if(_8<=0||_9<=0)_1.hide();else{if(this.isVisible())_1.show();_1.setRect(this.getLeft()+_4,this.getTop()+_6,_8,_9)}}else{_1.setRect(this.getRect())}}
 ,isc.A.getTextDirection=function isc_Canvas_getTextDirection(){if(this.$81a)return this.$81a;var _1=this;while(_1){if(_1.textDirection!=null){return(this.$81a=_1.textDirection)}
 _1=_1.parentElement;if(_1&&_1.eventProxy)_1=_1.eventProxy}
 return(this.$81a=isc.Page.getTextDirection())}
@@ -2927,7 +2955,8 @@
 ,isc.A.$vz=function isc_Canvas__getPreviousTabWidget(){return this.$vy(true)}
 ,isc.A.$vv=function isc_Canvas__setNextTabWidget(_1,_2){if(!_2)this.$v4=_1;else this.$vw=_1}
 ,isc.A.$v0=function isc_Canvas__setPreviousTabWidget(_1){return this.$vv(_1,true)}
-,isc.A.$kf=function isc_Canvas__focusInNextTabElement(_1,_2){var _3=this;do{_3=(_1?_3.$vy():_3.$vz())}while(_3&&(isc.EH.targetIsMasked(_3,_2)||_3.isDisabled()||!_3.isDrawn()||!_3.isVisible()||!_3.$kk()))
+,isc.A.$kf=function isc_Canvas__focusInNextTabElement(_1,_2){if(isc.CanvasItem&&this.canvasItem!=null&&this.canvasItem.form!=null){this.canvasItem.form.$kf(_1,_2);return}
+var _3=this;do{_3=(_1?_3.$vy():_3.$vz())}while(_3&&(isc.EH.targetIsMasked(_3,_2)||_3.isDisabled()||!_3.isDrawn()||!_3.isVisible()||!_3.$kk())&&(!isc.CanvasItem||_3.canvasItem==null||_3.canvasItem.form==null))
 if(_3){this.logInfo("focusInNextTabElement() shifting focus to:"+_3,"syntheticTabIndex");_3.focusAtEnd(_1)}else if(_1){this.logInfo("focusInNextTabElement() shifting focus to first widget","syntheticTabIndex");if(isc.EH.$kj==null||(isc.EH.$kj==this&&(this.isDisabled()||!this.isDrawn()||!this.isVisible()||!this.$kk()||this.isMasked(_2))))
 {return}
 isc.EH.$kh(_2)}else{this.logInfo("focusInNextTabElement() shifting focus to last widget","syntheticTabIndex");if(isc.EH.$kl==null||(isc.EH.$kl==this&&(this.isDisabled()||!this.isDrawn()||!this.isVisible()||!this.$kk()||this.isMasked(_2))))
@@ -3042,7 +3071,7 @@
 ,isc.A.$mb=function isc_Canvas__showDragMask(){if(this._eventMask.visibility==isc.Canvas.HIDDEN)this._eventMask.show()}
 ,isc.A.$mc=function isc_Canvas__hideDragMask(){if(this._eventMask.visibility!=isc.Canvas.HIDDEN)this._eventMask.hide()}
 ,isc.A.handleDrop=function isc_Canvas_handleDrop(_1,_2){if(this.onDrop!=null&&(this.onDrop()==false))return false;return this.drop(_1,_2)}
-,isc.A.getHSnapPosition=function isc_Canvas_getHSnapPosition(_1,_2){if(!_2){_2=this.snapHDirection}
+);isc.evalBoundary;isc.B.push(isc.A.getHSnapPosition=function isc_Canvas_getHSnapPosition(_1,_2){if(!_2){_2=this.snapHDirection}
 if(_2!=isc.Canvas.BEFORE&&_2!=isc.Canvas.AFTER&&_2!=isc.Canvas.NEAREST){return _1}
 var _3=Math.floor(_1/ this.snapHGap)*this.snapHGap;var _4=_3+this.snapHGap;var _5=_3+this.snapHGap/ 2;if(_2==isc.Canvas.BEFORE){return _3}else if(_2==isc.Canvas.AFTER){return _4}else{if(_1<=_5)return _3;else return _4}}
 ,isc.A.getVSnapPosition=function isc_Canvas_getVSnapPosition(_1,_2){if(!_2){_2=this.snapVDirection}
@@ -3051,7 +3080,7 @@
 ,isc.A.shouldSnapOnDrop=function isc_Canvas_shouldSnapOnDrop(_1){return true}
 ,isc.A.noSnapDragOffset=function isc_Canvas_noSnapDragOffset(_1){return false}
 ,isc.A.setAppImgDir=function isc_Canvas_setAppImgDir(_1){if(_1)this.appImgDir=_1}
-);isc.evalBoundary;isc.B.push(isc.A.getAppImgDir=function isc_Canvas_getAppImgDir(){return isc.Page.getImgURL("",this.appImgDir)}
+,isc.A.getAppImgDir=function isc_Canvas_getAppImgDir(){return isc.Page.getImgURL("",this.appImgDir)}
 ,isc.A.setSkinImgDir=function isc_Canvas_setSkinImgDir(_1){if(_1)this.skinImgDir=_1}
 ,isc.A.getSkinImgDir=function isc_Canvas_getSkinImgDir(){return isc.Page.getSkinImgDir(this.skinImgDir)}
 ,isc.A.getImgURL=function isc_Canvas_getImgURL(_1,_2){return isc.Canvas.getImgURL(_1,_2,this)}
@@ -3104,7 +3133,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+530;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+532;isc.A=isc.Canvas;isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$hm="[SKIN]";isc.A.printOmitControls=["Button","StretchImgButton","ImgButton","MenuButton","Toolbar","ToolStrip","ButtonItem","ToolbarItem"];isc.A.printIncludeControls=["Label"];isc.A.$ws=0;isc.A.$wt="ID='";isc.A.$ob="'";isc.A.$wu="absmiddle";isc.A.$wv=[,,," eventpart='valueicon' style='vertical-align:middle;margin-left:",,"px;margin-right:",,"px;'"];isc.A.$ww={};isc.A.$wx={png:true,PNG:true,Png:true};isc.A.$wy=["<a",," href='",,"' target='",,"'",,,,">",,"</a>"];isc.A.$wz="[SKINIMG]/blank.gif";isc.A.$w0="0";isc.A.$w1="clearRedrawQueue";isc.A.$65j=[];isc.A.$65k=0;isc.A.$65l="clearDestroyQueue";isc.A.$tw=[];isc.B.push(isc.A.stripScriptTags=function isc_c_Canvas_stripScriptTags(_1){return _1.replace(/<script([^>]*)?>(.|\n|\r)*?<\/script>/ig,isc.emptyString)}
 ,isc.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)}
@@ -3180,6 +3209,7 @@
 isc.EH.$h2()}
 ,isc.A.$uv=function isc_c_Canvas__queueForDelayedAdjustOverflow(_1){if(!isc.Canvas.$xv)isc.Canvas.$xv=[];isc.Canvas.$xv.add(_1);if(!isc.Canvas.$xw){isc.Canvas.$xw=isc.Timer.setTimeout({target:isc.Canvas,methodName:"$xx"},isc.Canvas.$nn)}}
 ,isc.A.$xx=function isc_c_Canvas__clearDelayedAdjustOverflowQueue(){var _1=isc.Canvas.$xv;isc.Canvas.$xv=[];isc.Canvas.$xw=null;if(!_1||_1.length==0)return;for(var i=0;i<_1.length;i++){var _3=window[_1[i]];if(isc.isA.Canvas(_3))_3.adjustOverflow("delayed")}}
+,isc.A.checkForPageResize=function isc_c_Canvas_checkForPageResize(){isc.EH.$hr(true)}
 ,isc.A.scheduleDestroy=function isc_c_Canvas_scheduleDestroy(_1){if(!_1||_1.destroyed||_1.destroying||!_1.destroy)return;this.$65j.add(_1);if(!this.$65m){this.$65m=isc.Timer.setTimeout({target:isc.Canvas,methodName:this.$65l},this.$65k)}}
 ,isc.A.clearDestroyQueue=function isc_c_Canvas_clearDestroyQueue(){isc.EH.$h1("DSQ");var _1=isc.timeStamp();this.$65m=null;var _2=this.$65j;this.$65j=[];if(this.logIsDebugEnabled("destroys")){var _3="";for(var i=0;i<_2.length;i++){_3+=_2[i];if(i!=_2.length-1)_3+=", "}
 this.logDebug("clearDestroyQueue: "+_3,"destroys")}
@@ -3210,13 +3240,13 @@
 ,isc.A.snapToEdge=function isc_c_Canvas_snapToEdge(_1,_2,_3,_4,_5){var _6,_7,_8;if(isc.isAn.Array(_1)){_7=false;_8=[_1[1],_1[0]];_6=[_1[2],_1[3]]}else if(_3.masterElement){_7=(_3.percentBox==_3.$520),_6=[_7?_1.getViewportWidth():_1.getVisibleWidth(),_7?_1.getViewportHeight():_1.getVisibleHeight()];_8=[_1.getTop()+(_7?(_1.getTopBorderSize()+_1.getTopMargin()):0),_1.getLeft()+(_7?(_1.getLeftBorderSize()+_1.getLeftMargin()):0)]}else if(isc.isA.Canvas(_5)){_7=(_3.percentBox==_3.$520),_6=[_7?_5.getViewportWidth():_5.getVisibleWidth(),_7?_5.getViewportHeight():_5.getVisibleHeight()];_8=[_5.getPageTop()+(_7?(_5.getTopBorderSize()+_5.getTopMargin()):0),_5.getPageLeft()+(_7?(_5.getLeftBorderSize()+_5.getLeftMargin()):0)]}else{_7=true;_6=[_1.getViewportWidth(),_1.getViewportHeight()];_8=[0,0]}
 var _9=isc.Canvas.$52c(_2,_8,_6,false);var _10=isc.Canvas.$52c((_4||_2),_9,[_3.getVisibleWidth(),_3.getVisibleHeight()],true);if(_3.snapOffsetLeft!=null)_10[1]+=_3.snapOffsetLeft;if(_3.snapOffsetTop!=null)_10[0]+=_3.snapOffsetTop;_3.moveTo(_10[1],_10[0]);_3.$jo=false}
 ,isc.A.$52c=function isc_c_Canvas__getSnapPoint(_1,_2,_3,_4){var _5=_3[0],_6=_3[1];var _7;if(_1=="TL")_7=[0,0];else if(_1=="T")_7=[0,_5/ 2];else if(_1=="TR")_7=[0,_5];else if(_1=="R")_7=[_6/ 2,_5];else if(_1=="BR")_7=[_6,_5];else if(_1=="B")_7=[_6,_5/ 2];else if(_1=="BL")_7=[_6,0];else if(_1=="L")_7=[_6/ 2,0];else if(_1=="C")_7=[_6/ 2,_5/ 2];else _7=[0,0];_7[0]=Math.floor(_7[0]);_7[1]=Math.floor(_7[1]);if(_4)return[_2[0]-_7[0],_2[1]-_7[1]];else return[_2[0]+_7[0],_2[1]+_7[1]]}
-);isc.B._maxIndex=isc.C+43;isc.Canvas.registerStringMethods({resized:"deltaX,deltaY",showIf:"canvas",childRemoved:"child,name",peerRemoved:"peer,name",deparented:"oldParent,name",depeered:"oldMaster,name",focusChanged:"hasFocus",scrolled:null,hover:"",onDrop:"",visibilityChanged:"isVisible"});isc.Canvas.$yx=function(){var _1=isc.EH,_2={};for(var _3 in _1.eventTypes){this.registerStringMethods(_1.eventTypes[_3],_1.$i3);var _4=_1.eventTypes[_3];if(this.getInstanceProperty(_4)==null){_2[_4]=isc.Class.NO_OP}}
+);isc.B._maxIndex=isc.C+44;isc.Canvas.registerStringMethods({resized:"deltaX,deltaY",showIf:"canvas",childRemoved:"child,name",peerRemoved:"peer,name",deparented:"oldParent,name",depeered:"oldMaster,name",parentMoved:"parent,deltaX,deltaY",moved:"deltaX,deltaY",focusChanged:"hasFocus",scrolled:null,hover:"",onDrop:"",visibilityChanged:"isVisible"});isc.Canvas.$yx=function(){var _1=isc.EH,_2={};for(var _3 in _1.eventTypes){this.registerStringMethods(_1.eventTypes[_3],_1.$i3);var _4=_1.eventTypes[_3];if(this.getInstanceProperty(_4)==null){_2[_4]=isc.Class.NO_OP}}
 this.addMethods(_2)}
 isc.Canvas.$yx();isc.defineClass("BackMask","Canvas");isc.A=isc.BackMask.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.$lo=true;isc.A._generated=true;isc.A.useClipDiv=false;isc.A.hideUsingDisplayNone=isc.Browser.isMoz;isc.A.overflow=isc.Canvas.HIDDEN;isc.A.contents="<iframe width='100%' height='100%' border='0' frameborder='0' src=\""+isc.Page.getBlankFrameURL()+"\" marginwidth='0' marginheight='0' scrolling='no' tabIndex='-1' tabStop='false'></iframe>";isc.A.$ns=false;isc.A.$jo=false;isc.A.$jp=false;isc.A._redrawWithParent=false;isc.B.push(isc.A.masterMoved=function isc_BackMask_masterMoved(){this.masterElement.$qi()}
 ,isc.A.masterResized=function isc_BackMask_masterResized(){this.masterElement.$qi()}
 ,isc.A.draw=function isc_BackMask_draw(_1,_2,_3){if(this.suppressed)return this;if(!this.readyToDraw())return this;this.invokeSuper(isc.BackMask,this.$ny,_1,_2,_3);if(this.masterElement.overflow==isc.Canvas.VISIBLE)this.masterElement.$qi();return this}
 ,isc.A.show=function isc_BackMask_show(){if(!this.suppressed)this.invokeSuper(isc.BackMask,"show")}
-);isc.B._maxIndex=isc.C+4;isc.defineClass("ScreenSpan","Canvas");isc.A=isc.ScreenSpan.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A._generated=true;isc.A.src="[SKINIMG]/blank.gif";isc.A.redrawOnResize=false;isc.A.overflow="hidden";isc.B.push(isc.A.getInnerHTML=function isc_ScreenSpan_getInnerHTML(){if(!this.$yy){this.$yy=isc.Browser.isIE&&isc.Browser.version>6?isc.Canvas.imgHTML(this.src,1600,1200):isc.Canvas.spacerHTML(1600,1200)}
+);isc.B._maxIndex=isc.C+4;isc.defineClass("ScreenSpan","Canvas");isc.A=isc.ScreenSpan.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A._generated=true;isc.A.src="[SKINIMG]/blank.gif";isc.A.redrawOnResize=false;isc.A.overflow="hidden";isc.B.push(isc.A.getInnerHTML=function isc_ScreenSpan_getInnerHTML(){if(!this.$yy){this.$yy=isc.Browser.isIE&&isc.Browser.version>6?isc.Canvas.imgHTML(this.src,3200,2400):isc.Canvas.spacerHTML(3200,2400)}
 return this.$yy}
 ,isc.A.hide=function isc_ScreenSpan_hide(_1,_2,_3,_4){this.resizeTo(1,1);this.moveTo(null,-this.getHeight());return this.invokeSuper(isc.ScreenSpan,"hide",_1,_2,_3,_4)}
 ,isc.A.show=function isc_ScreenSpan_show(_1,_2,_3,_4){this.fitToScreen();isc.Page.setEvent("resize",this,isc.Page.FIRE_ONCE,"pageResized");return this.invokeSuper(isc.ScreenSpan,"show",_1,_2,_3,_4)}
@@ -3265,33 +3295,46 @@
 if(isc.isA.String(_1.imageSize)){_7=_1.imageSize}else{_3=_3||_1.imageSize;_4=_4||_1.imageSize}
 if(_2!=null){_3=_3||_2[_5]||_2[_7];_4=_4||_2[_6]||_2[_7]}
 return{width:_3,height:_4}}
-,isc.A.$70m=function isc_c_Canvas__clearFieldValue(_1,_2){if(!_2||_1==null||isc.isAn.emptyString(_1))return;var _3=_1.contains(this.$70l);if(_3){var _4=_1.split(this.$70l),_5=[];if(isc.isAn.emptyString(_4.last()))_4.length-=1;for(var i=0;i<_4.length;i++){if(isc.isAn.emptyString(_4[i]))continue;if(_2==null){_5.length=0;break}
-_5.add(_2);if(i==_4.length-1){delete _2[_4[i]]}else{_2=_2[_4[i]]}}
-for(var i=_5.length-1;i>0;i--){if(isc.isAn.emptyObject(_5[i])){delete _5[i-1][_4[i-1]]}}}else{delete _2[_1]}}
-,isc.A.$70n=function isc_c_Canvas__saveFieldValue(_1,_2,_3){if(_3==null)return;var _4=_1.contains(this.$70l);if(_4){_1.trim(isc.Canvas.$70l);var _5=_1.split(this.$70l);for(var i=0;i<_5.length;i++){if(isc.isAn.emptyString(_5[i]))continue;if(i==_5.length-1){_3[_5[i]]=_2}else{var _7=_3[_5[i]]
-if(!isc.isAn.Object(_7)||isc.isA.Date(_7))
-{_3[_5[i]]={}}else if(isc.isAn.Array(_7)){var _8=(parseInt(_5[i+1])==_5[i+1])
-if(!_8){this.logInfo("saving a field value in a nested data object: overwriting "+"an array"+this.echo(_3[_5[i]])+" with an object with nested values.");_3[_5[i]]={}}}
-_3=_3[_5[i]]}}}else{_3[_1]=_2}
-return _3}
-,isc.A.$70o=function isc_c_Canvas__getFieldValue(_1,_2){if(_2==null)return;if(_1==null)return;var _3=_1.contains(this.$70l);if(_3){var _4=_1.split(this.$70l);if(isc.isAn.emptyString(_4.last()))_4.length-=1;for(var i=0;i<_4.length;i++){if(isc.isAn.emptyString(_4[i]))continue;if(i==_4.length-1){return _2[_4[i]]}else{if(_2[_4[i]]==null)return;_2=_2[_4[i]]}}}else{return _2[_1]}}
+,isc.A.$833=function isc_c_Canvas__performActionOnValue(_1,_2,_3,_4,_5,_6,_7,_8){if(!_3||_2==null||isc.isAn.emptyString(_2))return;var _9=_3;var _10=_2.contains(this.$70l);if(_10){_2=_2.trim(isc.Canvas.$70l);var _11=_2.split(this.$70l),_12=[],_13;if(_11[0]&&_3[_11[0]]===_13&&(!_8||_3[_8]===_13)&&_1=="get"&&!_7)
+{if(_4&&isc.ValuesManager&&isc.isA.ValuesManager(_4.valuesManager))
+{return this.$833(_1,_2,_4.valuesManager.getValues(),_4,_5,_6,true,_8)}}
+if(isc.isAn.emptyString(_11.last()))_11.length-=1;for(var i=0;i<_11.length;i++){if(isc.isAn.emptyString(_11[i]))continue;if(_3==null){_12.length=0;break}
+_12.add(_3);if(i==_11.length-1){if(_1=="get"){return _3[_11[i]]}else if(_1=="clear"){delete _3[_11[i]]}else if(_1=="save"){_3[_11[i]]=_6}}else{_3=_3[_11[i]];if(_3===_13&&_8!==_13){if(_1=="get"){return _9[_8]}else if(_1=="clear"){delete _9[_8]}else if(_1=="save"){_9[_8]=_6}}
+if(isc.isAn.Array(_3)){var _15=null;var _16=(parseInt(_11[i+1])==_11[i+1])
+if(_16){_15=parseInt(_11[i+1])
+_11.removeAt(i+1)}else if(_4&&_4.selectionComponent){var _17=isc.Canvas.$70l,_18=_4,_19;for(var j=0;j<=i;j++){_17+=_11[j]+isc.Canvas.$70l}
+_17=_17.trim(isc.Canvas.$70l);_18=_4.selectionComponent;while(_18){var _21=_18.dataPath;if(_21)_21=_21.trim(isc.Canvas.$70l);if(_17==_21){var _22=_18.getSelectedRecord();if(_22){_15=_18.getRecordIndex(_22)}else{_19=true}
+break}
+_18=_18.selectionComponent}
+if(_15==null){if(!_19&&_5){_15=0}else{return}}}else{if(_5){_15=0}else{return}}
+_3=_3[_15]}}}
+if(_1=="clear"){for(var i=_12.length-1;i>0;i--){if(isc.isAn.emptyObject(_12[i])){delete _12[i-1][_11[i-1]]}}}}else{if(_1=="get")return _3[_2];else if(_1=="clear")delete _3[_2];else if(_1=="save")_3[_2]=_6}}
+,isc.A.$70m=function isc_c_Canvas__clearFieldValue(_1,_2,_3,_4){var _5=this.$84y(_1,_3);this.$833("clear",_1,_2,_3,_4,null,false,_5)}
+,isc.A.$70n=function isc_c_Canvas__saveFieldValue(_1,_2,_3,_4,_5){var _6=this.$84y(_1,_4);this.$833("save",_1,_3,_4,_5,_2,false,_6);return _3}
+,isc.A.$70o=function isc_c_Canvas__getFieldValue(_1,_2,_3,_4){var _5=this.$84y(_1,_3);return this.$833("get",_1,_2,_3,_4,null,false,_5)}
+,isc.A.$84y=function isc_c_Canvas__getFlatFieldName(_1,_2){if(_2&&_2.getField){var _3=_2.getField(_1);if(_3)return _3.name}}
 ,isc.A.$702=function isc_c_Canvas__combineDataPaths(_1,_2){if(_1==null)return""+_2;if(_2==null)return _1+"";if(isc.isA.String(_2)&&_2.startsWith(this.$70l))_2=_2.substring(1);if(isc.isA.String(_1)&&_1.endsWith(this.$70l)){return _1+_2}else{return _1+this.$70l+_2}}
-);isc.B._maxIndex=isc.C+5;isc.A=isc.Canvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showComplexFields=true;isc.A.exportIncludeSummaries=true;isc.A.ignoreEmptyCriteria=true;isc.A.dragRecategorize=false;isc.A.duplicateDragMessage="Duplicates not allowed";isc.A.showOfflineMessage=true;isc.A.offlineMessage="This data not available while offline";isc.A.offlineMessageStyle="offlineMessage";isc.A.offlineSaveMessage="Data cannot be saved because you are not online";isc.A.addDropValues=true;isc.A.fieldIdProperty="name";isc.A.dataArity="multiple";isc.A.autoTrackSelection=true;isc.A.$308={date:true,DateItem:true};isc.A.$301="false;";isc.A.$18r="false";isc.A.styleOpposite="cellHiliteOpposite";isc.A.hiliteProperty="_hilite";isc.A.hiliteMarker="$63i";isc.A.$578=0;isc.A.$579=[];isc.A.dragDataAction=isc.Canvas.MOVE;isc.A.dragTrackerStyle="gridDragTracker";isc.A.canExport=true;isc.A.canPrint=true;isc.A.panelControls=["action:edit","action:editNew","action:sort","action:export","action:print"];isc.A.dbcProperties=["autoFetchData","autoFetchTextMatchStyle","autoFetchAsFilter","dataSource"];isc.A.badFormulaResultValue=".";isc.A.missingSummaryFieldValue="-";isc.A.canAddFormulaFields=false;isc.A.addFormulaFieldText="Add formula column...";isc.A.editFormulaFieldText="Edit formula...";isc.A.removeFormulaFieldText="Remove formula";isc.A.canAddSummaryFields=false;isc.A.addSummaryFieldText="Add summary column...";isc.A.editSummaryFieldText="Edit summary format...";isc.A.removeSummaryFieldText="Remove summary column..";isc.A.formulaFieldNamePrefix="formulaField";isc.A.summaryFieldNamePrefix="summaryField";isc.A.uniqueFieldNamePrefix="field";isc.A.exportDataChunkSize=50;isc.A.emptyExportMessage="You are attempting to export an empty dataset";isc.A.unknownErrorMessage="Invalid value";isc.A.$685=["isInteger","isFloat","isBoolean","isString"];isc.A.$746="partial";isc.A.$75a={};isc.A.$75b=null;isc.B.push(isc.A.initializeValuesManager=function isc_Canvas_initializeValuesManager(){var _1=this.valuesManager;delete this.valuesManager;if(_1!=null){if(isc.ValuesManager==null){this.logWarn("Widget initialized with specified 'valuesManager' proprety but "+"ValuesManager class is not loaded. This functionality requires the "+"Forms module.");return}
+);isc.B._maxIndex=isc.C+7;isc.A=isc.Canvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.showComplexFields=true;isc.A.exportIncludeSummaries=true;isc.A.ignoreEmptyCriteria=true;isc.A.dragRecategorize=false;isc.A.duplicateDragMessage="Duplicates not allowed";isc.A.showOfflineMessage=true;isc.A.offlineMessage="This data not available while offline";isc.A.offlineMessageStyle="offlineMessage";isc.A.offlineSaveMessage="Data cannot be saved because you are not online";isc.A.addDropValues=true;isc.A.fieldIdProperty="name";isc.A.dataArity="multiple";isc.A.autoTrackSelection=true;isc.A.$308={date:true,DateItem:true};isc.A.$301="false;";isc.A.$18r="false";isc.A.styleOpposite="cellHiliteOpposite";isc.A.hiliteProperty="_hilite";isc.A.hiliteMarker="$63i";isc.A.$578=0;isc.A.$579=[];isc.A.dragDataAction=isc.Canvas.MOVE;isc.A.dragTrackerStyle="gridDragTracker";isc.A.canExport=true;isc.A.canPrint=true;isc.A.panelControls=["action:edit","action:editNew","action:sort","action:export","action:print"];isc.A.dbcProperties=["autoFetchData","autoFetchTextMatchStyle","autoFetchAsFilter","dataSource"];isc.A.badFormulaResultValue=".";isc.A.missingSummaryFieldValue="-";isc.A.canAddFormulaFields=false;isc.A.addFormulaFieldText="Add formula column...";isc.A.editFormulaFieldText="Edit formula...";isc.A.removeFormulaFieldText="Remove formula";isc.A.canAddSummaryFields=false;isc.A.addSummaryFieldText="Add summary column...";isc.A.editSummaryFieldText="Edit summary format...";isc.A.removeSummaryFieldText="Remove summary column..";isc.A.formulaFieldNamePrefix="formulaField";isc.A.summaryFieldNamePrefix="summaryField";isc.A.uniqueFieldNamePrefix="field";isc.A.exportDataChunkSize=50;isc.A.emptyExportMessage="You are attempting to export an empty dataset";isc.A.unknownErrorMessage="Invalid value";isc.A.$685=["isInteger","isFloat","isBoolean","isString"];isc.A.$746="partial";isc.A.$75a={};isc.A.$75b=null;isc.B.push(isc.A.setValuesManager=function isc_Canvas_setValuesManager(_1){if(_1)_1.addMember(this)}
+,isc.A.initializeValuesManager=function isc_Canvas_initializeValuesManager(){var _1=this.valuesManager;delete this.valuesManager;if(_1!=null){if(isc.ValuesManager==null){this.logWarn("Widget initialized with specified 'valuesManager' property but "+"ValuesManager class is not loaded. This functionality requires the "+"Forms module.");return}
 if(isc.isA.ValuesManager(_1)){_1.addMember(this)}else if(isc.isA.ValuesManager(window[_1])){window[_1].addMember(this)}else if(isc.isA.String(_1)){isc.ValuesManager.create({ID:_1,dataSource:this.dataSource,members:[this]})}else{this.logWarn("Widget initialized with invalid 'valuesManager' property:"+isc.Log.echo(_1)+", clearing this property out")}}}
 ,isc.A.setDataPath=function isc_Canvas_setDataPath(_1){this.dataPath=_1;if(this.getFields==null||this.getFields()==null)return;if(_1==null){delete this.$704;if(this.valuesManager&&this.$703){this.valuesManager.removeMember(this);delete this.$703}
 return}
 var _2;var _3=this;while(_3&&(!_3.valuesManager||_3.$703)&&!_3.dataSource)
 {if(_3.dataPath){if(_2){_2=isc.Canvas.$702(_3.dataPath,_2)}else{_2=_3.dataPath}}
 _3=_3.parentElement}
-this.$704=_2;if(_3){if(_3!=this){if(_3.valuesManager==null){_3.createDefaultValuesManager()}
+this.$704=_2;if(_3){if(_3!=this||!this.dataSource){if(_3.valuesManager==null){_3.createDefaultValuesManager()}
+var _4=isc.isA.DynamicForm(this)?this.$834:this.getFields();_4=_4||this.getFields();if(_3.valuesManager.getDataSource()){this.setDataSource(_3.valuesManager.getDataSource(),_4)}
 _3.valuesManager.addMember(this,true)}}}
 ,isc.A.getFullDataPath=function isc_Canvas_getFullDataPath(){return this.$704||this.dataPath}
+,isc.A.buildFieldDataPath=function isc_Canvas_buildFieldDataPath(_1,_2){var _3=_2.dataPath||_2.name;if(_1&&!_3.startsWith("/")){_3=_1+"/"+_3}
+return!_3?null:_3.replace(/^\/*/,"")}
 ,isc.A.createDefaultValuesManager=function isc_Canvas_createDefaultValuesManager(_1){if(!_1)_1=[];_1.add(this);isc.ValuesManager.create({members:_1,ID:this.getID()+"$705",dataSource:this.dataSource})}
-,isc.A.getDataPathField=function isc_Canvas_getDataPathField(_1){var _2=this.getDataSource(),_3=_1.split(isc.slash),_4;if(!_2)return;for(var i=0;i<_3.length;i++){var _6=_3[i];_4=_2.getField(_6);_2=_4?_2.getSchema(_4.type):_2;if(_4==null){this.logWarn("Unable to find dataSource field matching specified dataPath: '"+_1+"'");return}}
-return _4}
+,isc.A.getDataPathField=function isc_Canvas_getDataPathField(_1){var _2=this.getDataSource(),_3=_1.split(isc.slash),_4;if(!_2)return;for(var i=0;i<_3.length;i++){var _6=_3[i],_7=_2.getField(_6);_2=_7?(_2.getSchema(_7.type)||_2):_2;if(_7==null){this.logWarn("Unable to find dataSource field matching specified dataPath: '"+_1+"'");return}}
+return _7}
 ,isc.A.registerWithDataView=function isc_Canvas_registerWithDataView(_1){if(!this.inputDataPath)return;_1=this.parentElement;while(_1&&!isc.isA.DataView(_1))_1=_1.parentElement;if(!_1){this.logWarn("Component initialized with an inputDataPath property, but no DataView "+"was found in the parent hierarchy. inputDataPath is only applicable to "+"DataBoundComponents and FormItems being managed by a DataView");return}
 _1.registerItem(this)}
-,isc.A.bindToDataSource=function isc_Canvas_bindToDataSource(_1,_2){if(this.dataPath)this.setDataPath(this.dataPath);if(this.dataSource==null&&this.data!=null)this.dataSource=this.data.dataSource;var _3=this.fields||this.items;if(isc.isAn.Array(_3))this.originalFields=_3.duplicate();var _4=this.getDataSource();if(_4!=null&&isc.isA.String(_4)){this.logWarn("unable to look up DataSource: "+_4+", databinding will not be used");return _1}
+,isc.A.bindToDataSource=function isc_Canvas_bindToDataSource(_1,_2){if(this.dataPath)this.setDataPath(this.dataPath);if(this.dataSource==null&&this.data!=null)this.dataSource=this.data.dataSource;var _3=this.fields||this.items;if(isc.isAn.Array(_3))this.originalFields=_3.duplicate();var _4=this.getDataSource();if(_4==null&&this.valuesManager&&this.valuesManager.getDataSource){_4=this.valuesManager.getDataSource()}
+if(_4!=null&&isc.isA.String(_4)){this.logWarn("unable to look up DataSource: "+_4+", databinding will not be used");return _1}
 var _5=(_1==null||_1.length==0),_6;if(_4){var _7=this.useFlatFields;if(_7==null)_7=_4.useFlatFields;_6=_7?_4.getFlattenedFields():_4.getFields()}
 if(_4==null||_6==null){if(_1!=null&&isc.SimpleType){for(var i=0;i<_1.length;i++){if(_1[i].type==null&&this.$308[_1[i].editorType]==true)
 {_1[i].type="date"}
@@ -3304,14 +3347,15 @@
 if(this.useAllDataSourceFields||_2){var _13=this;var _14=_4.combineFieldOrders(_6,_1,function(_10,_4){return _13.shouldUseField(_10,_4)});for(var i=0;i<_14.length;i++){var _10=_14[i];if(!_1.containsProperty("name",_10.name)){if(_2&&_10.showIf==null){_10.showIf="return false"}}else{if(_10.includeFrom!=null&&_4.getField(_10.name)==null){this.$785(_10)}}}
 this.addFieldValidators(_14);return _14}else{for(var i=0;i<_1.length;i++){var _10=_1[i];if(!_10)continue;_10=this.combineFieldData(_10)}
 this.addFieldValidators(_1);return _1}}}
-,isc.A.combineFieldData=function isc_Canvas_combineFieldData(_1){var _2=this.getDataSource();if(_1.dataPath){isc.DataSource.combineFieldData(_1,this.getDataPathField(_1.dataPath));return _1}else if(_2.getField(_1.name)){return _2.combineFieldData(_1)}else if(_1.includeFrom!=null){return this.$785(_1)}
+,isc.A.combineFieldData=function isc_Canvas_combineFieldData(_1){var _2=this.getDataSource();if(this.getFullDataPath()||_1.dataPath){var _3=this.buildFieldDataPath(this.getFullDataPath(),_1);isc.DataSource.combineFieldData(_1,this.getDataPathField(_3));return _1}else if(_2!=null&&_2.getField(_1.name)){return _2.combineFieldData(_1)}else if(_1.includeFrom!=null){return this.$785(_1)}
 return _1}
 ,isc.A.$785=function isc_Canvas__combineIncludeFromFieldData(_1){var _2=_1.includeFrom.split(".");if(_2==null||_2.length!=2){this.logWarn("This component includes a field with includeFrom set to:"+_1.includeFrom+". Format not understood.")}else{var _3=isc.DataSource.get(_2[0]),_4=_2[1];if(_3==null){this.logWarn("Field specifies includeFrom:"+_1.includeFrom+". Unable to find dataSource with ID:"+_2[0])}else{if(_1.name==null)_1.name=_4;return _3.combineFieldData(_1,_3.getField(_4))}}}
 ,isc.A.shouldUseField=function isc_Canvas_shouldUseField(_1,_2){if(_1.hidden&&!this.showHiddenFields)return false;if(_1.canFilter==false&&this.showFilterFieldsOnly){return false}
 if(_1.detail&&!this.showDetailFields)return false;if(!this.showComplexFields&&_2.fieldIsComplexType(_1.name))return false;return true}
 ,isc.A.addFieldValidators=function isc_Canvas_addFieldValidators(_1){if(_1==null)return;for(var i=0;i<_1.length;i++){var _3=_1[i];if(_3.required){var _4=this.getRequiredValidator(_3),_5=_4.errorMessage;if(!_3.validators){_3.validators=[_4]}else{if(!isc.isAn.Array(_3.validators)){_3.validators=[_3.validators]}
 if(!_3.validators.containsProperty("type",_4.type)){if(_3.validators.$69){_3.validators=_3.validators.duplicate()}
-_3.validators.add(_4)}else if(_5!=null){var _6=this.getDataSource(),v=_3.validators.find("type",_4.type);if(v.errorMessage==null||(_6&&v.errorMessage==_6.requiredMessage)){v.errorMessage=_5}}}}}}
+_3.validators.add(_4)}else if(_5!=null){var _6=this.getDataSource(),v=_3.validators.find("type",_4.type);if(v.errorMessage==null||(_6&&v.errorMessage==_6.requiredMessage)){v.errorMessage=_5}}}}else if(_3.required==false){var _8=_3.validators;if(_3.validators!=null){var _9=_3.validators.findIndex("type","required");if(_9!=-1){_3.validators.removeAt(_9)}}}
+if(_3.multiple&&_3.validateEachItem==null)_3.validateEachItem=true}}
 ,isc.A.getRequiredValidator=function isc_Canvas_getRequiredValidator(_1){var _2={type:"required"},_3=_1.requiredMessage||this.requiredMessage;if(_3!=null)_2.errorMessage=_3;return _2}
 ,isc.A.getAllFields=function isc_Canvas_getAllFields(){return this.completeFields||this.fields}
 ,isc.A.getField=function isc_Canvas_getField(_1){if(!this.fields)return null;return isc.Class.getArrayItem(_1,this.fields,this.fieldIdProperty)}
@@ -3325,11 +3369,11 @@
 return _1}
 ,isc.A.getFieldState=function isc_Canvas_getFieldState(_1){var _2=[];var _3=this.getAllFields();if(_3){for(var i=0;i<_3.length;i++){var _5=_3[i],_6=_5[this.fieldIdProperty],_7=this.getStateForField(_6,_1);_2.add(_7)}}
 return isc.Comm.serialize(_2,false)}
-,isc.A.getStateForField=function isc_Canvas_getStateForField(_1,_2){var _3=this.getAllFields().find(this.fieldIdProperty,_1),_4={name:_1};if(!this.fieldShouldBeVisible(_3))_4.visible=false;if(_3.userFormula)_4.userFormula=_3.userFormula;if(_3.userSummary)_4.userSummary=_3.userSummary;if(_2||_3.userSummary||_3.userFormula){_4.title=_3.title}
+,isc.A.getStateForField=function isc_Canvas_getStateForField(_1,_2){var _3=this.getAllFields().find(this.fieldIdProperty,_1),_4={name:_1};if(_3.frozen==true)_4.frozen=true;if(!this.fieldShouldBeVisible(_3))_4.visible=false;if(_3.userFormula)_4.userFormula=_3.userFormula;if(_3.userSummary)_4.userSummary=_3.userSummary;if(_2||_3.userSummary||_3.userFormula){_4.title=_3.title}
 if(this.getSpecifiedFieldWidth)_4.width=this.getSpecifiedFieldWidth(_3);if(_3.autoFitWidth)_4.autoFitWidth=true;return _4}
 ,isc.A.$31y=function isc_Canvas__setFieldState(_1,_2){if(_1==null)return;var _3=this.getAllFields();var _4=_3.getProperty(this.fieldIdProperty),_5=[];for(var i=0;i<_1.length;i++){var _7=_1[i],_8=_3.find(this.fieldIdProperty,_7.name);if(_8==null){if(_7.userFormula||_7.userSummary){_8={};_8[this.fieldIdProperty]=_7.name}else continue}
 _4.remove(_7.name);if(_7.visible==false){_8.showIf=this.$18r}else{_8.showIf=null;_8.detail=false}
-if(_7.width!=null&&!isNaN(_7.width))_8.width=_7.width;if(_7.title)_8.title=_7.title;if(_7.userFormula!=null)_8.userFormula=_7.userFormula;if(_7.userSummary!=null)_8.userSummary=_7.userSummary;if(_7.autoFitWidth)_8.autoFitWidth=true;_5.add(_8)}
+if(_7.width!=null&&(!isNaN(_7.width)||_7.width=="*"))_8.width=_7.width;if(_7.frozen!=null)_8.frozen=_7.frozen;if(_7.title)_8.title=_7.title;if(_7.userFormula!=null)_8.userFormula=_7.userFormula;if(_7.userSummary!=null)_8.userSummary=_7.userSummary;if(_7.autoFitWidth!=_8.autoFitWidth)_8.autoFitWidth=_7.autoFitWidth;_5.add(_8)}
 for(var i=0;i<_4.length;i++){var _9=_4[i],_10=_3.findIndex(this.fieldIdProperty,_9),_8=_3[_10],_11=_3[_10-1];if(_2)_8.showIf=this.$18r;if(_11!=null){var _12=_5.indexOf(_11);if(_12!=-1){_5.addAt(_8,_12+1);continue}}
 if(this.fieldShouldBeVisible(_8,_10)&&!_2){_5.addAt(_8,this.$31z(_5)+1)}else{_5.add(_8)}}
 return _5}
@@ -3349,7 +3393,7 @@
 ,isc.A.lookupSchema=function isc_Canvas_lookupSchema(){var _1;if(this.serviceName)_1=isc.WebService.getByName(this.serviceName,this.serviceNamespace);else _1=isc.WebService.get(this.serviceNamespace);if((this.serviceNamespace||this.serviceName)&&_1==null){this.logWarn("Could not find WebService definition: "+(this.serviceName?"serviceName: "+this.serviceName:"")+(this.serviceNamespace?"   serviceNamespace: "+this.serviceNamespace:""))}
 if(!isc.isA.String(this.dataSource)){this.logWarn("this.dataSource was not a String in lookupSchema");return}
 var _2;if(_1)_2=_1.getSchema(this.dataSource);return _2||this.dataSource}
-,isc.A.fieldValuesAreEqual=function isc_Canvas_fieldValuesAreEqual(_1,_2,_3){if(_2==_3)return true;if(_1==null)return false;if(_1.type=="date"){if(isc.isA.Date(_2)&&isc.isA.Date(_3)){return(Date.compareDates(_2,_3)==0)}}else if(_1.type=="valueMap"){if(isc.isAn.Array(_2)&&isc.isAn.Array(_3)){return _2.equals(_3)}else if(isc.isAn.Object(_2)&&isc.isAn.Object(_3)){for(var i in _2){if(_3[i]!=_2[i])return false}
+,isc.A.fieldValuesAreEqual=function isc_Canvas_fieldValuesAreEqual(_1,_2,_3){if(_2==_3)return true;if(_1==null)return false;if(_1.type=="date"){if(isc.isA.Date(_2)&&isc.isA.Date(_3)){return(Date.compareLogicalDates(_2,_3)==0)}}else if(_1.type=="datetime"){if(isc.isA.Date(_2)&&isc.isA.Date(_3)){return(Date.compareDates(_2,_3)==0)}}else if(_1.type=="valueMap"){if(isc.isAn.Array(_2)&&isc.isAn.Array(_3)){return _2.equals(_3)}else if(isc.isAn.Object(_2)&&isc.isAn.Object(_3)){for(var i in _2){if(_3[i]!=_2[i])return false}
 for(var j in _3){if(_2[j]!=_3[j])return false}
 return true}}
 return false}
@@ -3365,7 +3409,8 @@
 ,isc.A.exportData=function isc_Canvas_exportData(_1){if(!_1)_1={};var _2=this.getSort();if(_2)_1.sortBy=isc.DS.getSortBy(_2);else if(this.sortField)_1.sortBy=(!this.sortDirection?"-":"")+this.sortField;if(!_1.textMatchStyle){var _3=this.data.context;if(_3&&_3.textMatchStyle)_1.textMatchStyle=_3.textMatchStyle}
 if(!this.exportAll&&!_1.exportFields){var _4=this.exportFields;if(!_4){_4=[];for(var i=0;i<this.fields.length;i++){var _6=this.fields.get(i);if(this.$71s(_6)){_4.add(_6.name);if(_6.displayField&&!_6.optionDataSource)_4.add(_6.displayField)}}}
 if(_4&&_4.length>0)_1.exportFields=_4}
-this.getDataSource().exportData(this.getCriteria(),_1)}
+var _7=_1.exportFields||this.exportFields||this.fields;var _8={};for(var i=0;i<_7.length;i++){var _6=_7[i];if(isc.isA.String(_6))_6=this.getField(_6);_8[_6.name]=_6.exportTitle||_6.title}
+_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}
@@ -3383,7 +3428,7 @@
 {if(_4.additionalOutputs==null)_4.additionalOutputs="";else _4.additionalOutputs+=",";_4.additionalOutputs+=[_5[i].name,_5[i].includeFrom].join(":")}}}
 if(_2==null){_2={}}else if(isc.isA.Class(_2)){_2=isc.DynamicForm.getFilterCriteria(_2)}
 this.filterWithCriteria(_2,_4.operation,_4)}
-,isc.A.filterWithCriteria=function isc_Canvas_filterWithCriteria(_1,_2,_3){_3.prompt=(_3.prompt||isc.RPCManager.fetchDataPrompt);var _4=_1;if(this.ignoreEmptyCriteria){_4=isc.DataSource.filterCriteriaForFormValues(_1)}
+,isc.A.filterWithCriteria=function isc_Canvas_filterWithCriteria(_1,_2,_3){_3.prompt=(_3.prompt||isc.RPCManager.fetchDataPrompt);var _4=_1;if(this.ignoreEmptyCriteria){_4=isc.DataSource.filterCriteriaForFormValues(_1)}else{_4=isc.addProperties({},_4)}
 _4=isc.DS.checkEmptyCriteria(_4);var _5=this.getData();if(this.useExistingDataModel(_1,_2,_3)){this.updateDataModel(_4,_2,_3)}else{_5=this.createDataModel(_4,_2,_3)}
 this.setData(_5);if(!_3.$326&&this.requestVisibleRows!=null){var _6=this.data,_7=_6.fetchDelay;_6.fetchDelay=0;this.requestVisibleRows();_6.fetchDelay=_7}}
 ,isc.A.useExistingDataModel=function isc_Canvas_useExistingDataModel(_1,_2,_3){var _4=this.getData();if(!isc.isA.ResultSet(_4))return false;var _5=_4.getOperationId("fetch");return _5==null||_5==_2.ID}
@@ -3424,17 +3469,18 @@
 _1.clearProperty(this.selectionProperty||this.selection?this.selection.selectionProperty:null);return _2?_1:_1[0]}
 ,isc.A.getSelection=function isc_Canvas_getSelection(_1){if(!this.selection)return null;if(this.canSelectCells){var _2=this.selection.getSelectedCells();if(_2==null)return null;var _3=[];for(var i=0;i<_2.length;i++){var _5=_2[i],_6=this.getCellRecord(_5[0],_5[1]);if(_6==null)continue;_3.add(_6)}
 return _3}else{return this.selection.getSelection(_1)}}
+,isc.A.getSelectedRecords=function isc_Canvas_getSelectedRecords(_1){return this.getSelection(_1)}
 ,isc.A.getSelectedRecord=function isc_Canvas_getSelectedRecord(){if(!this.selection)return null;return this.selection.getSelectedRecord()}
 ,isc.A.getSelectionObject=function isc_Canvas_getSelectionObject(){return this.selection}
 ,isc.A.isSelected=function isc_Canvas_isSelected(_1){if(!_1||!this.selection)return false;return this.selection.isSelected(_1)}
 ,isc.A.isPartiallySelected=function isc_Canvas_isPartiallySelected(_1){if(!_1||!this.selection)return false;return this.selection.isPartiallySelected(_1)}
-,isc.A.selectRecord=function isc_Canvas_selectRecord(_1,_2,_3){this.selectRecords(_1,_2,_3);this.fireSelectionUpdated()}
-,isc.A.selectSingleRecord=function isc_Canvas_selectSingleRecord(_1){this.deselectAllRecords();this.selectRecord(_1);this.fireSelectionUpdated()}
-,isc.A.deselectRecord=function isc_Canvas_deselectRecord(_1,_2){this.selectRecord(_1,false,_2);this.fireSelectionUpdated()}
+,isc.A.selectRecord=function isc_Canvas_selectRecord(_1,_2,_3){this.selectRecords(_1,_2,_3)}
+,isc.A.selectSingleRecord=function isc_Canvas_selectSingleRecord(_1){this.selection.deselectAll();this.selectRecord(_1)}
+,isc.A.deselectRecord=function isc_Canvas_deselectRecord(_1,_2){this.selectRecord(_1,false,_2)}
 ,isc.A.selectRecords=function isc_Canvas_selectRecords(_1,_2,_3){if(_2==null)_2=true;if(!isc.isAn.Array(_1))_1=[_1];if(isc.isA.ResultSet(this.data)&&!this.data.lengthIsKnown()){this.logWarn("ignoring attempt to select records while data is loading");return}
 for(var i=0;i<_1.length;i++){if(_1[i]==null)continue;if(isc.isA.Number(_1[i])){var _5=_1[i];_1[i]=this.getRecord(_5,_3)}}
 var _6=this.getSelectionObject(_3);if(_6){_6.selectList(_1,_2,_3);this.fireSelectionUpdated()}}
-,isc.A.deselectRecords=function isc_Canvas_deselectRecords(_1,_2){this.selectRecords(_1,false);this.fireSelectionUpdated()}
+,isc.A.deselectRecords=function isc_Canvas_deselectRecords(_1,_2){this.selectRecords(_1,false)}
 ,isc.A.selectAllRecords=function isc_Canvas_selectAllRecords(){this.selection.selectAll();this.fireSelectionUpdated()}
 ,isc.A.deselectAllRecords=function isc_Canvas_deselectAllRecords(){this.selection.deselectAll();this.fireSelectionUpdated()}
 ,isc.A.anySelected=function isc_Canvas_anySelected(){return this.selection&&this.selection.anySelected()}
@@ -3501,11 +3547,11 @@
 ,isc.A.$67u=function isc_Canvas__storeTransferState(_1,_2,_3,_4,_5,_6){if(!isc.isAn.Array(this.$67k))this.$67k=[];if(this.$67l&&this.$67l!=0){isc.logWarn("transferRecords was invoked but the prior transfer is not yet complete - \
                      the transfer will be queued up to run after the current transfer");this.$67k.add({implementation:_1,dropRecords:_2,targetRecord:_3,index:_4,sourceWidget:_5,callback:_6});return false}
 this.$67k.addAt({implementation:_1,dropRecords:_2,targetRecord:_3,index:_4,sourceWidget:_5,callback:_6},0);this.$67m=true;this.$67n=[];this.$67l=0;return true}
-,isc.A.updateDataViaDataSource=function isc_Canvas_updateDataViaDataSource(_1,_2,_3,_4){var _5=this;if(this.updateOperation){if(_3==null)_3={};isc.addProperties(_3,{operationId:this.updateOperation})}
+);isc.evalBoundary;isc.B.push(isc.A.updateDataViaDataSource=function isc_Canvas_updateDataViaDataSource(_1,_2,_3,_4){var _5=this;if(this.updateOperation){if(_3==null)_3={};isc.addProperties(_3,{operationId:this.updateOperation})}
 if(!this.preventDuplicates){if(!_4.$67v)_4.$67v=0;_4.$67v++;_2.updateData(_1,function(_7,_8,_9){_4.$67w(_7,_8,_9)},_3);return}
 var _6=this.getCleanRecordData(_1);if(this.data.find(_6,null,Array.DATETIME_VALUES)){isc.Log.logDebug("Found client-side duplicate, skipping update for '"+_1[isc.firstKey(_1)]+"'","dragDrop");this.$67n.add(this.getCleanRecordData(_1))}else{if(this.data.allMatchingRowsCached()){if(!_4.$67v)_4.$67v=0;_4.$67v++;_2.updateData(_1,function(_7,_8,_9){_4.$67w(_7,_8,_9)},_3)}else{isc.Log.logDebug("Incrementing dup query count: was "+_5.$67l,"dragDrop");this.$67l++;_2.fetchData(_6,function(_7,_8,_9){if(_8&&_8.length>0){isc.Log.logDebug("Found server-side duplicate, skipping update for '"+_1[isc.firstKey(_1)]+"'","dragDrop");_5.$67n.add(_5.getCleanRecordData(_8[0]))}else{if(!_4.$67v)_4.$67v=0;_4.$67v++;_2.updateData(_1,function(_7,_8,_9){_4.$67w(_7,_8,_9)},_3)}
 isc.Log.logDebug("Decrementing dup query count: was "+_5.$67l,"dragDrop");if(--_5.$67l==0&&!_5.$67m){if(_4.dragDataAction==isc.Canvas.MOVE){isc.Log.logDebug("Invoking transferDragData from inside callback","dragDrop");_4.transferDragData(_5.$67n,_5);delete _5.$67n;if(!_5.$67o)isc.rpc.sendQueue()}}},{sendNoQueue:true})}}}
-);isc.evalBoundary;isc.B.push(isc.A.$61d=function isc_Canvas__addIfNotDuplicate(_1,_2,_3,_4,_5,_6){var _7=this.getDataSource(),_8,_9=this,_10={};if(this.addOperation){isc.addProperties(_10,{operationId:this.addOperation})}
+,isc.A.$61d=function isc_Canvas__addIfNotDuplicate(_1,_2,_3,_4,_5,_6){var _7=this.getDataSource(),_8,_9=this,_10={};if(this.addOperation){isc.addProperties(_10,{operationId:this.addOperation})}
 if(_7)_8=_7.getPrimaryKeyFields();if(_7){var _11;if(_8&&isc.firstKey(_8)!=null){for(var _12 in _8){if(_8[_12].type=="sequence"){_11=true;break}}}
 if(_11){var _13;for(var _12 in _8){_1[_12]=_13}
 if(!_3.$67v)_3.$67v=0;_3.$67v++;_7.addData(_1,function(_15,_16,_17){_3.$67w(_15,_16,_17)},_10);return true}}
@@ -3520,7 +3566,7 @@
 isc.addProperties(_7,_3)}else if(_4&&_5&&isc.firstKey(_5)!=null){_7=isc.applyMask(_1,_5)}else{_7=this.getCleanRecordData(_1)}
 if(this.data.find(_7,null,Array.DATETIME_VALUES))return true;else return false}
 ,isc.A.getCleanRecordData=function isc_Canvas_getCleanRecordData(_1){if(isc.Tree&&isc.isA.Tree(this.data)){return this.data.getCleanNodeData(_1,false)}
-var _2={};for(var _3 in _1){if(_3.startsWith("_selection_"))continue;_2[_3]=_1[_3]}
+var _2={};for(var _3 in _1){if(_3.startsWith("_selection_"))continue;if(_3=="$81y")continue;if(_3=="$29a")continue;_2[_3]=_1[_3]}
 return _2}
 ,isc.A.$67w=function isc_Canvas__updateComplete(_1,_2,_3){if(this.$67v){isc.Log.logDebug("Decrementing update count - was "+this.$67v,"dragDrop");this.$67v-=1}
 if(!this.$67v){isc.Log.logDebug("All updates complete, calling dragComplete()","dragDrop");if(isc.isA.Function(this.dragComplete))this.dragComplete()}}
@@ -3588,17 +3634,17 @@
 if(!_4.userSummary.text)this.logError("Summary field does not have text format");var _12=[],_13={},_14={};var _15=(_9&&_9!="");for(var _16 in _4.userSummary.summaryVars){var _17=_4.userSummary.summaryVars[_16],_18=this.getField(_17);if(!_18)_12.add(_17);else{_13[_16]=_18;var _19=this.getRecordHiliteCSSText(_3,null,_18);if(_19){_14[_16]=_19;_15=true}}}
 if(!_15)return;if(_12.length!=0&&_9){if(_7){_1[_2]={style:this.convertCSSToProperties(_9,_6),value:_10}}else{_1[_2]=this.convertCSSToProperties(_9,_6)}
 return}
-var _20=null,_21=null,_22=[];var _23=this;var _24=function(_35,_36){if(_35){_35=_23.htmlUnescapeExportFieldValue(_35);if(_20&&_21==_36){_20.value+=_35}else{if(_20)_22.push(_20);_20={value:_35};_21=_36;if(_36)_20.style=_23.convertCSSToProperties(_36,_6)}}};var _25=_4.userSummary.text.split("#"),_26=/^\{([A-Z]+)\}/;if(_25[0])_24(_25[0],_9);for(var i=1;i<_25.length;i++){var _28=_25[i],_29,_30,_31,_32,_33,_34;_31=_28.charAt(0);_30=_13[_31];if(_30)_34=_28.substr(1);else if(_29=_28.match(_26)){_34=_28.substr(_29[0].length);_31=_29[1];_30=_13[_31];if(_30)_34=this.missingSummaryFieldValue+_34}else _34="#"+_28;if(_30){_32=this.getExportFieldValue(_3,_30.name,this.getFieldNum(_30.name));_33=null;if(_9)_33=(_33||"")+_9;if(_14[_31])_33=(_33||"")+_14[_31]}
+var _20=null,_21=null,_22=[];var _23=this;var _24=function(_35,_36){if(_35){_35=_23.htmlUnescapeExportFieldValue(_35);if(_20&&_21==_36){_20.value+=_35}else{if(_20)_22.push(_20);_20={value:_35};_21=_36;if(_36)_20.style=_23.convertCSSToProperties(_36,_6)}}};var _25=_4.userSummary.text.split("#"),_26=/^\{([A-Z]+)\}/;if(_25[0])_24(_25[0],_9);for(var i=1;i<_25.length;i++){var _28=_25[i],_29,_30,_31,_32,_33,_34;_31=_28.charAt(0);_30=_13[_31];if(_30)_34=_28.substr(1);else if(_29=_28.match(_26)){_34=_28.substr(_29[0].length);_31=_29[1];_30=_13[_31];if(!_30)_34=this.missingSummaryFieldValue+_34}else _34="#"+_28;if(_30){_32=this.getExportFieldValue(_3,_30.name,this.getFieldNum(_30.name));_33=null;if(_9)_33=(_33||"")+_9;if(_14[_31])_33=(_33||"")+_14[_31]}
 _24(_32,_33);_24(_34,_9)}
 if(_20)_22.push(_20);_1[_2]=_22}
 ,isc.A.getClientExportData=function isc_Canvas_getClientExportData(_1,_2){var _3=this.originalData||this.data,_4=[],_5=this.getClientExportFields(_1),_6,_7,_8,_9;if(isc.isA.Object(_1)){if(_1.exportData!=null)_3=_1.exportData;_6=_1.includeHiddenFields;_7=_1.allowedProperties;_8=_1.includeCollapsedNodes;_9=_1.alwaysExportExpandedStyles;if(_1&&_1.exportFields){if(_6!==false)_6=true}}
 if(isc.isA.ResultSet(_3))_3=_3.getAllLoadedRows();if(isc.isA.Tree(_3)){if(_8)_3=_3.getAllNodes();else _3=_3.getOpenList()}
-var _10={settings:_1,callback:_2,chunkSize:this.exportDataChunkSize,data:_3,exportData:_4,fields:_5,includeHiddenFields:_6,allowedProperties:_7,includeCollapsedNodes:_8,alwaysExportExpandedStyles:_9,totalRows:_3.getLength(),startRow:0,endRow:Math.min(this.exportDataChunkSize,_3.getLength())};_10.firstTimeStamp=_10.thisTimeStamp=isc.timeStamp();this.logWarn("starting export chunking process - "+_10.firstTimeStamp);this.getClientExportDataChunk(_10);return}
+var _10={settings:_1,callback:_2,chunkSize:this.exportDataChunkSize,data:_3,exportData:_4,fields:_5,includeHiddenFields:_6,allowedProperties:_7,includeCollapsedNodes:_8,alwaysExportExpandedStyles:_9,totalRows:_3.getLength(),startRow:0,endRow:Math.min(this.exportDataChunkSize,_3.getLength())};_10.firstTimeStamp=_10.thisTimeStamp=isc.timeStamp();this.logInfo("starting export chunking process - "+_10.firstTimeStamp,"export");this.getClientExportDataChunk(_10);return}
 ,isc.A.getClientExportDataChunk=function isc_Canvas_getClientExportDataChunk(_1){var _2=_1.settings,_3=_1.data,_4=_1.exportData,_5=_1.fields,_6=_1.includeHiddenFields,_7=_1.allowedProperties,_8=_1.includeCollapsedNodes,_9=_1.alwaysExportExpandedStyles,_10=_1.totalRows,_11=_1.startRow,_12=_1.endRow;for(var _13=_11;_13<_12;_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}
-if(_1.endRow<_1.totalRows){_1.lastTimeStamp=_1.thisTimeStamp;_1.thisTimeStamp=isc.timeStamp();if(this.logIsInfoEnabled("export")){this.logInfo("processed "+_1.endRow+" rows - starting next chunk - "+((_1.thisTimeStamp-_1.lastTimeStamp)/1000))}
+if(_1.endRow<_1.totalRows){_1.lastTimeStamp=_1.thisTimeStamp;_1.thisTimeStamp=isc.timeStamp();if(this.logIsInfoEnabled("export")){this.logInfo("processed "+_1.endRow+" rows - starting next chunk - "+((_1.thisTimeStamp-_1.lastTimeStamp)/1000),"export")}
 _1.startRow=_1.endRow;_1.endRow=Math.min(_1.startRow+_1.chunkSize,_1.totalRows);return this.delayCall("getClientExportDataChunk",[_1],0)}
 if(this.showGridSummary&&this.summaryRow&&this.exportIncludeSummaries){var _16=this.summaryRow,_3=[_16.$71q];for(var _13=0;_13<_3.getLength();_13++){var _14=_3[_13],_15=this.getRecordExportObject(_14,_5,_7,_6,_8,_9);_4.push(_15)}}
-if(_1.callback){var _3=_1.exportData;if(this.logIsInfoEnabled("export")){this.logInfo("finished processing "+_1.endRow+" rows - about to export - "+isc.timestamp())}
+if(_1.callback){var _3=_1.exportData;if(this.logIsInfoEnabled("export")){this.logInfo("finished processing "+_1.endRow+" rows - about to export - "+isc.timestamp(),"export")}
 this.fireCallback(_1.callback,"data,context",[_3,_1.settings])}}
 ,isc.A.getClientExportFields=function isc_Canvas_getClientExportFields(_1){var _2=this.getAllFields();if(isc.isA.Object(_1)){if(_1&&_1.exportFields){var _3=[];for(var i=0;i<_2.length;i++){if(_1.exportFields.contains(_2[i].name))_3.add(_2[i])}
 _2=_3}}
@@ -3623,14 +3669,19 @@
 if(_3){return{dateFormatter:_3,rawValue:_2}}}
 ,isc.A.exportClientData=function isc_Canvas_exportClientData(_1){this.getClientExportData(_1,this.getID()+".exportClientDataReply(data,context)");return}
 ,isc.A.exportClientDataReply=function isc_Canvas_exportClientDataReply(_1,_2){if(_1==null||_1.length==0){isc.warn(this.emptyExportMessage)}
-var _3=_2||{},_4=_3.exportAs?_3.exportAs:"csv",_5=_3.exportFilename?_3.exportFilename:"export",_6=_3.exportDisplay?_3.exportDisplay:"download";var _7={showPrompt:false,transport:"hiddenFrame",exportResults:true,downloadResult:true,downloadToNewWindow:(_6=="window"),download_filename:(_6=="window"?_5:null)};var _8={exportAs:_3.exportAs,exportDelimiter:_3.exportDelimiter,exportFields:_3.exportFields,exportHeader:_3.exportHeader,exportFooter:_3.exportFooter,exportTitleSeparatorChar:_3.exportTitleSeparatorChar,lineBreakStyle:_3.lineBreakStyle};isc.DMI.callBuiltin({methodName:"downloadClientExport",arguments:[_1,_4,_5,_6,_8],requestParams:_7})}
+var _3=_2||{},_4=_3.exportAs?_3.exportAs:"csv",_5=_3.exportFilename?_3.exportFilename:"export",_6=_3.exportDisplay?_3.exportDisplay:"download";var _7={showPrompt:false,transport:"hiddenFrame",exportResults:true,downloadResult:true,downloadToNewWindow:(_6=="window"),download_filename:(_6=="window"?_5:null)};var _8={exportAs:_3.exportAs,exportDelimiter:_3.exportDelimiter,exportHeader:_3.exportHeader,exportFooter:_3.exportFooter,exportTitleSeparatorChar:_3.exportTitleSeparatorChar,lineBreakStyle:_3.lineBreakStyle};if(_3.exportFields){var _9=this.getAllFields(),_10=[],_11=[];for(var i=0;i<_3.exportFields.length;i++){var _13=_3.exportFields[i],_14=_9.find("name",_13),_15=_14?(_14.exportTitle?_14.exportTitle:_14.title):null;if(_15){var _16=this.htmlUnescapeExportFieldTitle(_15);_16=_16.replace("\n"," ");if(_15!=_16&&_1&&_1.length){for(var j=0;j<_1.length;j++){_1[j][_16]=_1[j][_15];delete _1[j][_15]}}
+_10.add(_16)}else{_11.add(_13)}}
+if(_11.length>0){this.logWarn("exportFields was specified but contains the following field-names "+"that are not available in this component: "+_11.join(",")+".")}
+if(_10.length>0)_8.exportFields=_10}
+isc.DMI.callBuiltin({methodName:"downloadClientExport",arguments:[_1,_4,_5,_6,_8],requestParams:_7})}
 ,isc.A.getSort=function isc_Canvas_getSort(){return this.$73p?isc.shallowClone(this.$73p):null}
 ,isc.A.setSort=function isc_Canvas_setSort(_1){this.$73p=isc.shallowClone(_1);if(this.data&&this.$73p&&this.$73p.length>0){if(this.data.setSort)this.data.setSort(this.$73p);else if(this.data.sortByProperty){var _2=this.$73p[0];this.data.sortByProperty(_2.property,Array.shouldSortAscending(_2.direction),_2.normalizer,_2.context)}}}
 ,isc.A.askForSort=function isc_Canvas_askForSort(){if(isc.MultiSortDialog&&this.canMultiSort!=false){isc.MultiSortDialog.askForSort(this,this.getSort(),this.getID()+".multiSortReply(sortLevels)")}}
 ,isc.A.multiSortReply=function isc_Canvas_multiSortReply(_1){if(_1!=null){this.setSort(_1)}}
 ,isc.A.addValidationError=function isc_Canvas_addValidationError(_1,_2,_3){var _4=false;if(isc.isAn.Array(_3)){for(var i=0;i<_3.length;i++){_4=this.addValidationError(_1,_2,_3[i])||_4}
 return _4}
-if(!_1[_2]){_1[_2]=_3;_4=true}else{if(!isc.isAn.Array(_1[_2]))_1[_2]=[_1[_2]];if(!_1[_2].contains(_3)){_1[_2].add(_3);_4=true}}
+var _6=_2.contains(this.$70l);if(_6){var _7=_1,_8=_2.trim(this.$70l).split();for(var i=0;i<_8.length;i++){if(!_7[_8[i]]){if(i<_8.length-1){if(parseInt(_8[i+1])==_8[i+1]){_7[_8[i]]=[]}else{_7[_8[i]]={}}}else{_7[_8[i]]=_3;_4=true}}
+_7=_7[_8[i]]}}else{if(!_1[_2]){_1[_2]=_3;_4=true}else{if(!isc.isAn.Array(_1[_2]))_1[_2]=[_1[_2]];if(!_1[_2].contains(_3)){_1[_2].add(_3);_4=true}}}
 return _4}
 ,isc.A.isFieldDependentOnOtherField=function isc_Canvas_isFieldDependentOnOtherField(_1,_2){if(!_1.validators)return false;var _3=this.getDataSource();for(var i=0;i<_1.validators.length;i++){var _5=_1.validators[i];if(!_5)continue;if(!_5.$74r&&_5.applyWhen&&_3!=null){_5.$74r=_3.getCriteriaFields(_5.applyWhen)}
 if(_5.dependentFields&&_5.dependentFields.contains(_2)){return true}
@@ -3688,7 +3739,19 @@
 ,isc.A.hideField=function isc_Canvas_hideField(_1){if(_1==null||isc.isAn.emptyString(_1))return;var _2=this.getField(_1);if(_2){_2.hidden=true;this.redraw()}}
 ,isc.A.setFieldCanEdit=function isc_Canvas_setFieldCanEdit(_1,_2){if(_1==null||isc.isAn.emptyString(_1))return;var _3=this.getField(_1);if(_3){_3.canEdit=_2;this.redraw()}}
 ,isc.A.isOffline=function isc_Canvas_isOffline(){if(this.data&&this.data.$78c)return true;return false}
-);isc.B._maxIndex=isc.C+173;isc.ClassFactory.defineClass("MathFunction","Class");isc.A=isc.MathFunction;isc.A.$65z={};isc.A=isc.MathFunction;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.registerFunction=function isc_c_MathFunction_registerFunction(_1){if(!this.$65z[_1.name]){this.$65z[_1.name]=_1}}
+,isc.A.setSelectionComponent=function isc_Canvas_setSelectionComponent(_1,_2){if(!_1){if(this.selectionComponent!=null){this.ignore(this.selectionComponent,"selectionChanged");this.ignore(this.selectionComponent,"cellSelectionChanged")}
+delete this.selectionComponent;if(this.valuesManager){this.ignore(this.valuesManager,"$71e")}}else{var _3=_1;if(isc.isA.String(_1))_1=window[_1];if(!_1||!isc.isA.Canvas(_1)||_1.dataArity!="multiple"){this.logWarn("setSelectionComponent() - selection component specified as:"+_3+" this is not a valid component");return}
+if(!_1.getSelection){this.logWarn("setSelectionComponent() - specified selection component:"+_1+" does not support selection - ignoring");return}
+if(!_2&&this.selectionComponent){if(this.selectionComponent==_1)return
+if(this.isObserving(this.selectionComponent,"selectionChanged")){this.ignore(this.selectionComponent,"selectionChanged")}
+if(this.isObserving(this.selectionComponent,"cellSelectionChanged")){this.ignore(this.selectionComponent,"cellSelectionChanged")}}
+this.selectionComponent=_1;if(!this.selectionComponent.useCellRecords){this.observe(this.selectionComponent,"selectionChanged","observer.selectionComponentSelectionChanged(observed, record,state)")}else{this.observe(this.selectionComponent,"cellSelectionChanged","observer.selectionComponentCellSelectionChanged(observed, cellList)")}
+var _4=this.selectionComponent.getSelection}}
+,isc.A.selectionComponentSelectionChanged=function isc_Canvas_selectionComponentSelectionChanged(_1,_2,_3){if(!_3){if(this.dataArity=="single"){_2=null}else{return}}
+if(this.dataArity=="single"){this.setData(_2)}else{var _4=this.dataPath.split("/");this.setData(_2[_4[_4.length-1]]);if(this.dataArity=="multiple"&&isc.isA.Function(this.deselectAllRecords)){this.deselectAllRecords()}}}
+,isc.A.selectionComponentCellSelectionChanged=function isc_Canvas_selectionComponentCellSelectionChanged(_1,_2){for(var i=0;i<_2.length;i++){var _4=_2[i],_5=this.selectionComponent.getCellRecord(_4[0],_4[1]);if(_1.cellIsSelected(_5))break;_5=null}
+if(_5){this.$71d=_1.getPrimaryKeys(_5);this.editRecord(_5)}}
+);isc.B._maxIndex=isc.C+179;isc.ClassFactory.defineClass("MathFunction","Class");isc.A=isc.MathFunction;isc.A.$65z={};isc.A=isc.MathFunction;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.registerFunction=function isc_c_MathFunction_registerFunction(_1){if(!this.$65z[_1.name]){this.$65z[_1.name]=_1}}
 ,isc.A.getRegisteredFunctionNames=function isc_c_MathFunction_getRegisteredFunctionNames(){return isc.getKeys(this.$65z)}
 ,isc.A.getDefaultFunctionNames=function isc_c_MathFunction_getDefaultFunctionNames(){var _1=this.getDefaultFunctions(),_2=_1.makeIndex("name",false);return isc.getKeys(_2)}
 ,isc.A.getRegisteredFunctions=function isc_c_MathFunction_getRegisteredFunctions(){return isc.getValues(this.$65z)}
@@ -3772,6 +3835,7 @@
 ,isc.A.encodeDate=function isc_JSONEncoder_encodeDate(_1){if(this.dateFormat=="dateConstructor"){return _1.$eu()}else{return'"'+_1.toSchemaDate()+'"'}}
 ,isc.A.$eu=function isc_JSONEncoder__serialize(_1,_2,_3){if(!_3){if(_1&&_1.getID)_3=_1.getID();else _3=""}
 if(_1==null)return null;if(isc.isA.String(_1))return(_1.asSource!=null?_1.asSource():String.asSource(_1));if(isc.isA.Function(_1))return null;if(isc.isA.Number(_1)||isc.isA.SpecialNumber(_1))return _1;if(isc.isA.Boolean(_1))return _1;if(isc.isA.Date(_1))return this.encodeDate(_1);if(isc.isAn.Instance(_1)){if(this.serializeInstances=="skip")return null;else if(this.serializeInstances=="short")return isc.echoLeaf(_1)}
+if(isc.isA.Class(_1)){if(this.serializeInstances=="skip")return null;else if(this.serializeInstances=="short")return isc.echoLeaf(_1)}
 var _4=isc.JSONEncoder.$zl(this.objRefs,_1);if(_4!=null&&_3.contains(_4)){var _5=_3.substring(_4.length,_4.length+1);if(_5=="."||_5=="["||_5=="]"){var _6=this.circularReferenceMode;if(_6=="marker"){return"'"+this.circularReferenceMarker+"'"}else if(_6=="path"){return"'"+this.circularReferenceMarker+":"+_4+"'"}else{return null}}}
 if(_1==window){this.logWarn("Serializer encountered the window object at path: "+_3+" - returning null for this slot.");return null}
 isc.JSONEncoder.$zm(this.objRefs,_1,_3);if(isc.isA.Function(_1.$eu))return _1.$eu(_2,this.objRefs,_3);if(isc.isAn.Array(_1))return this.$zn(_1,_3,this.objRefs,_2);var _7;if(_1.getSerializeableFields){_7=_1.getSerializeableFields([],[])}else{_7=_1}
@@ -4021,7 +4085,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-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -4032,7 +4096,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -4214,7 +4278,7 @@
 ,isc.A.isAnimating=function isc_Canvas_isAnimating(_1){if(_1==null)return this.$743>0;if(_1&&!isc.isAn.Array(_1)){if(!this.$745)this.$745=[];this.$745[0]=_1;_1=this.$745}
 if(!_1)_1=this.$0g;for(var i=0;i<_1.length;i++){if(this[this.$0w(_1[i])]!=null){return true}}
 return false}
-);isc.B._maxIndex=isc.C+30;isc.ClassFactory.defineClass("StatefulCanvas","Canvas");isc.A=isc.StatefulCanvas;isc.A.STATE_UP="";isc.A.STATE_DOWN="Down";isc.A.STATE_OVER="Over";isc.A.STATE_DISABLED="Disabled";isc.A.BUTTON="button";isc.A.CHECKBOX="checkbox";isc.A.RADIO="radio";isc.A.FOCUSED="Focused";isc.A.SELECTED="Selected";isc.A.UNSELECTED="";isc.A.$1z={};isc.A=isc.StatefulCanvas.getPrototype();isc.A.state="";isc.A.showFocusedAsOver=true;isc.A.showDisabled=true;isc.A.actionType="button";isc.A.cursor=isc.Canvas.ARROW;isc.A.capSize=0;isc.A.align=isc.Canvas.CENTER;isc.A.valign=isc.Canvas.CENTER;isc.A.autoFitDirection=isc.Canvas.BOTH;isc.A.iconSize=16;isc.A.iconOrientation="left";isc.A.iconSpacing=6;isc.A.showIconState=true;isc.A.showDisabledIcon=true;isc.A.overCanvasConstructor="Canvas";isc.A.overCanvasDefaults={mouseOut:function(){if(isc.EH.getTarget()!=this.creator)this.clear();return this.Super("mouseOut",arguments)}};isc.A=isc.StatefulCanvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$42d="visualState";isc.A.$54k="SelectedFocused";isc.A.labelDefaults={$kk:function(){return this.masterElement.$kk()},focusChanged:function(_1){if(this.hasFocus)this.eventProxy.focus()},getContents:function(){return this.masterElement.getTitleHTML()},adjustOverflow:function(_1,_2,_3,_4){this.invokeSuper(null,"adjustOverflow",_1,_2,_3,_4);this.masterElement.$10()}};isc.A.$11="label";isc.A.$12="Label overflowed.";isc.A.$64x="$5y";isc.B.push(isc.A.initWidget=function isc_StatefulCanvas_initWidget(){if(this.src==null)this.src=this.vertical?this.vSrc:this.hSrc;var _1=!this.isDisabled();if(!_1){this.$42e=this.state;if(this.showDisabled)this.state=isc.StatefulCanvas.STATE_DISABLED}
+);isc.B._maxIndex=isc.C+30;isc.ClassFactory.defineClass("StatefulCanvas","Canvas");isc.A=isc.StatefulCanvas;isc.A.STATE_UP="";isc.A.STATE_DOWN="Down";isc.A.STATE_OVER="Over";isc.A.STATE_DISABLED="Disabled";isc.A.BUTTON="button";isc.A.CHECKBOX="checkbox";isc.A.RADIO="radio";isc.A.FOCUSED="Focused";isc.A.SELECTED="Selected";isc.A.UNSELECTED="";isc.A.$1z={};isc.A=isc.StatefulCanvas.getPrototype();isc.A.state="";isc.A.showFocusedAsOver=true;isc.A.showDisabled=true;isc.A.actionType="button";isc.A.cursor=isc.Canvas.ARROW;isc.A.capSize=0;isc.A.align=isc.Canvas.CENTER;isc.A.valign=isc.Canvas.CENTER;isc.A.autoFitDirection=isc.Canvas.BOTH;isc.A.iconSize=16;isc.A.iconOrientation="left";isc.A.iconSpacing=6;isc.A.showIconState=true;isc.A.showDisabledIcon=true;isc.A.overCanvasConstructor="Canvas";isc.A.overCanvasDefaults={mouseOut:function(){if(isc.EH.getTarget()!=this.creator)this.clear();return this.Super("mouseOut",arguments)}};isc.A=isc.StatefulCanvas.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$42d="visualState";isc.A.$54k="SelectedFocused";isc.A.labelDefaults={$kk:function(){return this.masterElement.$kk()},focusChanged:function(_1){if(this.hasFocus)this.eventProxy.focus()},getContents:function(){return this.masterElement.getTitleHTML()},adjustOverflow:function(_1,_2,_3,_4){this.invokeSuper(null,"adjustOverflow",_1,_2,_3,_4);if(this.masterElement)this.masterElement.$10()}};isc.A.$11="label";isc.A.$12="Label overflowed.";isc.A.$64x="$5y";isc.B.push(isc.A.initWidget=function isc_StatefulCanvas_initWidget(){if(this.src==null)this.src=this.vertical?this.vSrc:this.hSrc;var _1=!this.isDisabled();if(!_1){this.$42e=this.state;if(this.showDisabled)this.state=isc.StatefulCanvas.STATE_DISABLED}
 this.baseStyle=this.baseStyle||this.className;this.styleName=(this.suppressClassName?null:this.getStateName());this.className=this.styleName;if(this.radioGroup!=null){var _2=this.radioGroup;this.radioGroup=null;this.addToRadioGroup(_2)}
 this.setAutoFit(this.autoFit,true);if(this.shouldShowLabel())this.makeLabel()}
 ,isc.A.shouldShowLabel=function isc_StatefulCanvas_shouldShowLabel(){return this.showTitle}
@@ -4498,7 +4562,8 @@
 ,isc.A.$3p=function isc_Layout__reportNewSize(_1,_2,_3,_4){if(!this.logIsDebugEnabled(this.$2g))return;var _5=_4?_2.$pn:_2.$po;if(_5!=_1){this.logDebug("new user "+(_4?"width: ":"height: ")+_5+" for member "+_2+", oldSize: "+_1+" reason: "+_3+(this.logIsDebugEnabled("userSize")?this.getStackTrace():""),"layout")}}
 ,isc.A.childVisibilityChanged=function isc_Layout_childVisibilityChanged(_1,_2){if(!this.members.contains(_1))return;if(!_1.isDrawn())this.$2s=true;this.reflow("member changed visibility: "+_1);if(_1.$3f&&_1.$3f.showGrip&&_1.$3f.showClosedGrip){if(_1.$3f.label)_1.$3f.label.stateChanged()}
 this.$t6("child visibility changed")}
-,isc.A.pageResize=function isc_Layout_pageResize(){this.Super("pageResize",arguments);this.reflow("pageResize")}
+,isc.A.pageResize=function isc_Layout_pageResize(){var _1=this.$3i;this.Super("pageResize",arguments);if(this.isDrawn()&&(this.$3i==null||_1==this.$3i))
+{this.reflow("pageResize")}}
 ,isc.A.sectionHeaderClick=function isc_Layout_sectionHeaderClick(_1){var _2=_1.section;if(_2==null)return;if(!isc.isAn.Array(_2))_2=[_2];var _3=false;for(var i=0;i<_2.length;i++){if(isc.isA.String(_2[i]))_2[i]=window[_2[i]];if(_2[i].visibility!="hidden")_3=true}
 if(_3){_2.map("hide");_1.setExpanded(false)}else{_2.map("show");_1.setExpanded(true)}}
 ,isc.A.getMember=function isc_Layout_getMember(_1){var _2=this.getMemberNumber(_1);if(_2==-1)return null;return this.members[_2]}
@@ -4575,8 +4640,8 @@
 ,isc.A.dropOver=function isc_Layout_dropOver(){if(!this.willAcceptDrop())return;this.showDropLine();isc.EventHandler.dragTarget.bringToFront();return true}
 ,isc.A.dropMove=function isc_Layout_dropMove(){if(!this.willAcceptDrop())return;this.showDropLine()}
 ,isc.A.dropOut=function isc_Layout_dropOut(){this.hideDropLine()}
-,isc.A.dropStop=function isc_Layout_dropStop(){this.hideDropLine()}
-);isc.evalBoundary;isc.B.push(isc.A.getDropComponent=function isc_Layout_getDropComponent(_1,_2){if(!isc.isA.Palette(_1))return _1;var _3=_1.transferDragData(),_4=(isc.isAn.Array(_3)?_3[0]:_3);return _4.liveObject}
+);isc.evalBoundary;isc.B.push(isc.A.dropStop=function isc_Layout_dropStop(){this.hideDropLine()}
+,isc.A.getDropComponent=function isc_Layout_getDropComponent(_1,_2){if(!isc.isA.Palette(_1))return _1;var _3=_1.transferDragData(),_4=(isc.isAn.Array(_3)?_3[0]:_3);return _4.liveObject}
 ,isc.A.drop=function isc_Layout_drop(){if(!this.willAcceptDrop())return;var _1=this.getDropPosition();var _2=this.getDropComponent(isc.EventHandler.getDragTarget(),_1);if(!_2)return;var _3=this.members.indexOf(_2);if(_3==-1&&_2.$32)
 _3=this.members.indexOf(_2.$32)
 if(_3!=-1&&(_3==_1||_3+1==_1))
@@ -4654,7 +4719,7 @@
 _1[++_2]=(this.wrap?this.$4p:this.$4q)
 _1[++_2]=_4;_1[++_2]=this.$4m;_1[++_2]=this.$4n;_1[++_2]=_11;_1[++_2]=this.$4o;_1[++_2]=!_3?this.$4k:this.$4j;_1[++_2]=this.iconSpacing;if(_9){_1[++_2]="px;width:";_1[++_2]=_10}
 _1[++_2]=this.$4l;_1[++_2]=_7}
-_1[++_2]=this.$4r;this.$5c(_1,_2)}
+_1[++_2]=this.$4r;this.$5c(_1,_2+1)}
 ,isc.A.$5d=function isc_Button__generateIconImgHTML(){var _1=this.$4s;if(this.$5e==null){this.$4t[0]=this.getID();this.$5e=this.$4t.join(isc.emptyString)}
 _1.name=this.$5e;_1.width=this.iconWidth||this.iconSize;_1.height=this.iconHeight||this.iconSize;_1.src=this.$5f();return this.imgHTML(_1)}
 ,isc.A.$5f=function isc_Button__getIconURL(){var _1=this.state,_2=this.selected,_3=this.getCustomState(),_4=isc.StatefulCanvas;if(_1==_4.STATE_DISABLED&&!this.showDisabledIcon)_1=null;else if(_1==_4.STATE_DOWN&&!this.showDownIcon)_1=null;else if(_1==_4.STATE_OVER&&!this.showRollOverIcon)_1=null;if(!this.showIconState){_1=null;_3=null}
@@ -4683,10 +4748,11 @@
 _10[11]=isc.dot;_10[12]=_9;var _11=_10.join(isc.$ad);return _11}
 );isc.B._maxIndex=isc.C+1;isc.A=isc.Img.getPrototype();isc.A.name="main";isc.A.src="blank.gif";isc.A.imageType=isc.Img.STRETCH;isc.A.suppressClassName=false;isc.A.mozOutlineOffset="0px";isc.A.showTitle=false;isc.A.usePNGFix=true;isc.A=isc.Img.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$5h="<TABLE WIDTH=";isc.A.$5i=" HEIGHT=";isc.A.$5j=" BORDER=0 CELLSPACING=0 CELLPADDING=0><TR>";isc.A.$5k="<TD VALIGN=center ALIGN=center>";isc.A.$5l="<TD BACKGROUND=";isc.A.$5m="</TD></TR></TABLE>";isc.A.sizeImageToFitOverflow=false;isc.B.push(isc.A.initWidget=function isc_Img_initWidget(){isc.StatefulCanvas.$b4.initWidget.call(this);this.redrawOnResize=(this.imageType!=isc.Img.STRETCH)}
 ,isc.A.setImageType=function isc_Img_setImageType(_1){if(this.imageType==_1)return;this.imageType=_1;this.markForRedraw();this.redrawOnResize=(this.imageType!=isc.Img.STRETCH)}
-,isc.A.getInnerHTML=function isc_Img_getInnerHTML(){var _1=this.sizeImageToFitOverflow?this.getOverflowedInnerWidth():this.getInnerWidth(),_2=this.sizeImageToFitOverflow?this.getOverflowedInnerHeight():this.getInnerHeight(),_3=this.imageType;if(_3==isc.Img.STRETCH||_3==isc.Img.NORMAL){if(_3==isc.Img.NORMAL){_1=this.imageWidth;_2=this.imageHeight}
-return this.imgHTML(this.getURL(),_1,_2,this.name,this.extraStuff,null,this.activeAreaHTML)}
-var _4=isc.SB.create();_4.append(this.$5h,_1,this.$5i,_2,this.$5j);if(_3==isc.Img.TILE){_4.append(this.$5l,this.getImgURL(this.getURL()),this.$oa,isc.Canvas.spacerHTML(_1,_2))}else{_4.append(this.$5k,this.imgHTML(this.getURL(),this.imageWidth,this.imageHeight,this.name,this.extraStuff,null,this.activeAreaHTML))}
-_4.append(this.$5m);return _4.toString()}
+,isc.A.getInnerHTML=function isc_Img_getInnerHTML(){var _1=this.sizeImageToFitOverflow?this.getOverflowedInnerWidth():this.getInnerWidth(),_2=this.sizeImageToFitOverflow?this.getOverflowedInnerHeight():this.getInnerHeight(),_3=this.imageType;var _4=this.extraStuff;if(this.altText!=null){var _5="alt="+this.altText.asSource(true);if(_4==null)_4=_5;else _4+=" "+_5}
+if(_3==isc.Img.STRETCH||_3==isc.Img.NORMAL){if(_3==isc.Img.NORMAL){_1=this.imageWidth;_2=this.imageHeight}
+return this.imgHTML(this.getURL(),_1,_2,this.name,_4,null,this.activeAreaHTML)}
+var _6=isc.SB.create();_6.append(this.$5h,_1,this.$5i,_2,this.$5j);if(_3==isc.Img.TILE){_6.append(this.$5l,this.getImgURL(this.getURL()),this.$oa,isc.Canvas.spacerHTML(_1,_2))}else{_6.append(this.$5k,this.imgHTML(this.getURL(),this.imageWidth,this.imageHeight,this.name,_4,null,this.activeAreaHTML))}
+_6.append(this.$5m);return _6.toString()}
 ,isc.A.getOverflowedInnerWidth=function isc_Img_getOverflowedInnerWidth(){return this.getVisibleWidth()-this.getHMarginBorder()}
 ,isc.A.getOverflowedInnerHeight=function isc_Img_getOverflowedInnerHeight(){return this.getVisibleHeight()-this.getVMarginBorder()}
 ,isc.A.$ub=function isc_Img__handleResized(_1,_2){if(this.redrawOnResize!=false||!this.isDrawn())return;var _3=this.getImage(this.name).style;var _4=this.sizeImageToFitOverflow?this.getOverflowedInnerWidth():this.getInnerWidth(),_5=this.sizeImageToFitOverflow?this.getOverflowedInnerHeight():this.getInnerHeight();this.$u9(_3,this.$o6,_4);this.$u9(_3,this.$o5,_5)}
@@ -4815,9 +4881,17 @@
 ,isc.A.makeButton=function isc_Toolbar_makeButton(_1){_1.width=_1.width||null;_1.height=_1.height||null;_1.canDrag=this.canReorderItems||this.canDragSelectItems||this.canRemoveItems;_1.canDragResize=(_1.canDragResize!=null?_1.canDragResize&&this.canResizeItems:this.canResizeItems);_1.canAcceptDrop=this.canAcceptDrop;_1.canDrop=this.canRemoveItems;_1.shouldHiliteAccessKey=this.buttonShouldHiliteAccessKey;return this.$6h(_1,null)}
 ,isc.A.$6h=function isc_Toolbar__makeItem(_1,_2){var _3=(_1.buttonConstructor?_1.buttonConstructor:this.buttonConstructor);_3=this.ns.ClassFactory.getClass(_3);var _4=_3.newInstance({autoDraw:false},this.buttonDefaults,this.buttonProperties,_1,_2);if(!isc.isA.StatefulCanvas(_4))return _4;var _5;if((_4.getActionType()==isc.StatefulCanvas.RADIO&&_4.radioGroup===_5)||_4.defaultRadioGroup!=null){var _6=_4.defaultRadioGroup!=null?_4.defaultRadioGroup:this.getID();_4.addToRadioGroup(_6)}
 return _4}
-,isc.A.addButtons=function isc_Toolbar_addButtons(_1,_2){if(_1==null)return;if(!isc.isAn.Array(_1))_1=[_1];if(!this.$6c)this.setButtons();_1.removeEvery(null);this.buttons.addListAt(_1,_2);var _3=[];for(var i=0;i<_1.length;i++){var _5=_1[i],_6=isc.isA.Canvas(_5)?_5:this.makeButton(_5);_3[i]=_6}
-this.addMembers(_3,_2)
-if(this.canResizeItems)this.setResizeRules();_3.map("show")}
+,isc.A.addButtons=function isc_Toolbar_addButtons(_1,_2){if(_1==null)return;if(!isc.isAn.Array(_1))_1=[_1];if(!this.$6c)this.setButtons();_1.removeEvery(null);var _3;if(isc.isAn.Array(_2)){if(_2.length!=_1.length){this.logWarn("addButtons passed "+_1.length+" buttons with "+_2.length+" discrete positions specified. Ignoring.");return}
+var _4={};for(var i=0;i<_2.length;i++){_4[_2[i]]=_1[i]}
+_2.sort();_3=[];var _6={buttons:[],position:_2[0]},_7=0;for(var i=0;i<_2.length;i++){var _8=_2[i],_9=_4[_8];_6.buttons.add(_9);var _10=_2[i+1]
+if(_10==null||_10!=_8+1){_3[_7]=_6;_7++
+if(_10!=null)_6={buttons:[],position:_10}}}
+for(var i=0;i<_3.length;i++){this.buttons.addListAt(_3[i].buttons,_3[i].position)}}else{this.buttons.addListAt(_1,_2)}
+var _11=this.instantRelayout;this.instantRelayout=false;var _12;if(_3==null){_12=this.$82x(_1);this.addMembers(_12,_2)}else{for(var i=0;i<_3.length;i++){var _13=this.$82x(_3[i].buttons);this.addMembers(_13,_3[i].position);if(_12==null)_12=_13;else _12.addList(_13)}}
+if(_11){this.instantRelayout=true;if(this.$3n)this.$3n=false;this.reflow("addButtons")}
+if(this.canResizeItems)this.setResizeRules();_12.map("show")}
+,isc.A.$82x=function isc_Toolbar__createButtonInstances(_1){var _2=[];for(var i=0;i<_1.length;i++){var _4=_1[i],_5=isc.isA.Canvas(_4)?_4:this.makeButton(_4);_2[i]=_5}
+return _2}
 ,isc.A.removeButtons=function isc_Toolbar_removeButtons(_1){if(_1==null)return;if(!isc.isAn.Array(_1))_1=[_1];var _2=[];for(var i=0;i<_1.length;i++){_1[i]=this.buttons[this.getButtonNumber(_1[i])];if(_1[i]==null){this.logWarn("removeButtons(): unable to find button for item number "+i+" in the array passed in.  Skipping this item.");_1.removeItem(i);i-=1;continue}
 _2[i]=this.getButton(this.buttons.indexOf(_1[i]))}
 var _4=this.buttons;_4.removeList(_1);this.removeMembers(_2)}
@@ -4859,7 +4933,7 @@
 ,isc.A.dragResizeMemberMove=function isc_Toolbar_dragResizeMemberMove(){var _1=this.ns.EH,_2=_1.dragTarget;_2.resizeToEvent();_2.redrawIfDirty("dragResize");return _1.STOP_BUBBLING}
 ,isc.A.dragResizeMemberStop=function isc_Toolbar_dragResizeMemberStop(){var _1=this.ns.EH,_2=_1.dragTarget;_2.canDrop=_2.$6i;_2.setState(isc.StatefulCanvas.STATE_UP);_2.resizeToEvent();var _3=(this.vertical?_2.getHeight():_2.getWidth());this.resizeItem(this.$6j,_3);if(this.itemDragResized)this.itemDragResized(this.$6j,_3);return _1.STOP_BUBBLING}
 ,isc.A.resizeItem=function isc_Toolbar_resizeItem(_1,_2){var _3=this.members[_1];if(this.vertical)_3.setHeight(_2);else _3.setWidth(_2)}
-);isc.B._maxIndex=isc.C+48;isc.Toolbar.registerStringMethods({itemClick:"item,itemNum",itemDragResized:"itemNum,newSize",itemDragReordered:"itemNum,newPosition"});isc.defineClass("ImgButton","Img");isc.A=isc.ImgButton.getPrototype();isc.A.baseStyle="imgButton";isc.A.showDown=true;isc.A.showFocused=true;isc.A.showRollOver=true;isc.A.showTitle=false;isc.A.cursor=isc.Button.$b4.cursor;isc.A.src="[SKIN]/ImgButton/button.png";isc.A.canFocus=true;isc.A.overflow=isc.Canvas.HIDDEN;isc.defineClass("StretchImgButton","StretchImg");isc.A=isc.StretchImgButton.getPrototype();isc.A.useEventParts=true;isc.A.baseStyle="stretchImgButton";isc.A.showDown=true;isc.A.showFocused=true;isc.A.showRollOver=true;isc.A.showTitle=true;isc.A.hiliteAccessKey=true;isc.A.src="[SKIN]/button/button.png";isc.A.vertical=false;isc.A.capSize=12;isc.A.autoFitDirection="horizontal";isc.A.cursor=isc.Button.$b4.cursor;isc.A.canFocus=true;isc.StretchImgButton.registerStringMethods({iconClick:""})
+);isc.B._maxIndex=isc.C+49;isc.Toolbar.registerStringMethods({itemClick:"item,itemNum",itemDragResized:"itemNum,newSize",itemDragReordered:"itemNum,newPosition"});isc.defineClass("ImgButton","Img");isc.A=isc.ImgButton.getPrototype();isc.A.baseStyle="imgButton";isc.A.showDown=true;isc.A.showFocused=true;isc.A.showRollOver=true;isc.A.showTitle=false;isc.A.cursor=isc.Button.$b4.cursor;isc.A.src="[SKIN]/ImgButton/button.png";isc.A.canFocus=true;isc.A.overflow=isc.Canvas.HIDDEN;isc.defineClass("StretchImgButton","StretchImg");isc.A=isc.StretchImgButton.getPrototype();isc.A.useEventParts=true;isc.A.baseStyle="stretchImgButton";isc.A.showDown=true;isc.A.showFocused=true;isc.A.showRollOver=true;isc.A.showTitle=true;isc.A.hiliteAccessKey=true;isc.A.src="[SKIN]/button/button.png";isc.A.vertical=false;isc.A.capSize=12;isc.A.autoFitDirection="horizontal";isc.A.cursor=isc.Button.$b4.cursor;isc.A.canFocus=true;isc.StretchImgButton.registerStringMethods({iconClick:""})
 isc.defineClass("ToolStrip","Layout");isc.A=isc.ToolStrip.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.height=20;isc.A.defaultWidth=250;isc.A.styleName="toolStrip";isc.A.vertical=false;isc.A.resizeBarClass="ToolStripResizer";isc.A.resizeBarSize=14;isc.A.separatorClass="ToolStripSeparator";isc.A.separatorSize=8;isc.A.formWrapperConstructor="DynamicForm";isc.A.formWrapperDefaults={showTitle:false,numCols:1,overflow:"visible",width:1,height:1};isc.B.push(isc.A.initWidget=function isc_ToolStrip_initWidget(_1,_2,_3,_4,_5,_6){this.members=this.$62r(this.members);this.invokeSuper(isc.ToolStrip,this.$oc,_1,_2,_3,_4,_5,_6);if(this.vertical&&this.verticalStyleName!=null){this.setStyleName(this.verticalStyleName)}}
 ,isc.A.$62r=function isc_ToolStrip__convertMembers(_1){var _2=isc.ClassFactory.getClass(this.separatorClass);if(_1==null)return null;var _3=[];for(var i=0;i<_1.length;i++){var m=_1[i];if(m=="separator"){var _6=_2.createRaw();_6.autoDraw=false;_6.vertical=!this.vertical;if(this.vertical){_6.height=this.separatorSize}else{_6.width=this.separatorSize}
 _6.completeCreation();_3.add(_6)}else if(m=="resizer"&&i>0){_1[i-1].showResizeBar=true}else if(m=="starSpacer"){_3.add(isc.LayoutSpacer.create({width:"*"}))}else if(isc.isA.ToolStripResizer(m)&&i>0){_1[i-1].showResizeBar=true;m.destroy()}else{if(isc.isA.ToolStripSeparator(m)){var _6=m;_6.vertical=!this.vertical;_6.setSrc(this.vertical?_6.hSrc:_6.vSrc);if(this.vertical){_6.setHeight(this.separatorSize)}else{_6.setWidth(this.separatorSize)}
@@ -4968,6 +5042,8 @@
 _4*=-1;return _2+_4}
 );isc.B._maxIndex=isc.C+39;isc.$6q={icon:"[SKIN]SectionHeader/opener.gif",overflow:"hidden",baseStyle:"sectionHeader",showDisabled:true,expanded:false,setExpanded:function(_1){this.expanded=_1;this.stateChanged()},setOpen:function(_1){this.setExpanded(_1)},getCustomState:function(){return this.expanded?"opened":"closed"}};isc.$6r={overflow:"hidden",wrap:false,height:20,expanded:false,canCollapse:true,getSectionStack:function(){var _1=this.layout;if(_1)return isc.isA.String(_1)?window[_1]:_1;else return null},keyPress:function(){var _1=this.getSectionStack();if(_1==null)return;var _2=isc.EH.getKey();if(_2=="Enter"||_2=="Space"){if(this.canCollapse)return _1.sectionHeaderClick(this)}else if(_2=="Arrow_Up"||_2=="Arrow_Down"){var _3=_1.getDragResizeTarget(this);if(_3==null)return false;var _4=(_2=="Arrow_Up"?-5:5);this.bringToFront();this.resizeTarget(_3,true,this.resizeInRealTime,0,0,(this.getPageTop()+_4))
 this.$6s=_3}},keyUp:function(){if(this.$6s){var _1=isc.EH.getKey();if(_1=="Arrow_Up"||_1=="Arrow_Down"){this.finishTargetResize(this.$6s,true,this.resizeInRealTime);this.$6s=null}}},$kk:function(){var _1=this.getSectionStack();if(_1)return _1.canTabToHeaders==true;else return true},$71i:function(){var _1=this.getSectionStack();return _1?true:false},schemaName:"SectionStackSection",addItem:function(_1,_2){if(!this.$71i())return;var _3=this.getSectionStack();_3.addItem(this,_1,_2);_3.expandSection(this)},removeItem:function(_1){if(!this.$71i())return;this.getSectionStack().removeItem(this,_1)},canDrag:true,dragAppearance:"none",isSectionHeader:true,dragStart:function(){if(!this.$71i())return;var _1=this.getSectionStack().getDragResizeTarget(this);this.$6t=_1;if(_1==null)return false;this.bringToFront()},dragMove:function(){if(!this.$71i())return;var _1=this.getSectionStack().$6p;var _2=0-isc.EH.dragOffsetY;this.resizeTarget(this.$6t,true,this.resizeInRealTime,_2,_1)},dragStop:function(){this.finishTargetResize(this.$6t,true,this.resizeInRealTime)},destroy:function(){if(!this.expanded&&this.items){var _1=this.items;for(var i=0;i<_1.length;i++){if(isc.isA.Canvas(_1[i])&&_1[i].parentElement!=this.parentElement){_1[i].destroy()}}}
+var _3=this.controls,_4=this.controlsLayout;if(_3){if(!isc.isAn.Array(_3))_3=[_3];for(var _5=0;_5<_3.length;_5++){if(_3[_5].destroy&&!_3[_5].destroyed&&(_4==null||_3[_5].parentElement!=_4))
+{_3[_5].destroy()}}}
 return this.Super("destroy",arguments)},controlsLayoutDefaults:{_constructor:isc.HStack,defaultLayoutAlign:"center",snapTo:"R",membersMargin:5,layoutEndMargin:5,addAsChild:true},addControls:function(){if(!this.controls)return;this.addAutoChild("controlsLayout",{height:this.getInnerHeight(),align:this.isRTL()?"left":"right",members:this.controls});this.allowContentAndChildren=true},refreshControls:function(){if(!this.controls)return;if(!this.controlsLayout)this.addControls();var _1=this.controlsLayout;_1.addMembers(this.controls);this.allowContentAndChildren=true},getPrintStyleName:function(){var _1=this.parentElement;if(_1&&_1.printHeaderStyleName!=null){this.printStyleName=_1.printHeaderStyleName}
 return this.Super("getPrintStyleName",arguments)},shouldPrint:true};isc.defineClass("SectionHeader","Label");isc.A=isc.SectionHeader.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.useContents=false;isc.B.push(isc.A.click=function isc_SectionHeader_click(){if(this.contains(isc.EH.lastTarget))return;if(!this.canCollapse||!this.$71i())return;return this.getSectionStack().sectionHeaderClick(this)}
 ,isc.A.draw=function isc_SectionHeader_draw(_1,_2,_3,_4){if(isc.$cv)arguments.$cw=this;if(!this.readyToDraw())return;this.align=this.isRTL()?"right":"left";if(!this.canCollapse||(this.$71i()&&this.getSectionStack()&&this.getSectionStack().showExpandControls==false))
@@ -5072,7 +5148,7 @@
 ,isc.A.mouseWheel=function isc_Scrollbar_mouseWheel(){return this.ns.EH.bubbleEvent(this.scrollTarget,this.ns.EH.eventTypes.MOUSE_WHEEL)}
 ,isc.A.hide=function isc_Scrollbar_hide(_1,_2,_3,_4){this.invokeSuper("Scrollbar","hide",_1,_2,_3,_4);if(!this.$u3&&this.scrollTarget!=null){this.moveTo(this.scrollTarget.getLeft(),this.scrollTarget.getTop());this.resizeTo(1,1)}}
 );isc.B._maxIndex=isc.C+44;isc.ClassFactory.defineClass("NativeScrollbar","Canvas");isc.A=isc.NativeScrollbar;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.getScrollbarSize=function isc_c_NativeScrollbar_getScrollbarSize(){return isc.Element.getNativeScrollbarSize()}
-);isc.B._maxIndex=isc.C+1;isc.A=isc.NativeScrollbar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.showCustomScrollbars=false;isc.A.overflow="hidden";isc.A.autoEnable=true;isc.A.scrollbarCanvasDefaults={overflow:"scroll",showCustomScrollbars:false,$lh:function(_1,_2,_3,_4,_5){this.invokeSuper(isc.Canvas,"$lh",_1,_2,_3,_4,_5);if(isc.Browser.isMoz&&!_1&&(_2||isc.Browser.geckoVersion<20030312))
+);isc.B._maxIndex=isc.C+1;isc.A=isc.NativeScrollbar.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.vertical=true;isc.A.showCustomScrollbars=false;isc.A.overflow="hidden";isc.A.autoEnable=true;isc.A.scrollbarCanvasDefaults={overflow:"scroll",showCustomScrollbars:false,$lh:function(_1,_2){this.Super("$lh",arguments);if(isc.Browser.isMoz&&!_1&&(_2||isc.Browser.geckoVersion<20030312))
 {return}
 if(this.$u7)return;this.creator.scrollbarCanvasScrolled()},parentResized:function(){this.creator.sizeScrollbarCanvas();this.creator.adjustOverflow()}};isc.A.scrollbarCanvasThickness=100;isc.B.push(isc.A.initWidget=function isc_NativeScrollbar_initWidget(){var _1=isc.NativeScrollbar.getScrollbarSize();if(this.vertical){this.setWidth(_1)}else{this.setHeight(_1)}
 this.setOverflow(isc.Canvas.HIDDEN);this.addAutoChild("scrollbarCanvas");this.sizeScrollbarCanvas();this.setScrollTarget();this.setThumb()}
@@ -5111,17 +5187,22 @@
 return _1.name},inheritsFrom:function(_1,_2,_3){if(isc.isA.String(_1))_1=this.getType(_1,_3);if(_1==null)return false;if(_1.name==_2)return true;while(_1.inheritsFrom){var _4=this.getType(_1.inheritsFrom,_3);if(_4==null)return null;if(_4.name==_2)return true;_1=_4}
 return false},validateValue:function(_1,_2,_3){var _4={name:"$42j",type:_1};isc.SimpleType.addTypeDefaults(_4);var _3=_3||isc.DS.get("Object");return _3.validateFieldValue(_4,_2)},addTypeDefaults:function(_1,_2){if(_1==null||_1.$61)return;_1.$61=true;var _3=this.getType(_1.type,_2);if(_3==null)return;_1.$62=_3;if(_1.valueMap==null){var _4=this.getInheritedProperty(_3,"valueMap",_2);if(_4!=null)_3.valueMap=_1.valueMap=_4}
 if(_1.editorType==null){var _5=this.getInheritedProperty(_3,"editorType",_2);if(_5!=null)_3.editorType=_1.editorType=_5}
-var _6=this.getInheritedProperty(_3,"shortDisplayFormatter",_2)
-if(_6!=null)_3.shortDisplayFormatter=_1.$63=_6;var _6=this.getInheritedProperty(_3,"normalDisplayFormatter",_2)
-if(_6!=null)_3.normalDisplayFormatter=_1.$64=_6;var _6=this.getInheritedProperty(_3,"editFormatter",_2)
-if(_6!=null)_3.editFormatter=_1.$65=_6;var _7=this.getInheritedProperty(_3,"parseInput",_2)
-if(_7!=null)_3.parseInput=_1.$66=_7;var _8=this.getValidators(_3,_2);if(_8==null)return;if(!_1.validators){_1.validators=_8}else{if(!isc.isAn.Array(_1.validators))_1.validators=[_1.validators];_1.validators.addAsList(_8);this.$67(_1.validators)}},getInheritedProperty:function(_1,_2,_3){while(_1!=null){if(_1[_2]!=null)return _1[_2]
+if(_1.readOnlyEditorType==null){var _5=this.getInheritedProperty(_3,"readOnlyEditorType",_2);if(_5!=null)_3.readOnlyEditorType=_1.readOnlyEditorType=_5}
+var _6=this.getInheritedProperty(_3,"editorProperties",_2);if(_6!=null){if(_1.editorProperties!=null){isc.addProperties(_6,_1.editorProperties)}
+_1.editorProperties=_6}
+var _7=this.getInheritedProperty(_3,"readOnlyEditorProperties",_2);if(_7!=null){if(_1.readOnlyEditorProperties!=null){isc.addProperties(_7,_1.readOnlyEditorProperties)}
+_1.readOnlyEditorProperties=_7}
+var _8=this.getInheritedProperty(_3,"shortDisplayFormatter",_2)
+if(_8!=null)_3.shortDisplayFormatter=_1.$63=_8;var _8=this.getInheritedProperty(_3,"normalDisplayFormatter",_2)
+if(_8!=null)_3.normalDisplayFormatter=_1.$64=_8;var _8=this.getInheritedProperty(_3,"editFormatter",_2)
+if(_8!=null)_3.editFormatter=_1.$65=_8;var _9=this.getInheritedProperty(_3,"parseInput",_2)
+if(_9!=null)_3.parseInput=_1.$66=_9;var _10=this.getValidators(_3,_2);if(_10==null)return;if(!_1.validators){_1.validators=_10}else{if(!isc.isAn.Array(_1.validators))_1.validators=[_1.validators];_1.validators.addAsList(_10);this.$67(_1.validators)}},getInheritedProperty:function(_1,_2,_3){while(_1!=null){if(_1[_2]!=null)return _1[_2]
 _1=this.getType(_1.inheritsFrom,_3)}},getValidators:function(_1,_2){if(isc.isA.String(_1))_1=this.getType(_1,_2);if(_1.$68)return _1.validators;var _3=_1.validators;if(_3!=null){if(!isc.isAn.Array(_3))_3=[_3];var _4=[];for(var i=0;i<_3.length;i++){var _6=_3[i];if(isc.isA.String(_6)){_6={"type":_6}}else if(_6.type==null&&isc.isAn.emptyObject(_6)){continue}
 _6._generated=true;_4.add(_6)}
 _3=_4}
 var _7=_1.inheritsFrom;if(_7!=null){var _8=this.getType(_7,_2);if(_8!=null){var _9=this.getValidators(_8,_2);if(_9!=null){_3=_3||[];_3.addAsList(_9);this.$67(_3)}}}
 if(_3)_3.$69=true;_1.validators=_3;_1.$68=true;return _3},$7a:"typeCastValidator",$67:function(_1){var _2=_1.find(this.$7a,true);if(_2){var _3=_2.type;for(var i=0;i<_1.length;i++){if(_1[i].type==_3)break}
-if(i!=0)_1.unshift(_1[i]);_1[0].stopIfFalse=true}},$71g:{sum:function(_1,_2){var _3=_2.name;if(!_3)return;var _4=0;for(var i=0;i<_1.length;i++){var _6=_1[i][_3],_7=parseFloat(_6);if(_6==null||_6==isc.emptyString)continue;if(isc.isA.Number(_7)&&(_7==_6))_4+=_7;else return null}
+if(i!=0)_1.unshift(_1[i]);_1[0].stopIfFalse=true}},$71g:{title:function(_1,_2){if(_2.summaryValueTitle!=null)return _2.summaryValueTitle;return _2.title},sum:function(_1,_2){var _3=_2.name;if(!_3)return;var _4=0;for(var i=0;i<_1.length;i++){var _6=_1[i][_3],_7=parseFloat(_6);if(_6==null||_6==isc.emptyString)continue;if(isc.isA.Number(_7)&&(_7==_6))_4+=_7;else return null}
 return _4},avg:function(_1,_2){var _3=_2.name;if(!_3)return;var _4=0,_5=0;for(var i=0;i<_1.length;i++){var _7=_1[i][_3],_8=parseFloat(_7);if(_7==null||_7==isc.emptyString)continue;if(isc.isA.Number(_8)&&(_8==_7)){_5+=1;_4+=_8}else{return null}}
 return _5>0?_4/ _5:null},max:function(_1,_2){var _3=_2?_2.name:null;if(!_3)return;var _4=(_2&&(_2.type=="date"));var _5;for(var i=0;i<_1.length;i++){var _7=_1[i][_3];if(_7==null||_7==isc.emptyString)continue;if(_4){if(!isc.isA.Date(_7))return null;if(_5==null||_7.getTime()>_5.getTime())_5=_7.duplicate()}else{var _8=parseFloat(_7);if(isc.isA.Number(_8)&&(_8==_7)){if(_5==null)_5=_8;else if(_5<_7)_5=_8}else{return null}}}
 return _5},min:function(_1,_2){var _3=_2?_2.name:null;if(!_3)return;var _4=(_2.type=="date")
@@ -5212,7 +5293,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-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5223,7 +5304,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5247,14 +5328,16 @@
 ,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)}
 ,isc.A.tabIconClick=function isc_TabBar_tabIconClick(_1){var _2=this.parentElement;return _2.$52a(_1)}
-,isc.A.setButtons=function isc_TabBar_setButtons(_1){this.Super("setButtons",arguments);if(this.showMoreTab&&this.buttons.length-1>this.moreTabCount){for(var i=this.moreTabCount-1;i<this.buttons.length;i++){this.getMember(i).hide()}
+,isc.A.setButtons=function isc_TabBar_setButtons(_1){this.Super("setButtons",arguments);if(isc.Browser.isSGWT){var _2=this.getMembers();for(var i=0;i<_2.length;i++){_2[i].__ref=null}}
+if(this.showMoreTab&&this.buttons.length-1>this.moreTabCount){for(var i=this.moreTabCount-1;i<this.buttons.length;i++){this.getMember(i).hide()}
 this.getMember(this.$79t).show()}else if(this.showMoreTab&&this.moreTab){this.getMember(this.$79t).hide()}}
 ,isc.A.makeButton=function isc_TabBar_makeButton(_1,_2,_3,_4,_5){var _6=this.parentElement.canCloseTab(_1);isc.addProperties(_1,this.getCloseIconProperties(_1));_1.locatorParent=this.parentElement;return this.invokeSuper("TabBar","makeButton",_1,_2,_3,_4,_5)}
 ,isc.A.getCloseIconProperties=function isc_TabBar_getCloseIconProperties(_1){var _2={};if(!_1.canClose){_2.icon=(_1.icon);_2.iconSize=(_1.iconSize);_2.iconOrientation=_1.iconOrientation;_2.iconAlign=_1.iconAlign}else{_2.icon=(_1.closeIcon||this.parentElement.closeTabIcon);_2.iconSize=(_1.closeIconSize||this.parentElement.closeTabIconSize);_2.iconOrientation=isc.Page.isRTL()?"left":"right";_2.iconAlign=_2.iconOrientation}
 return _2}
-,isc.A.addTabs=function isc_TabBar_addTabs(_1,_2){if(!_2&&this.tabBarPosition==isc.Canvas.LEFT)_2=0;this.addButtons(_1,_2);if(this.showMoreTab&&this.moreTab){var _3=this.getMembers();if(_3.length-1>this.moreTabCount){for(var i=this.moreTabCount-1;i<_3.length;i++){_3[i].hide()}
-this.$79t=_3.length-1;_3[this.$79t].show()}}
-if(this._baseLine!=null){this._baseLine.bringToFront();var _5=this.getButton(this.getSelectedTab());if(_5)_5.bringToFront()}}
+,isc.A.addTabs=function isc_TabBar_addTabs(_1,_2){if(!_2&&this.tabBarPosition==isc.Canvas.LEFT)_2=0;this.addButtons(_1,_2);if(isc.Browser.isSGWT){var _3=this.getMembers();for(var i=0;i<_3.length;i++){_3[i].__ref=null}}
+if(this.showMoreTab&&this.moreTab){var _5=this.getMembers();if(_5.length-1>this.moreTabCount){for(var i=this.moreTabCount-1;i<_5.length;i++){_5[i].hide()}
+this.$79t=_5.length-1;_5[this.$79t].show()}}
+if(this._baseLine!=null){this._baseLine.bringToFront();var _6=this.getButton(this.getSelectedTab());if(_6)_6.bringToFront()}}
 ,isc.A.removeTabs=function isc_TabBar_removeTabs(_1){if(_1==null)return;if(!isc.isAn.Array(_1))_1=[_1];var _2=this.map("getButton",_1);this.removeButtons(_1);if(this.showMoreTab&&this.moreTab&&this.$79t>0){var _3=this.getMembers();for(var i=0;i<_3.length;i++){if(i<this.moreTabCount)_3[i].show();else _3[i].hide()}
 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()}}
@@ -5335,7 +5418,7 @@
 ,isc.A.hasInherentWidth=function isc_Window_hasInherentWidth(){return this.autoSize}
 ,isc.A.addItem=function isc_Window_addItem(_1,_2){return this.addItems([_1],_2)}
 ,isc.A.removeItem=function isc_Window_removeItem(_1){return this.removeItems([_1])}
-,isc.A.addItems=function isc_Window_addItems(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];if(!this.items)this.items=[];for(var i=0;i<_1.length;i++){if(this.items.contains(_1[i]))continue;if(_2!=null)this.items.addAt(_1[i],_2+i);else this.items.add(_1[i]);_1[i].locatorParent=this;if(!this.$7f){if(isc.isA.Canvas(_1[i])&&_1[i].isDrawn())_1[i].clear()}else{if(this.body.addMember){this.body.addMember(_1[i],_2!=null?_2+i:null)}else{this.body.addChild(_1[i])}}}
+,isc.A.addItems=function isc_Window_addItems(_1,_2){if(!isc.isAn.Array(_1))_1=[_1];if(!this.items)this.items=[];for(var i=0;i<_1.length;i++){if(!_1[i])continue;if(this.items.contains(_1[i]))continue;if(_2!=null)this.items.addAt(_1[i],_2+i);else this.items.add(_1[i]);_1[i].locatorParent=this;if(!this.$7f){if(isc.isA.Canvas(_1[i])&&_1[i].isDrawn())_1[i].clear()}else{if(this.body.addMember){this.body.addMember(_1[i],_2!=null?_2+i:null)}else{this.body.addChild(_1[i])}}}
 return _1}
 ,isc.A.removeItems=function isc_Window_removeItems(_1){if(!isc.isAn.Array(_1))_1=[_1];for(var i=0;i<_1.length;i++){delete _1[i].locatorParent}
 if(this.$7f){if(this.body.removeMembers)this.body.removeMembers(_1);else{for(var i=0;i<_1.length;i++){if(_1[i].parentElement==this.body)_1[i].deparent()}}}
@@ -5371,7 +5454,7 @@
 ,isc.A.hide=function isc_Window_hide(_1,_2,_3,_4){if(this.$7k)isc.Animation.finishAnimation(this.$7k);this.invokeSuper(isc.Window,"hide",_1,_2,_3,_4);if(this.isDrawn()&&this.isModal){if(this.modalTarget){this.modalTarget.hideComponentMask();this.ignoreModalTarget()}else{this.hideClickMask();this.hideModalMask()}}}
 ,isc.A.clear=function isc_Window_clear(_1,_2,_3,_4){if(this.$7k)isc.Animation.finishAnimation(this.$7k);this.invokeSuper(isc.Window,"clear",_1,_2,_3,_4);if(!this.clearingWithModalTarget&&this.isVisible()&&this.isModal){if(this.modalTarget){this.ignoreModalTarget();this.modalTarget.hideComponentMask()}else{this.hideClickMask();this.hideModalMask()}}}
 ,isc.A.parentResized=function isc_Window_parentResized(){this.Super("parentResized",arguments);if(this.autoCenter)this.centerInPage()}
-,isc.A.moved=function isc_Window_moved(){this.Super("moved",arguments);if(this.isDrawn()&&!this.$7j)this.autoCenter=false}
+,isc.A.handleMoved=function isc_Window_handleMoved(){this.Super("handleMoved",arguments);if(this.isDrawn()&&!this.$7j)this.autoCenter=false}
 ,isc.A.centerInPage=function isc_Window_centerInPage(){var _1=this.getVisibleWidth(),_2=this.getVisibleHeight(),_3=this.parentElement?this.parentElement:isc.Page,_4=((_3.getWidth()-_1)/2)+_3.getScrollLeft(),_5=((_3.getHeight()-_2)/2)+_3.getScrollTop();_4=Math.round(_4);_5=Math.max(Math.round(_5),0);this.$7j=true;this.moveTo(_4,_5);this.$7j=null}
 ,isc.A.flash=function isc_Window_flash(_1){var _2=this.showHeader;if(_1==null){if(this.$7l)return false;this.$7l=true;_1=0;if(_2){this.$7m=this.header.getStateName();if(this.headerBackground){this.$7n=this.headerBackground.getStateName();this.$7o=this.headerBackground.src}}else{this.$7p=this.body.backgroundColor}}
 if(_2){var _3=(_1%2==0?this.hiliteHeaderStyle:this.$7m),_4=(_1%2==0?this.hiliteHeaderSrc:this.$7o),_5=(_1%2==0?this.hiliteHeaderStyle:this.$7n);this.header.setStyleName(_3)
@@ -5486,10 +5569,9 @@
 if(!_4.title){if(_2=="confirm")_4.title=isc.Dialog.CONFIRM_TITLE;else if(_2=="ask")_4.title=isc.Dialog.ASK_TITLE;else if(_2=="warn")_4.title=isc.Dialog.WARN_TITLE;else _4.title=isc.Dialog.SAY_TITLE}
 isc.$78(_4);if(!_4.icon)_4.icon=isc.Dialog.getInstanceProperty(_2+"Icon");if(_3)_4.callback=_3;isc.Dialog.Warn.showMessage(_1,_4)});isc.addGlobal("getLastDialog",function(){return isc.Dialog.Warn});isc.addGlobal("dismissLastDialog",function(){if(isc.Dialog.Warn)isc.Dialog.Warn.hide()});isc.$78=function(_1){var _2=this.$79=this.$79||["okClick","yesClick","noClick","cancelClick","closeClick","applyClick"];for(var i=0;i<_2.length;i++){var _4=_2[i];if(!_1[_4]){_1[_4]=isc.Dialog.getInstanceProperty(_4)}}}
 isc.addGlobal("warn",function(_1,_2,_3){isc.showMessage(_1,"warn",_2,_3)});isc.addGlobal("say",function(_1,_2,_3){isc.showMessage(_1,"say",_2,_3)});isc.addGlobal("ask",function(_1,_2,_3){isc.showMessage(_1,"ask",_2,_3)});isc.confirm=function(_1,_2,_3){isc.showMessage(_1,"confirm",_2,_3)}
-isc.askForValue=function(_1,_2,_3){_3=_3||isc.emptyObject;var _4=isc.Dialog.Ask
-if(!_4){var askForm=isc.DynamicForm.create({numCols:1,padding:3,items:[{name:"message",type:"blurb"},{name:"value",showTitle:false,width:"*"}],saveOnEnter:true,submit:function(){this.askDialog.okClick()}});_4=isc.Dialog.Ask=isc.Dialog.create({items:[askForm],askForm:askForm,canDragReposition:true,isModal:true,bodyProperties:{overflow:"visible"},overflow:"visible"});askForm.askDialog=_4;_4.$8a=function(){this.clear();this.returnValue(this.askForm.getValue("value"))}}
-var _5=_3.left!=null||_3.top!=null;if(_3.buttons!=null){this.logWarn("isc.askForValue() called with 'buttons' attribute specified on the "+"properties object. This usage has been deprecated in favor of specifying "+"properties.toolbarButtons. Copying the buttons attribute value across to "+"toolbarButtons","deprecated");_3.toolbarButtons=_3.buttons;delete _3.buttons}
-_3=isc.addProperties({callback:_2,title:_3.title||isc.Dialog.ASK_FOR_VALUE_TITLE,autoCenter:!_5,left:(_5?_3.left||"10%":null),top:(_5?_3.top||"20%":null),width:_3.width||"80%",height:_3.height||20,toolbarButtons:_3.toolbarButtons||[isc.Dialog.OK,isc.Dialog.CANCEL],okClick:_3.okClick||_4.$8a},_3);isc.$78(_3);_4.setProperties(_3);_4.askForm.setValues({message:_1||"Please enter a value:",value:_3.defaultValue||""});_4.show();_4.askForm.focusInItem("value")}
+isc.askForValue=function(_1,_2,_3){_3=_3||isc.emptyObject;var _4=isc.Dialog.Ask;if(!_4){var _5=isc.DynamicForm.create({numCols:1,padding:3,items:[{name:"message",type:"blurb"},{name:"value",showTitle:false,width:"*"}],saveOnEnter:true,submit:function(){this.askDialog.okClick()}});_4=isc.Dialog.Ask=isc.Dialog.create({items:[_5],askForm:_5,canDragReposition:true,isModal:true,bodyProperties:{overflow:"visible"},overflow:"visible"});_5.askDialog=_4;_4.$8a=function(){this.clear();this.returnValue(this.askForm.getValue("value"))}}
+var _6=_3.left!=null||_3.top!=null;if(_3.buttons!=null){this.logWarn("isc.askForValue() called with 'buttons' attribute specified on the "+"properties object. This usage has been deprecated in favor of specifying "+"properties.toolbarButtons. Copying the buttons attribute value across to "+"toolbarButtons","deprecated");_3.toolbarButtons=_3.buttons;delete _3.buttons}
+_3=isc.addProperties({callback:_2,title:_3.title||isc.Dialog.ASK_FOR_VALUE_TITLE,autoCenter:!_6,left:(_6?_3.left||"10%":null),top:(_6?_3.top||"20%":null),width:_3.width||"80%",height:_3.height||20,toolbarButtons:_3.toolbarButtons||[isc.Dialog.OK,isc.Dialog.CANCEL],okClick:_3.okClick||_4.$8a},_3);isc.$78(_3);_4.setProperties(_3);_4.askForm.setValues({message:_1||"Please enter a value:",value:_3.defaultValue||""});_4.show();_4.askForm.focusInItem("value")}
 isc.ClassFactory.defineClass("LoginDialog","Window");isc.LoginDialog.registerStringMethods({register:"values, form",lostPassword:"values, form"});isc.A=isc.LoginDialog;isc.A.firstTimeInit=true;isc.A=isc.LoginDialog.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.dismissable=false;isc.A.allowBlankPassword=false;isc.A.showLostPasswordLink=false;isc.A.showRegistrationLink=false;isc.A.errorStyle="formCellError";isc.A.lostPasswordItemTitle="Lost Password?";isc.A.registrationItemTitle="Register";isc.A.autoCenter=true;isc.A.autoSize=true;isc.A.isModal=true;isc.A.showMinimizeButton=false;isc.A.items=["autoChild:loginForm"];isc.A.loginFormConstructor="DynamicForm";isc.A.loginFormDefaults={numCols:2,padding:4,autoDraw:false,saveOnEnter:true,submit:function(){var _1=this,_2=[{username:this.getValue("usernameItem"),password:this.getValue("passwordItem")}];_2[1]=function(_3,_4){if(_3){_1.complete()}else{if(_4!=null)
 _1.setValue("loginFailureItem",_4)
 _1.showItem("loginFailureItem");_1.focusInItem("passwordItem")}};this.fireCallback(this.loginDialog.loginFunc,"credentials,dialogCallback",_2)},complete:function(_1){this.loginDialog.hide();this.setValue("loginFailureItem",this.loginDialog.errorMessage);this.setValue("usernameItem","");this.setValue("passwordItem","");this.hideItem("loginFailureItem");if(_1){this.fireCallback(this.loginFunc,"credentials,dialogCallback")}else{var _2=isc.Cookie.get("loginRedirect");if(_2)window.location.replace(_2)}}};isc.A.formDSDefaults={clientOnly:true,useAllDataSourceFields:true};isc.A.formDefaultFields=[{name:"loginFailureItem",type:"blurb",colSpan:2,visible:false},{name:"usernameItem",required:true,browserSpellCheck:false,browserAutoCorrect:false,browserAutoCapitalize:false,keyPress:function(_1,_2,_3){if(_3=="Enter"){_2.focusInItem("passwordItem");return false}}},{name:"passwordItem",type:"password",required:true},{name:"loginButton",type:"button",type:"submit"},{name:"lostPasswordItem",type:"link",target:"javascript",canEdit:false,endRow:true,numCols:2,colSpan:2,showTitle:false,click:"form.loginDialog.lostPassword(form.getValues(), form)"},{name:"registrationItem",type:"link",target:"javascript",canEdit:false,endRow:true,numCols:2,colSpan:2,showTitle:false,click:"form.loginDialog.register(form.getValues(), form)"}];isc.B.push(isc.A.getDynamicDefaults=function isc_LoginDialog_getDynamicDefaults(_1){switch(_1){case"loginForm":var _2={loginDialog:this,values:{usernameItem:this.username||"",passwordItem:this.password||"",loginFailureItem:this.errorMessage},fields:this.formFields};var _3=isc.clone(this.formDefaultFields);for(var j=0;j<_3.length;j++){var _5=_3[j],_6=_5.name;isc.addProperties(_5,this[_6+"Defaults"],this[_6+"Properties"]);if(null!=this[_6+"Title"]){_5.title=this[_6+"Title"];if(_5.type=='link'&&!_5.showTitle)
@@ -5549,7 +5631,9 @@
 if(this.useSimpleTabs){this.tabBarDefaults.buttonConstructor=this.simpleTabButtonConstructor;this.tabProperties.baseStyle=this.simpleTabBaseStyle+_1.substring(0,1).toUpperCase()+_1.substring(1)}
 this.makeTabBar();this.makePaneContainer();this.createPanes()}
 ,isc.A.makeTabBar=function isc_TabSet_makeTabBar(){if(this.tabs==null)return;var _1=(this.tabBarPosition==isc.Canvas.LEFT||this.tabBarPosition==isc.Canvas.RIGHT),_2=this.tabBarAlign;var _3=this.tabs.duplicate(),_4;for(var i=0;i<_3.length;i++){for(var j in this.tabProperties){if(_3[i][j]===_4)_3[i][j]=this.tabProperties[j]}}
-var _7=isc.addProperties({selectTabOnContextClick:this.selectTabOnContextClick,ID:this.getID()+"_tabBar",width:(_1?this.tabBarThickness:"100%"),height:(_1?"100%":this.tabBarThickness),accessKey:this.accessKey,tabIndex:this.tabIndex,tabs:_3,align:this.tabBarAlign,vertical:_1?true:false,selectedTab:this.selectedTab,showMoreTab:this.showMoreTab,moreTabCount:this.moreTabCount,moreTab:this.createMoreTab(),allowButtonReselect:this.showMoreTab?true:false,buttonSelected:function(_8){this.Super("buttonSelected",arguments);if(this.parentElement!=null){this.parentElement.$8c(_8)}},childResized:function(){this.Super("childResized",arguments);if(this.parentElement!=null){this.parentElement.$54m()}},tabBarPosition:this.tabBarPosition,tabBarAlign:this.tabBarAlign,autoDraw:false},this.tabBarDefaults,this.tabBarProperties);_7.creator=this;this.tabBar=this._tabBar=this.tabBarConstructor.create(_7);this.addChild(this._tabBar)}
+var _7=isc.addProperties({selectTabOnContextClick:this.selectTabOnContextClick,ID:this.getID()+"_tabBar",width:(_1?this.tabBarThickness:"100%"),height:(_1?"100%":this.tabBarThickness),accessKey:this.accessKey,tabIndex:this.tabIndex,tabs:_3,align:this.tabBarAlign,vertical:_1?true:false,selectedTab:this.selectedTab,showMoreTab:this.showMoreTab,moreTabCount:this.moreTabCount,moreTab:this.createMoreTab(),allowButtonReselect:this.showMoreTab?true:false,buttonSelected:function(_11){this.Super("buttonSelected",arguments);if(this.parentElement!=null){this.parentElement.$8c(_11)}},childResized:function(){this.Super("childResized",arguments);if(this.parentElement!=null){this.parentElement.$54m()}},showContextMenu:function(){var _8=isc.EH.getTarget();if(this.getButtons().contains(_8)){var _9=this.parentElement,_10=_9.getTabObject(_8);if(_9.showTabContextMenu(_9,_10)==false)return false}
+return this.Super("showContextMenu",arguments)},tabBarPosition:this.tabBarPosition,tabBarAlign:this.tabBarAlign,autoDraw:false},this.tabBarDefaults,this.tabBarProperties);_7.creator=this;this.tabBar=this._tabBar=this.tabBarConstructor.create(_7);this.addChild(this._tabBar)}
+,isc.A.showTabContextMenu=function isc_TabSet_showTabContextMenu(){}
 ,isc.A.createMoreTab=function isc_TabSet_createMoreTab(){if(!this.showMoreTab)return null;this.moreTabPane=this.createAutoChild("moreTabPane",this.moreTabPaneProperties);this.addAutoChild("moreTabPaneNavBar",{title:this.moreTabTitle});this.moreTabPaneTable=this.addAutoChild("moreTabPaneTable");var _1=isc.addProperties({title:this.moreTabTitle,icon:this.moreTabImage,pane:this.moreTabPane,moreTab:true},this.moreTabDefaults,this.moreTabProperties);var _2;for(var j in this.tabProperties){if(_1[j]===_2)_1[j]=this.tabProperties[j]}
 this.moreTab=_1;return _1}
 ,isc.A.rebuildMorePane=function isc_TabSet_rebuildMorePane(){this.moreTabPane.setData(this.getMorePaneRecords())}
@@ -5606,7 +5690,7 @@
 ,isc.A.updateTab=function isc_TabSet_updateTab(_1,_2){if(isc.isAn.Object(_1)&&!isc.isA.Canvas(_1)&&this.tabs.indexOf(_1)==-1)
 {if(_2!=null)_1.pane=_2;return this.addTabs(_1)}
 var _3=this.getTabNumber(_1);if(_3==-1){this.logWarn("no such tab: "+this.echo(_1));return}
-var _4=this.getTabObject(_3),_5=_4.pane;if(_4.pane==_2)return;if(_5!=null){_5.hide();_5.deparent()}
+var _4=this.getTabObject(_3),_5=_4?_4.pane:null;if(_4&&_4.pane==_2)return;if(_5!=null){_5.hide();_5.deparent()}
 var _6=this.getTab(_1);if(_2==null)return _4.pane=_6.pane=null;_2=_4.pane=this.createPane(_2,_4);if(_6!=null)_6.pane=_2;if(this.getSelectedTabNumber()==_3){if(!this.paneContainer.hasMember(_2))this.paneContainer.addMember(_2);_2.setVisibility(isc.Canvas.INHERIT)}}
 ,isc.A.fixLayout=function isc_TabSet_fixLayout(){var _1=this._tabBar,_2=this.$l0||this.paneContainer;if(_1==null||_2==null)return;if(_2.getZIndex(true)>=_1.getZIndex(true))_2.moveBelow(_1);var _3=this.$du(this.tabBarOverlap,_1.borderThickness,_1.baseLineThickness);var _4;switch(this.tabBarPosition){case isc.Canvas.TOP:_4=false;_2.setRect(0,_1.getHeight()-_3,this.getWidth(),this.getHeight()-_1.getHeight()+_3);break;case isc.Canvas.BOTTOM:_4=false;_1.setTop(this.getHeight()-_1.getHeight());_2.setRect(0,0,this.getWidth(),this.getHeight()-_1.getHeight()+_3);break;case isc.Canvas.LEFT:_4=true;_2.setRect(_1.getWidth()-_3,0,this.getWidth()-_1.getWidth()+_3,this.getHeight());break;case isc.Canvas.RIGHT:_4=true;_1.setLeft(this.getWidth()-_1.getWidth());_2.setRect(0,0,this.getWidth()-_1.getWidth()+_3,this.getHeight());break}
 var _5=this.showControls();if(_5){if(_4)_1.setHeight(this.getViewportHeight()-this.tabBarControlLayout.getHeight());else _1.setWidth(this.getViewportWidth()-this.tabBarControlLayout.getWidth());this.tabBarControlLayout.bringToFront()}else{_1.resizeTo(_4?null:"100%",_4?"100%":null)}
@@ -5630,7 +5714,7 @@
 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)}
 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=(this.tabBarThickness-_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}
+,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}
 this.tabBarControlLayout.setRect(_2,_3,_4,_5);if(!this.children.contains(this.tabBarControlLayout))this.addChild(this.tabBarControlLayout)}
 ,isc.A.$510=function isc_TabSet__controlLayoutChildResized(){var _1=this.tabBarControlLayout;if(!_1||!_1.isDrawn()||!_1.isVisible())return;var _2=0;for(var i=0;i<_1.members.length;i++){if(_1.vertical)_2+=_1.members[i].getVisibleHeight();else _2+=_1.members[i].getVisibleWidth()}
 this.placeControlLayout(_2);var _4=this.tabBar;if(_4){var _5=(this.tabBarPosition==isc.Canvas.LEFT||this.tabBarPosition==isc.Canvas.RIGHT);if(_5){_4.setHeight(this.getViewportHeight()-this.tabBarControlLayout.getVisibleHeight())}else{_4.setWidth(this.getViewportWidth()-this.tabBarControlLayout.getVisibleWidth())}}}
@@ -5670,9 +5754,9 @@
 var _5=this.titleEditorForm;_5.setProperties({targetTabSet:this,targetTab:_1});var _6=_5.getItem("title");var _7=_1.title;_6.setValue(_7);this.placeTitleEditor(_1);if(this.tabBar.$743==0){this.showTitleEditor()}else{_5.$799=true}}
 ,isc.A.cancelTabTitleEditing=function isc_TabSet_cancelTabTitleEditing(){if(this.titleEditorForm!=null){this.clearTitleEditorForm()}}
 ,isc.A.saveTabTitle=function isc_TabSet_saveTabTitle(){if(this.titleEditorForm!=null&&this.titleEditorForm.isVisible()&&this.titleEditorForm.isDrawn())
-{var _1=false;form=this.titleEditorForm,tab=form.targetTab,newTitle=form.getValue("title");if(newTitle!=tab.title&&(this.titleChanged!=null)){if(this.fireCallback(this.titleChanged,"newTitle, oldTitle, tab",[newTitle,tab.title,tab])==false)
+{var _1=false,_2=this.titleEditorForm,_3=_2.targetTab,_4=_2.getValue("title");if(_4!=_3.title&&(this.titleChanged!=null)){if(this.fireCallback(this.titleChanged,"newTitle, oldTitle, tab",[_4,_3.title,_3])==false)
 {_1=true}}
-if(!_1)this.setTabTitle(form.targetTab,newTitle)}
+if(!_1)this.setTabTitle(_2.targetTab,_4)}
 this.clearTitleEditorForm()}
 ,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}
@@ -5687,13 +5771,13 @@
 this.invokeSuper("TabSet","clear",_1,_2,_3,_4)}
 ,isc.A.setVisibility=function isc_TabSet_setVisibility(_1,_2,_3,_4,_5){this.invokeSuper("TabSet","setVisibility",_1,_2,_3,_4,_5);if(!this.isVisible()&&this.titleEditorForm!=null&&this.titleEditorForm.isDrawn()){this.cancelTitleEditing()}}
 ,isc.A.parentVisibilityChanged=function isc_TabSet_parentVisibilityChanged(_1,_2,_3,_4,_5){this.invokeSuper("TabSet","parentVisibilityChanged",_1,_2,_3,_4,_5);if(!this.isVisible()&&this.titleEditorForm!=null&&this.titleEditorForm.isDrawn()){this.cancelTitleEditing()}}
-);isc.B._maxIndex=isc.C+65;isc.TabSet.registerStringMethods({tabSelected:"tabNum,tabPane,ID,tab",tabDeselected:"tabNum,tabPane,ID,tab,newTab",getPaneContainerEdges:"",onCloseClick:"tab",titleChanged:"newTitle,oldTitle,tab"});isc.defineClass("PaneContainer","VLayout");isc.A=isc.PaneContainer.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.handleKeyPress=function isc_PaneContainer_handleKeyPress(_1,_2){if(_1.keyName=="Tab"&&_1.ctrlKey){var _3=this.parentElement,_4=_3.tabs.length-1,_5=_3.getSelectedTabNumber();if(_1.shiftKey){if(_5>0)_5-=1;else _5=_4}else{if(_5<_4)_5+=1;else _5=0}
+);isc.B._maxIndex=isc.C+66;isc.TabSet.registerStringMethods({tabSelected:"tabNum,tabPane,ID,tab",tabDeselected:"tabNum,tabPane,ID,tab,newTab",getPaneContainerEdges:"",onCloseClick:"tab",titleChanged:"newTitle,oldTitle,tab",showTabContextMenu:"tabSet,tab"});isc.defineClass("PaneContainer","VLayout");isc.A=isc.PaneContainer.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.handleKeyPress=function isc_PaneContainer_handleKeyPress(_1,_2){if(_1.keyName=="Tab"&&_1.ctrlKey){var _3=this.parentElement,_4=_3.tabs.length-1,_5=_3.getSelectedTabNumber();if(_1.shiftKey){if(_5>0)_5-=1;else _5=_4}else{if(_5<_4)_5+=1;else _5=0}
 _3.selectTab(_5);_3.getTabBar().getButton(_5).focus();return false}
 if(this.convertToMethod("keyPress"))return this.keyPress(_1,_2)}
 );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-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5704,7 +5788,7 @@
 
 /*
  * Isomorphic SmartClient
- * Version SC_SNAPSHOT-2011-01-11 (2011-01-11)
+ * Version SC_SNAPSHOT-2011-04-17 (2011-04-17)
  * Copyright(c) 1998 and beyond Isomorphic Software, Inc. All rights reserved.
  * "SmartClient" is a trademark of Isomorphic Software, Inc.
  *
@@ -5765,11 +5849,7 @@
 ,isc.A.setRoot=function isc_Tree_setRoot(_1,_2){this.root=_1;if(_1&&isc.endsWith(this.parentProperty,this.ID))_1[this.parentProperty]=null;this.root[this.treeProperty]=this.ID;if(this.rootValue==null)this.rootValue=this.root[this.idField];var _3=this.root[this.nameProperty];if(_3==null||_3==isc.emptyString)this.root[this.nameProperty]=this.pathDelim;if(!this.isFolder(this.root))this.convertToFolder(this.root);this.nodeIndex={};if("parent"==this.modelType){if(this.data)this.linkNodes()}else if("fields"==this.modelType){if(this.data)this.connectByFields()}else if("children"==this.modelType){if(this.autoSetupParentLinks)this.setupParentLinks();if(this.data){var _4=this.data;this.data=null;this.addList(_4,this.root)}}else{this.logWarn("Unsupported modelType: "+this.modelType)}
 if(_2!==false&&(this.autoOpenRoot||_2)){this.openFolder(_1)}
 this.setupParentLinks();this.$736();this.dataChanged()}
-,isc.A.getCleanNodeData=function isc_Tree_getCleanNodeData(_1,_2,_3){if(_1==null)return null;var _4=[],_5=false;if(!isc.isAn.Array(_1)){_1=[_1];_5=true}
-for(var i=0;i<_1.length;i++){var _7=_1[i],_8={};for(var _9 in _7){if(_9==this.parentProperty||_9=="$27g"||_9=="$42c"||_9=="__ref"||_9.startsWith("_isOpen_")||_9.startsWith("_isFolder_")||_9.startsWith("$399")||_9=="$40a"||_9.startsWith("_selection_")||(_2==false&&_9==this.childrenProperty))continue;_8[_9]=_7[_9];if(_3&&_9==this.childrenProperty&&isc.isAn.Array(_8[_9]))
-{_8[_9]=this.getCleanNodeData(_8[_9])}}
-_4.add(_8)}
-if(_5)return _4[0];return _4}
+,isc.A.getCleanNodeData=function isc_Tree_getCleanNodeData(_1,_2,_3){return isc.Tree.getCleanNodeData(_1,_2,_3,this)}
 ,isc.A.getName=function isc_Tree_getName(_1){var _2=isc.$ad;if(!_1)return _2;var _3=_1[this.nameProperty];if(_3==null)_3=_1[this.idField];if(_3==null){if(!this.isDescendantOf(_1,this.root)&&_1!=this.root)return null;if(!this.$27h)this.$27h=isc.Tree.autoID+++"_";_3=this.$27h+this.$27d++}
 if(!isc.isA.String(_3))_3=_2+_3;_1[this.nameProperty]=_3;return _3}
 ,isc.A.getTitle=function isc_Tree_getTitle(_1){if(!_1)return null;if(_1[this.titleProperty]!=null)return _1[this.titleProperty];var _2=_1[this.nameProperty];if(_2==null)_2=this.defaultNodeTitle;return(isc.endsWith(_2,this.pathDelim)?_2.substring(0,_2.length-this.pathDelim.length):_2)}
@@ -5800,7 +5880,7 @@
 _9[_9.length]=_12}
 _8=_9}
 if(_2==isc.Tree.FOLDERS_ONLY){_9=[];for(var i=0,_11=_8.length;i<_11;i++){if(this.isFolder(_8[i]))_9[_9.length]=_8[i]}}else if(_2==isc.Tree.LEAVES_ONLY){_9=[];for(var i=0,_11=_8.length;i<_11;i++){if(this.isLeaf(_8[i]))_9[_9.length]=_8[i]}}else{_9=_8}
-if(_3){if(!this.$684||(this.$684!=this.sortProp&&_1!=this.getRoot())||(this.$684==this.sortProp&&_1==this.getRoot()))
+if(_3){if(!this.$684||this.alwaysSortGroupHeaders||(this.$684!=this.sortProp&&_1!=this.getRoot())||(this.$684==this.sortProp&&_1==this.getRoot()))
 {_9.sortByProperty(this.sortProp,_4,_3,_6)}}
 return _9}
 ,isc.A.getFolders=function isc_Tree_getFolders(_1,_2,_3,_4,_5){return this.getChildren(_1,isc.Tree.FOLDERS_ONLY,_2,_3,_4,_5)}
@@ -5895,8 +5975,8 @@
 this.$45g=_4;this.$736(true);this.dataChanged()}
 ,isc.A.$27n=function isc_Tree__makeOpenNormalizer(){var _1=this.sortProp,_2=this.sortDirection,_3=this.separateFolders!=false;var _4=isc.SB.create();_4.append("var __tree__ = ",this.getID(),";\rvar value = '';");if(_3){var _5,_6;if(this.sortFoldersBeforeLeaves){_5="0:";_6="1:"}else{_5="1:";_6="0:"}
 _4.append("value+=(__tree__.isFolder(obj) ? '"+_5+"' : '"+_6+"');")}
-if(_1&&_1!="title"){_4.append("var prop = obj['",_1,"'];","if (isc.isA.Number(prop)) prop = prop.stringify(12,true);","else if (isc.isA.Date(prop)) prop = prop.getTime();","if (prop != null) value += prop + ':';")}
-if(_1){_4.append("var title = __tree__.getTitle(obj);","if (isc.isA.Number(title)) title = title.stringify(12,true);","else if (isc.isA.Date(title)) title = title.getTime();","if (title != null) {title = title + ''; value += title.toLowerCase()}")}
+if(_1&&_1!="title"){_4.append("var prop = obj['",_1,"'];","if (isc.isA.Number(prop)) {","if (prop > 0) prop = '1' + prop.stringify(12,true);","else {","prop = 999999999999 + prop;","prop = '0' + prop.stringify(12,true);","}","} else if (isc.isA.Date(prop)) prop = prop.getTime();","if (prop != null) value += prop + ':';")}
+if(_1){_4.append("var title = __tree__.getTitle(obj);","if (isc.isA.Number(title)) {","if (title > 0) title = '1' + title.stringify(12,true);","else {","title = 999999999999 + prop;","title = '0' + title.stringify(12,true);","}","} else if (isc.isA.Date(title)) title = title.getTime();","if (title != null) {title = title + ''; value += title.toLowerCase()}")}
 _4.append("return value;");this.addMethods({$27i:new Function("obj,property",_4.toString())})}
 ,isc.A.loadSubtree=function isc_Tree_loadSubtree(_1,_2,_3){if(!_1)_1=this.getRoot();if(_2==null)_2=this.loadBatchSize;this.$27o=_3?2:1;var _4=0,_5=1;while(_4<_2){var _6=this.$27p(_2,_1,_4,_5++);if(_6==0)break;_4+=_6}
 this.$27o=null;if(_4>0)this.$736(true)}
@@ -5913,7 +5993,15 @@
 _23[_8]=_20}
 if(_5=="level"){_19.addAll(_21)}else{this.discoverTree(_21,_2,_20)}}
 if(_5=="level"&&_19.length>0)this.discoverTree(_19,_2)}
-);isc.B._maxIndex=isc.C+2;isc.ClassFactory.defineClass("Selection");isc.A=isc.Selection.getPrototype();isc.A.enabledProperty="enabled";isc.A.canSelectProperty="canSelect";isc.A.cascadeSelection=false;isc.A.$q7=true;isc.A=isc.Selection;isc.A.NONE="none";isc.A.SINGLE="single";isc.A.MULTIPLE="multiple";isc.A.SIMPLE="simple";isc.A.$24e=0;isc.A=isc.Selection.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$74f="up";isc.A.$74g="down";isc.A.selectionRangeNotLoadedMessage="Can't select that many records at once.<br><br>"+"Please try working in smaller batches.";isc.B.push(isc.A.init=function isc_Selection_init(){if(!this.selectionProperty)this.selectionProperty="_selection_"+isc.Selection.$24e++;this.partialSelectionProperty="$74h"+this.selectionProperty;this.setData((this.data?this.data:[]))}
+,isc.A.getCleanNodeData=function isc_c_Tree_getCleanNodeData(_1,_2,_3,_4){if(_1==null)return null;var _5=[],_6=false;if(!isc.isAn.Array(_1)){_1=[_1];_6=true}
+for(var i=0;i<_1.length;i++){var _8=_1[i],_9={};if(_4==null){var _10=_8.$42c;if(_10)_4=window[_10]}
+for(var _11 in _8){if((_4!=null&&_11==_4.parentProperty)||_11=="$27g"||_11=="$42c"||_11=="__ref"||_11.startsWith("_isOpen_")||_11.startsWith("_isFolder_")||_11.startsWith("$399")||_11=="$40a"||_11.startsWith("_selection_")||(_2==false&&_4&&_11==_4.childrenProperty))
+{continue}
+_9[_11]=_8[_11];if(_3&&_4&&_11==_4.childrenProperty&&isc.isAn.Array(_9[_11]))
+{_9[_11]=_4.getCleanNodeData(_9[_11],true,true,_4)}}
+_5.add(_9)}
+if(_6)return _5[0];return _5}
+);isc.B._maxIndex=isc.C+3;isc.ClassFactory.defineClass("Selection");isc.A=isc.Selection.getPrototype();isc.A.enabledProperty="enabled";isc.A.canSelectProperty="canSelect";isc.A.cascadeSelection=false;isc.A.$q7=true;isc.A=isc.Selection;isc.A.NONE="none";isc.A.SINGLE="single";isc.A.MULTIPLE="multiple";isc.A.SIMPLE="simple";isc.A.$24e=0;isc.A=isc.Selection.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$74f="up";isc.A.$74g="down";isc.A.selectionRangeNotLoadedMessage="Can't select that many records at once.<br><br>"+"Please try working in smaller batches.";isc.B.push(isc.A.init=function isc_Selection_init(){if(!this.selectionProperty)this.selectionProperty="_selection_"+isc.Selection.$24e++;this.partialSelectionProperty="$74h"+this.selectionProperty;this.setData((this.data?this.data:[]))}
 ,isc.A.destroy=function isc_Selection_destroy(){if(this.data)this.ignoreData(this.data);delete this.data}
 ,isc.A.setData=function isc_Selection_setData(_1){if(this.data!=null)this.ignoreData(this.data);this.data=_1;if(this.data!=null)this.observeData(this.data)}
 ,isc.A.observeData=function isc_Selection_observeData(_1){this.observe(_1,"dataChanged","observer.dataChanged()");if(_1.dataArrived)this.observe(_1,"dataArrived","observer.dataChanged()")}
@@ -5968,7 +6056,7 @@
 ,isc.A.selectOnMouseUp=function isc_Selection_selectOnMouseUp(_1,_2){if(_1.selectionType==isc.Selection.NONE)return false;this.logDebug("selectOnMouseUp: recordNum: "+_2);if(this.deselectOthersOnMouseUp){this.selectSingle(this.data.getItem(_2));this.deselectOthersOnMouseUp=false;return true}else if(this.deselectRecordOnMouseUp){this.deselect(this.data.getItem(_2));this.deselectRecordOnMouseUp=false;return true}else if(this.deselectAllOnMouseUp){this.deselectAll();this.deselectAllOnMouseUp=false;return true}else
 return false}
 ,isc.A.getItemList=function isc_Selection_getItemList(){if(this.data&&isc.isA.Tree(this.data))return this.data.getNodeList();return(this.data?this.data:[])}
-);isc.B._maxIndex=isc.C+30;isc.ClassFactory.defineClass("DetailViewer","Canvas","DataBoundComponent");isc.A=isc.DetailViewer.getPrototype();isc.A.dataFetchMode="basic";isc.A.dataArity="either";isc.A.fieldIdProperty="name";isc.A.recordsPerBlock=1;isc.A.blockSeparator="<BR><BR>";isc.A.showEmptyField=true;isc.A.emptyCellValue="&nbsp;";isc.A.labelPrefix="";isc.A.labelSuffix=":";isc.A.valueAlign="left";isc.A.wrapValues=true;isc.A.useInnerWidth=true;isc.A.clipValues=false;isc.A.styleName="detailViewer";isc.A.blockStyle="detailBlock";isc.A.labelStyle="detailLabel";isc.A.cellStyle="detail";isc.A.headerStyle="detailHeader";isc.A.separatorStyle="detail";isc.A.cellPadding=3;isc.A.showEmptyMessage=true;isc.A.emptyMessage="No items to display.";isc.A.emptyMessageStyle="normal";isc.A.loadingMessage="&nbsp;${loadingImage}";isc.A.loadingMessageStyle="normal";isc.A.defaultHeight=35;isc.A.showLabel=true;isc.A=isc.DetailViewer.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$g4="date";isc.B.push(isc.A.initWidget=function isc_DetailViewer_initWidget(){this.Super("initWidget",arguments);if(this.fieldState!=null)this.setFieldState(this.fieldState);else this.setFields(this.fields)}
+);isc.B._maxIndex=isc.C+30;isc.ClassFactory.defineClass("DetailViewer","Canvas","DataBoundComponent");isc.A=isc.DetailViewer.getPrototype();isc.A.dataFetchMode="basic";isc.A.dataArity="either";isc.A.fieldIdProperty="name";isc.A.recordsPerBlock=1;isc.A.blockSeparator="<br><br>";isc.A.showEmptyField=true;isc.A.emptyCellValue="&nbsp;";isc.A.labelPrefix="";isc.A.labelSuffix=":";isc.A.valueAlign="left";isc.A.wrapValues=true;isc.A.useInnerWidth=true;isc.A.clipValues=false;isc.A.styleName="detailViewer";isc.A.blockStyle="detailBlock";isc.A.labelStyle="detailLabel";isc.A.cellStyle="detail";isc.A.headerStyle="detailHeader";isc.A.separatorStyle="detail";isc.A.cellPadding=3;isc.A.showEmptyMessage=true;isc.A.emptyMessage="No items to display.";isc.A.emptyMessageStyle="normal";isc.A.loadingMessage="&nbsp;${loadingImage}";isc.A.loadingMessageStyle="normal";isc.A.defaultHeight=35;isc.A.showLabel=true;isc.A=isc.DetailViewer.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.$g4="date";isc.B.push(isc.A.initWidget=function isc_DetailViewer_initWidget(){this.Super("initWidget",arguments);if(this.fieldState!=null)this.setFieldState(this.fieldState);else this.setFields(this.fields)}
 ,isc.A.setData=function isc_DetailViewer_setData(_1){if(this.data)this.ignore(this.data,"dataChanged");this.data=_1;if(this.data&&this.data.dataChanged){this.observe(this.data,"dataChanged","observer.dataChanged()")}
 this.markForRedraw("new data")}
 ,isc.A.dataChanged=function isc_DetailViewer_dataChanged(){this.applyHilites();this.markForRedraw()}
@@ -6004,7 +6092,8 @@
 return _4}
 ,isc.A.getRawValue=function isc_DetailViewer_getRawValue(_1,_2){if(!_1||!_2)return null;if(_2.dataPath)return isc.Canvas.$70o(_2.dataPath,_1);return _1[_2.name]}
 ,isc.A.getCellCSSText=function isc_DetailViewer_getCellCSSText(_1,_2,_3,_4){return this.getRecordHiliteCSSText(_3,"",_2)}
-,isc.A.getCellStyle=function isc_DetailViewer_getCellStyle(_1,_2,_3,_4){if(_2&&_2.getCellStyle){return _2.getCellStyle(_1,_2,_3,_4)}
+,isc.A.getCellStyle=function isc_DetailViewer_getCellStyle(_1,_2,_3,_4){if(_2){if(_2.getCellStyle)return _2.getCellStyle(_1,_2,_3,_4);if(this.isPrinting&&_2.printCellStyle){return _2.printCellStyle}
+if(_2.cellStyle){return _2.cellStyle}}
 return(this.isPrinting&&this.printCellStyle!=null)?this.printCellStyle:this.cellStyle}
 ,isc.A.getSelectedRecord=function isc_DetailViewer_getSelectedRecord(){return this.data.get(0)}
 ,isc.A.getCellValue=function isc_DetailViewer_getCellValue(_1,_2){var _3=this.getRawValue(_1,_2);if(isc.isA.String(_2.formatCellValue)){_2.formatCellValue=isc.Func.expressionToFunction("value,record,field,viewer",_2.formatCellValue)}
@@ -6025,7 +6114,7 @@
 ,isc.A.output_header=function isc_DetailViewer_output_header(_1,_2,_3){return"<TD COLSPAN="+(_3.getLength()+1)+" CLASS='"+(this.isPrinting&&this.printHeaderStyle?this.printHeaderStyle:this.headerStyle)+"'>"+_2.value+"</TD>"}
 ,isc.A.output_separator=function isc_DetailViewer_output_separator(_1,_2,_3){var _4=(_2.width==null?_2.defaultSeparatorWidth:_2.width),_5=(_2.height==null?_2.defaultSeparatorHeight:_2.height);return"<TD COLSPAN="+(_3.getLength()+1)+" CLASS='"+this.separatorStyle+"'>"+isc.Canvas.spacerHTML(_4,_5)+"</TD>"}
 ,isc.A.getEmptyMessage=function isc_DetailViewer_getEmptyMessage(){return this.emptyMessage}
-,isc.A.getLoadingMessage=function isc_DetailViewer_getLoadingMessage(){return this.loadingMessage.evalDynamicString(this,{loadingImage:this.imgHTML(isc.Canvas.loadingImageSrc,isc.Canvas.loadingImageSize,isc.Canvas.loadingImageSize)})}
+,isc.A.getLoadingMessage=function isc_DetailViewer_getLoadingMessage(){return this.loadingMessage==null?"&nbsp;":this.loadingMessage.evalDynamicString(this,{loadingImage:this.imgHTML(isc.Canvas.loadingImageSrc,isc.Canvas.loadingImageSize,isc.Canvas.loadingImageSize)})}
 ,isc.A.emptyMessageHTML=function isc_DetailViewer_emptyMessageHTML(){if(this.isOffline()){if(!this.showOfflineMessage)return"&nbsp;"}else{if(!this.showEmptyMessage)return"&nbsp;"}
 return"<TABLE WIDTH=100%>"+"<TR><TD CLASS='"+this.emptyMessageStyle+"' ALIGN=CENTER><BR><BR>"+(this.isOffline()?this.offlineMessage:this.getEmptyMessage())+"<\/TD><\/TR><\/TABLE>"}
 ,isc.A.loadingMessageHTML=function isc_DetailViewer_loadingMessageHTML(){return"<TABLE WIDTH=100%>"+"<TR><TD CLASS='"+this.loadingMessageStyle+"' ALIGN=CENTER><BR><BR>"+this.getLoadingMessage()+"<\/TD><\/TR><\/TABLE>"}
@@ -6048,12 +6137,13 @@
 delete _10[_16]}
 _2.push(_10)}
 return _2}
-);isc.B._maxIndex=isc.C+42;isc.DetailViewer.registerStringMethods({getCellValue:"record,field",getCellStyle:"value,field,record,viewer",getCellCSSText:"value,field,record,viewer",formatCellValue:"value,record,field,viewer",fieldStateChanged:""});isc.ClassFactory.defineClass("GridRenderer","Canvas");isc.A=isc.GridRenderer;isc.A.SELECTED="Selected";isc.A.DISABLED="Disabled";isc.A.OVER="Over";isc.A.standardStyleSuffixes=["","Over","Selected","SelectedOver","Disabled","DisabledOver","DisabledSelected","DisabledSelectedOver","Dark","OverDark","SelectedDark","SelectedOverDark","DisabledDark"];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.A.totalRows=0;isc.A.drawAllMaxCells=250;isc.A.recordCanSelectProperty="canSelect";isc.A.isSeparatorProperty="isSeparator";isc.A.singleCellValueProperty="singleCellValue";isc.A.scrollRedrawDelay=75;isc.A.drawAheadRatio=1.3;isc.A.quickDrawAheadRatio=1.0;isc.A.cellHeight=20;isc.A.fixedRowHeights=true;isc.A.fixedColumnWidths=true;isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.canSelectOnRightMouse=true;isc.A.hoverByCell=true;isc.A.backgroundColor="white";isc.A.tableStyle="listTable";isc.A.baseStyle="cell";isc.A.alternateRowFrequency=1;isc.A.emptyCellValue="&nbsp;";isc.A.fastCellUpdates=true;isc.A.overflow="auto";isc.A.$r9=true;isc.A.canFocus=true;isc.A.animateRowsMaxTime=1000;isc.A.snapToCells=false;isc.A.snapInsideBorder=false;isc.A.snapHDirection=isc.Canvas.BEFORE;isc.A.snapVDirection=isc.Canvas.BEFORE;isc.B.push(isc.A.setFastCellUpdates=function isc_GridRenderer_setFastCellUpdates(_1){if(_1&&!isc.Browser.isIE){this.fastCellUpdates=false;return}
+);isc.B._maxIndex=isc.C+42;isc.DetailViewer.registerStringMethods({getCellValue:"record,field",getCellStyle:"value,field,record,viewer",getCellCSSText:"value,field,record,viewer",formatCellValue:"value,record,field,viewer",fieldStateChanged:""});isc.ClassFactory.defineClass("GridRenderer","Canvas");isc.A=isc.GridRenderer;isc.A.SELECTED="Selected";isc.A.DISABLED="Disabled";isc.A.OVER="Over";isc.A.standardStyleSuffixes=["","Over","Selected","SelectedOver","Disabled","DisabledOver","DisabledSelected","DisabledSelectedOver","Dark","OverDark","SelectedDark","SelectedOverDark","DisabledDark"];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.A.totalRows=0;isc.A.drawAllMaxCells=250;isc.A.recordCanSelectProperty="canSelect";isc.A.isSeparatorProperty="isSeparator";isc.A.singleCellValueProperty="singleCellValue";isc.A.instantScrollTrackRedraw=true;isc.A.scrollRedrawDelay=75;isc.A.drawAheadRatio=1.3;isc.A.quickDrawAheadRatio=1.0;isc.A.cellHeight=20;isc.A.fixedRowHeights=true;isc.A.fixedColumnWidths=true;isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.canSelectOnRightMouse=true;isc.A.hoverByCell=true;isc.A.backgroundColor="white";isc.A.tableStyle="listTable";isc.A.baseStyle="cell";isc.A.alternateRowFrequency=1;isc.A.emptyCellValue="&nbsp;";isc.A.fastCellUpdates=true;isc.A.overflow="auto";isc.A.$r9=true;isc.A.canFocus=true;isc.A.animateRowsMaxTime=1000;isc.A.snapToCells=false;isc.A.snapInsideBorder=false;isc.A.snapHDirection=isc.Canvas.BEFORE;isc.A.snapVDirection=isc.Canvas.BEFORE;isc.B.push(isc.A.setFastCellUpdates=function isc_GridRenderer_setFastCellUpdates(_1){if(_1&&!isc.Browser.isIE){this.fastCellUpdates=false;return}
 if(_1==this.fastCellUpdates)return;this.fastCellUpdates=_1;this.markForRedraw()}
-);isc.B._maxIndex=isc.C+1;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.A.$57k=["<DIV style='position:"+(isc.Page.isRTL()?"inline":"relative")+";z-index:",,";'>",,"</DIV>"];isc.A.$623="<table style='position:absolute;top:0px;font-size:1px;height:100%;width:100%;z-index:1;overflow:hidden;visibility:hidden;'><tr><td>&nbsp;</td></tr></table>";isc.A.maxAnimateSlideInRows=100;isc.A.$27r="none";isc.A.$77c={};isc.A.$27s="<DIV cellClipDiv=true style='overflow:hidden;";isc.A.$80q="<div>";isc.A.$80r="</div>";isc.A.$57l="within";isc.A.$57m="expand";isc.A.$14k="cell";isc.A.alignSnapToMap={left:{top:"TL",center:"L",bottom:"BL"},right:{top:"TR",center:"R",bottom:"BR"},center:{top:"T",center:"C",bottom:"B"}};isc.A.recordCustomStyleProperty="customStyle";isc.A.showSelectedStyle=true;isc.A.$27t="NOBR";isc.A.$27u="cellClipDiv";isc.A.$o5="height";isc.A.$27v="minHeight";isc.A.$39=";";isc.A.$721="padding-top:0px;padding-bottom:0px;";isc.A.$722="overflow:hidden;";isc.A.avgRowHeight=60;isc.B.push(isc.A.initWidget=function isc_GridRenderer_initWidget(){if(!this.$26a)this.setColumnWidths([]);if(this.selection)this.setSelection(this.selection);if(this.overflow==isc.Canvas.VISIBLE){this.showAllRows=true;this.showAllColumns=true}
-if(!this.fixedRowHeights&&this.virtualScrolling==null)this.virtualScrolling=true;if(!this.fixedRowHeights&&!this.showAllRows){if(this.showCustomScrollbars==false){this.logInfo("Variable height records cannot be used with native scrollbars;"+" setting showCustomScrollbars:true on this GridRenderer and using"+" the special 'NativeScrollbar' class as a scrollbarConstructor.");this.showCustomScrollbars=true;this.scrollbarConstructor="NativeScrollbar"}
-this.showAllColumns=true}
+);isc.B._maxIndex=isc.C+1;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.A.$57k=["<DIV style='position:"+(isc.Page.isRTL()?"inline":"relative")+";z-index:",,";'>",,"</DIV>"];isc.A.$623="<table style='position:absolute;top:0px;font-size:1px;height:100%;width:100%;z-index:1;overflow:hidden;visibility:hidden;'><tr><td>&nbsp;</td></tr></table>";isc.A.maxAnimateSlideInRows=100;isc.A.$27r="none";isc.A.$77c={};isc.A.$27s="<DIV cellClipDiv=true style='overflow:hidden;";isc.A.$80q="<div>";isc.A.$80r="</div>";isc.A.$57l="within";isc.A.$57m="expand";isc.A.$14k="cell";isc.A.alignSnapToMap={left:{top:"TL",center:"L",bottom:"BL"},right:{top:"TR",center:"R",bottom:"BR"},center:{top:"T",center:"C",bottom:"B"}};isc.A.recordCustomStyleProperty="customStyle";isc.A.showSelectedStyle=true;isc.A.$27t="NOBR";isc.A.$27u="cellClipDiv";isc.A.$o5="height";isc.A.$27v="minHeight";isc.A.$39=";";isc.A.$721="padding-top:0px;padding-bottom:0px;";isc.A.$722="overflow:hidden;";isc.A.avgRowHeight=60;isc.B.push(isc.A.initWidget=function isc_GridRenderer_initWidget(){if(!this.$26a)this.setColumnWidths([]);if(this.selection)this.setSelection(this.selection);if(this.overflow==isc.Canvas.VISIBLE){this.showAllRows=true}
+if(!this.fixedRowHeights&&this.virtualScrolling==null)this.virtualScrolling=true;if(!this.fixedRowHeights&&!this.showAllRows){if(this.showCustomScrollbars==false){this.logInfo("Variable height records cannot be used with native scrollbars;"+" setting showCustomScrollbars:true on this GridRenderer and using"+" the special 'NativeScrollbar' class as a scrollbarConstructor.");this.showCustomScrollbars=true;this.scrollbarConstructor="NativeScrollbar"}}
 this.setFastCellUpdates(this.fastCellUpdates)}
+,isc.A.shouldShowAllColumns=function isc_GridRenderer_shouldShowAllColumns(){if(this.showAllColumns)return true;if(!this.fixedRowHeights&&!this.showAllRows)return true;if(this.overflow==isc.Canvas.VISIBLE){return true}
+return false}
 ,isc.A.isEmpty=function isc_GridRenderer_isEmpty(){return false}
 ,isc.A.$27w=function isc_GridRenderer__showEmptyMessage(_1,_2){return this.getEmptyMessageHTML(_1,_2,this.grid.isOffline())}
 ,isc.A.getEmptyMessageHTML=function isc_GridRenderer_getEmptyMessageHTML(_1,_2,_3){if(!_3){if(!this.showEmptyMessage)return"&nbsp;"}else{if(!this.showOfflineMessage)return"&nbsp;"}
@@ -6064,7 +6154,8 @@
 ,isc.A.getEmptyMessage=function isc_GridRenderer_getEmptyMessage(){return this.emptyMessage}
 ,isc.A.getOfflineMessage=function isc_GridRenderer_getOfflineMessage(){return this.grid.offlineMessage}
 ,isc.A.getInnerHTML=function isc_GridRenderer_getInnerHTML(){var _1=this.getTableHTML(),_2=this.$57k;_2[1]=this.getTableZIndex();_2[3]=_1;if(isc.Browser.isMoz)_2[5]=this.$623;return _2.join(isc.emptyString)}
-,isc.A.shouldUseQuickDrawAheadRatio=function isc_GridRenderer_shouldUseQuickDrawAheadRatio(){return this.useQuickDrawAheadRatio||this.isDragScrolling()||this.isRepeatTrackScrolling()}
+,isc.A.isFastScrolling=function isc_GridRenderer_isFastScrolling(){return this.isDragScrolling()||this.isRepeatTrackScrolling()}
+,isc.A.shouldUseQuickDrawAheadRatio=function isc_GridRenderer_shouldUseQuickDrawAheadRatio(){return this.useQuickDrawAheadRatio||this.isFastScrolling()}
 ,isc.A.doneFastScrolling=function isc_GridRenderer_doneFastScrolling(){var _1=this.$50z;if(_1){this.$50v=true;this.markForRedraw("Done Fast scrolling.")}}
 ,isc.A.addDrawAhead=function isc_GridRenderer_addDrawAhead(_1,_2,_3,_4,_5){var _6=this.shouldUseQuickDrawAheadRatio(),_7=_6&&this.quickDrawAheadRatio!=null?this.quickDrawAheadRatio:this.drawAheadRatio,_8=Math.ceil((_2-_1)*_7);if(this.$50v)_4=null;if(_4!=null){if(_4)_2=_1+_8;else _1=_2-_8}else{if(_1==0)_2=_8;else{var _9=Math.ceil((_8-(_2-_1))/2);_1-=_9;_2+=_9}}
 if(_1<0){_2-=_1;_1=0}
@@ -6073,7 +6164,7 @@
 ,isc.A.getExtraRowHeight=function isc_GridRenderer_getExtraRowHeight(_1,_2){var _3=0;for(var _4=_1;_4<_2;_4++){var _5=this.getRowHeight(this.getCellRecord(_4,0),_4),_6=(_5-this.cellHeight);if(_6>0){_3+=_6}}
 return _3}
 ,isc.A.getDrawArea=function isc_GridRenderer_getDrawArea(_1){var _2=this.getTotalRows(),_3,_4,_5;var _6=_2*this.fields.length,_7=_6<=this.drawAllMaxCells&&!isc.EH.dragging&&!this.isAnimating()&&!(this.parentElement&&this.parentElement.isAnimating());if(this.showAllRows||_7){_3=0;_4=Math.max(_2-1,0)}else{var _8=this.$80e();_3=_8[0];_4=_8[1];_5=_8[2]}
-var _9,_10,_11=this.fields.length,_12;if(_1!=null){_9=_1;_10=_1+1}else if(this.showAllColumns||_7){_9=0;_10=_11-1}else{var _13=this.getVisibleColumns();_12=(this.lastScrollLeft==null?null:this.lastScrollLeft<this.getScrollLeft());var _14=this.addDrawAhead(_13[0],_13[1],_11,_12);_9=_14[0];_10=_14[1]}
+var _9,_10,_11=this.fields.length,_12;if(_1!=null){_9=_1;_10=_1+1}else if(_7||this.shouldShowAllColumns()){_9=0;_10=_11-1}else{var _13=this.getVisibleColumns();_12=(this.lastScrollLeft==null?null:this.lastScrollLeft<this.getScrollLeft());var _14=this.addDrawAhead(_13[0],_13[1],_11,_12);_9=_14[0];_10=_14[1]}
 if(this.cacheDOM&&!this.$508){this.$508=_4-_3;this.$509=_10-_9}
 return[_3,_4,_9,_10]}
 ,isc.A.$80e=function isc_GridRenderer__getDrawRows(){var _1=this.$27x();var _2=(this.lastScrollTop==null?null:this.lastScrollTop<this.getScrollTop());var _3=this.getTotalRows();var _4=this.addDrawAhead(_1[0],_1[1],_3,_2,true);_4[2]=_2;return _4}
@@ -6090,11 +6181,11 @@
 return _6}
 ,isc.A.$270=function isc_GridRenderer__scrollToTargetRow(){var _1=this.$27y,_2=this.$27z;var _3=this.getRowTop(_1)+_2;this.$274=true;this.$sz=null;this.scrollTo(null,_3);this.$274=false;this.$271=null}
 ,isc.A.scrollTo=function isc_GridRenderer_scrollTo(_1,_2,_3,_4){if(isc.$cv)arguments.$cw=this;if(this.$60s&&_2!=null&&!_3){var _5=this.getScrollTop(),_6=_2-_5;if(_6!=0){this.$273(_5,_6);_2=Math.min(_2,this.getRowTop(this.getTotalRows()-1))}}
-this.invokeSuper(isc.GridRenderer,"scrollTo",_1,_2,_3,_4);if(this.isDirty()||this.$80f)return;var _7=(this.$276()||this.$277());if(_7){if(this.scrollRedrawDelay==0){this.markForRedraw("scrolled")}else{var _8=this;this.fireOnPause("scrollRedraw",function(){_8.markForRedraw("scrolled")},this.scrollRedrawDelay)}
+this.invokeSuper(isc.GridRenderer,"scrollTo",_1,_2,_3,_4);if(this.isDirty()||this.$80f)return;var _7=(this.$276()||this.$277());if(_7){if(!this.isFastScrolling()&&this.instantScrollTrackRedraw){this.redraw("scrolled")}else if(this.scrollRedrawDelay==0){this.markForRedraw("scrolled")}else{var _8=this;this.fireOnPause("scrollRedraw",function(){_8.markForRedraw("scrolled")},this.scrollRedrawDelay)}
 this.$250=true}}
 ,isc.A.$276=function isc_GridRenderer__needRowRedraw(){if(this.showAllRows)return false;var _1=this.getVisibleRows(),_2=_1[0],_3=_1[1];var _4=this.getTotalRows();if(_3>_4-1)_3=_4-1;var _5=(_2<this.$252||_3>this.$253);return _5}
-,isc.A.$277=function isc_GridRenderer__needColumnRedraw(){if(this.showAllColumns)return false;var _1=this.getVisibleColumns(),_2=_1[0],_3=_1[1],_4=(_2<this.$254||_3>this.$255);return _4}
-,isc.A.setOverflow=function isc_GridRenderer_setOverflow(_1){if(_1==isc.Canvas.VISIBLE){this.showAllRows=true;this.showAllColumns=true}
+,isc.A.$277=function isc_GridRenderer__needColumnRedraw(){if(this.shouldShowAllColumns())return false;var _1=this.getVisibleColumns(),_2=_1[0],_3=_1[1],_4=(_2<this.$254||_3>this.$255);return _4}
+,isc.A.setOverflow=function isc_GridRenderer_setOverflow(_1){if(_1==isc.Canvas.VISIBLE){this.showAllRows=true}
 return this.Super("setOverflow",arguments)}
 ,isc.A.getRowChunkNum=function isc_GridRenderer_getRowChunkNum(_1){return Math.round(_1/ this.$508)}
 ,isc.A.getColChunkNum=function isc_GridRenderer_getColChunkNum(_1){return Math.round(_1/ this.$509)}
@@ -6147,7 +6238,7 @@
 if(!this.$60s){delete this.$27y;delete this.$60t;delete this.$271;delete this.$60u}}else{var _23=_16[0],_24=_16[1]+1;if(this.$28q){if(_23>_3||_24<_2){_2=_3}else{if(!this.$73q){_2=Math.max(_2,_23);_3=Math.min(_3,_24)}}}}
 this.$254=_16[2];this.$255=_16[3];var _25=_1!=null&&isc.isAn.Array(_1),_26,_27;if(!_25)_4=false;if(_1!=null){if(_25){_26=_1[0];_27=_1[1]+1}else{_26=_1;_27=_1+1}}else{_26=this.$254;_27=this.$255+1}
 var _28;if(_4)_28=_1;else{_28=[];for(var i=_26;i<_27;i++){_28[_28.length]=i}}
-var _29=_28.length;var _30=(this.showAllColumns||_1!=null);var _31=isc.StringBuffer.create(),_32=this.fields,_33=this.$26a;this.$28r=_28[0]!=0?null:this.$26a[0];var _34,_35,_36,_37;if(!_30){_34=this.$26a.slice(0,_26).sum(),_35=this.$26a.slice(_27,this.$26a.length).sum(),_36=this.$26a.sum()
+var _29=_28.length;var _30=(this.shouldShowAllColumns()||_1!=null);var _31=isc.StringBuffer.create(),_32=this.fields,_33=this.$26a;this.$28r=_28[0]!=0?null:this.$26a[0];var _34,_35,_36,_37;if(!_30){_34=this.$26a.slice(0,_26).sum(),_35=this.$26a.slice(_27,this.$26a.length).sum(),_36=this.$26a.sum()
 _37=(this.cacheDOM||(isc.Browser.isIE&&!isc.Browser.isIE8)?"margin":"padding")}
 var _38=this.autoFit;var _39="";if(_1!=null){if(!_38&&this.fixedColumnWidths){_39=" WIDTH=100%"}}else if(this.isPrinting&&this.autoFit){_39=" WIDTH=100%"}else if((isc.Browser.isIE8Strict||isc.Browser.isMoz||isc.Browser.isSafari)&&!_38)
 {var _40=this.$26a.slice(_26,_27).sum();_39=" WIDTH="+_40}
@@ -6255,15 +6346,15 @@
 if(_8&&(_3==-1||_4==-1)){_8=false}
 if(_8){this.placeEmbeddedComponent(_1)}else{this.markForRedraw("added embedded component")}
 return _1}
-);isc.evalBoundary;isc.B.push(isc.A.$80d=function isc_GridRenderer__handleEmbeddedComponentResize(_1,_2,_3){var _4=_1.embeddedPosition;if(_4!=this.$57l){if(_3!=null&&_3!=0)this.markForRedraw('embedded component resized')}else{this.placeEmbeddedComponent(_1)}}
+);isc.evalBoundary;isc.B.push(isc.A.$80d=function isc_GridRenderer__handleEmbeddedComponentResize(_1,_2,_3){this.logWarn("AND we're observing a resize...:"+[_1,_2,_3]);var _4=_1.embeddedPosition;if(_4!=this.$57l){if(_3!=null&&_3!=0)this.markForRedraw('embedded component resized')}else{this.placeEmbeddedComponent(_1)}}
 ,isc.A.updateEmbeddedComponentCoords=function isc_GridRenderer_updateEmbeddedComponentCoords(_1,_2,_3,_4){_1.setProperty("$289",_3)}
 ,isc.A.placeEmbeddedComponent=function isc_GridRenderer_placeEmbeddedComponent(_1){var _2=_1.$289;if(_2==null||_2<this.$252||_2>this.$253){if(_1.isDrawn())_1.clear();return}
 var _3=_1.embeddedRecord,_4=_1.embeddedPosition,_5=_1.$57n,_6=this.getRowTop(_2),_7=_5!=null?this.getColumnLeft(_5):0,_8=(_5!=null&&_5>=0)?this.getColumnWidth(_5):Math.min(this.getInnerWidth()+this.getScrollLeft(),this.$26a.sum());if(_4==this.$57l){var _9=this.getEmbeddedComponentSnapTo(_1,_3,_2,_5),_10=_1.snapEdge||_9;var _11=this.getRowSize(_2),_12=_1._percent_width,_13=_1._percent_height,_14,_15;if(_1.snapOffsetLeft)_8-=_1.snapOffsetLeft;if(isc.isA.String(_12)&&_12.endsWith("%")){_14=Math.round((parseInt(_12)*_8)/100)}
 if(isc.isA.String(_13)&&_13.endsWith("%")){_15=Math.round((parseInt(_13)*_11)/100)}
 var _16=_15!=null?_15:_1.getHeight(),_17=_14!=null?_14:_1.getWidth();if(_15||_14){_1.resizeTo(_14,_15);_1._percent_width=_12;_1._percent_height=_13}
 isc.Canvas.snapToEdge([_7,_6,_8,_11],_9,_1,_10)}else{_1.moveTo(_7,_6);_1.setWidth(_8)}
-var _18=this.isDrawn();if(_18&&!_1.isDrawn())_1.draw();var _19=this.isDirty(),_20=this.getRowHeight(_3,_2);if(_19&&(_20!=this.getRowSize(_2))){this.setRowHeight(_2,_20,_3);this.refreshRow(_2)}
-if(_18){if(_4!=this.$57l){var _21=this.getDrawnRowHeight(_2)-_1.getVisibleHeight()-1;_1.moveTo(null,this.getRowTop(_2)+_21)}
+var _18=this.isDrawn();if(_18&&!_1.isDrawn())_1.draw();var _19=this.isDirty(),_20=this.getRowHeight(_3,_2),_21=!this.isDirty()||_19;if(_21&&(_20!=this.getRowSize(_2))){this.setRowHeight(_2,_20,_3);this.refreshRow(_2)}
+if(_18){if(_4!=this.$57l){var _22=this.getDrawnRowHeight(_2)-_1.getVisibleHeight()-1;_1.moveTo(null,this.getRowTop(_2)+_22)}
 if(!_1.isVisible()){if(this.shouldAnimateEmbeddedComponent(_1)){_1.animateShow()}else{_1.show()}}}
 this.updateEmbeddedComponentZIndex(_1)}
 ,isc.A.getEmbeddedComponentSnapTo=function isc_GridRenderer_getEmbeddedComponentSnapTo(_1,_2,_3,_4){if(_1.snapTo!=null)return _1.snapTo;if(_4==null){return"TL"}
@@ -6343,7 +6434,7 @@
 ,isc.A.setRowStyle=function isc_GridRenderer_setRowStyle(_1,_2,_3){if(isc.$cv)arguments.$cw=this;if(_1==null||_1<0){this.logWarn("setRowStyle: bad rowNum: "+_1);return false}
 var _4=this.getTableElement(_1,_3);if(_4==null){return false}
 var _5=this.getCellRecord(_1,_3);if(_5&&_5.$29m){return}
-if(_3!=null){this.$29h(_5,_1,_3,_4,_2)}else{var _6=this.getTableElement(_1);if(_6!=null){var _7="TD",_8=(!this.showAllColumns?this.$254:0),_9=(!this.showAllColumns?this.$255:this.fields.length-1),_10=0;for(var _11=_8;_11<=_9;_11++,_10++){var _4;if(this.showColumnsSeparately||this.cacheDOM){_4=this.getTableElement(_1,_11)}else{_4=_6.cells[_10]}
+if(_3!=null){this.$29h(_5,_1,_3,_4,_2)}else{var _6=this.getTableElement(_1);if(_6!=null){var _7="TD",_8=(!this.shouldShowAllColumns()?this.$254:0),_9=(!this.shouldShowAllColumns()?this.$255:this.fields.length-1),_10=0;for(var _11=_8;_11<=_9;_11++,_10++){var _4;if(this.showColumnsSeparately||this.cacheDOM){_4=this.getTableElement(_1,_11)}else{_4=_6.cells[_10]}
 if(_4==null)continue;this.$29h(_5,_1,_11,_4,_2)}}}
 return true}
 ,isc.A.refreshCellStyle=function isc_GridRenderer_refreshCellStyle(_1,_2,_3){return this.setCellStyle(_1,_2,_3)}
@@ -6404,7 +6495,7 @@
 ,isc.A.shouldShowRollOver=function isc_GridRenderer_shouldShowRollOver(_1,_2){return(this.showRollOver&&!this.$28j)}
 ,isc.A.updateRollOver=function isc_GridRenderer_updateRollOver(_1,_2){this.setRowStyle(_1,null,(this.useCellRollOvers?_2:null))}
 ,isc.A.startHover=function isc_GridRenderer_startHover(){}
-,isc.A.mouseMove=function isc_GridRenderer_mouseMove(_1,_2){if(this.$29p())return;var _3=this.getEventRow(),_4=this.getEventColumn();if(_3<0||_4<0)return;if(!(_3==this.lastOverRow&&_4==this.lastOverCol)){var _5=(_3!=this.lastOverRow||_4<0);var _6=(_3>=0&&_4>=0&&this.cellIsEnabled(_3,_4));if(this.lastOverRow!=null&&this.lastOverCol!=null){var _7=this.lastOverRow,_8=this.lastOverCol,_9=this.getCellRecord(_7,_8);this.lastOverRow=null;this.lastOverCol=null;if((this.hoverByCell||_5)&&this.shouldShowRollOver(_7,_8))
+,isc.A.mouseMove=function isc_GridRenderer_mouseMove(_1,_2){if(this.$29p())return;var _3=this.getEventRow(),_4=this.getEventColumn();if(!(_3==this.lastOverRow&&_4==this.lastOverCol)){var _5=(_3!=this.lastOverRow||_4<0);var _6=(_3>=0&&_4>=0&&this.cellIsEnabled(_3,_4));if(this.lastOverRow!=null&&this.lastOverCol!=null){var _7=this.lastOverRow,_8=this.lastOverCol,_9=this.getCellRecord(_7,_8);this.lastOverRow=null;this.lastOverCol=null;if((this.hoverByCell||_5)&&this.shouldShowRollOver(_7,_8))
 {this.updateRollOver(_7,_8,_6);if(this.getCanHover()&&!this.keepHoverActive)this.stopHover()}
 if(this.cellOut){this.cellOut(_9,_7,_8)}
 if(_5&&this.rowOut){this.rowOut(_9,_7,_8)}}
@@ -6412,8 +6503,8 @@
 if(this.getCanHover()){isc.Hover.setAction(this,this.$29q,[_3,_4],this.hoverDelay)}}
 if(this.cellOver){this.cellOver(this.getCellRecord(_3,_4),_3,_4)}
 if(_5&&this.rowOver){this.rowOver(this.getCellRecord(_3,_4),_3,_4)}}}
-if(this.cellMove){this.cellMove(this.getCellRecord(_3,_4),_3,_4)}
-if(this.rowMove){this.rowMove(this.getCellRecord(_3,_4),_3,_4)}}
+if(_3>=0&&_4>=0){if(this.cellMove){this.cellMove(this.getCellRecord(_3,_4),_3,_4)}
+if(this.rowMove){this.rowMove(this.getCellRecord(_3,_4),_3,_4)}}}
 ,isc.A.$29p=function isc_GridRenderer__suppressEventHandling(){if(this.$28j!=null)return true;return false}
 ,isc.A.mouseOut=function isc_GridRenderer_mouseOut(){var _1=isc.EH.getTarget();if(this.$29a){var _2=this.$29a;for(var i=0;i<_2.length;i++){if(_2[i].contains(_1,true)){return}}}
 if(_1==this&&!isc.EH.getDragTarget()){return}
@@ -6438,18 +6529,19 @@
 this.ignore(this.selection,"setSelected");delete this.selection}}
 ,isc.A.$29s=function isc_GridRenderer__cellSelectionChanged(_1){if(this.cellSelectionChanged){if(this.cellSelectionChanged(_1)==false)return false}
 this.refreshCellStyles(_1)}
-,isc.A.$29t=function isc_GridRenderer__rowSelectionChanged(_1,_2){if(this.selectionChanged&&(this.selectionChanged(_1,_2)==false))return false;var _3=this.selection,_4=_3.lastSelectionItem,_5=_3.data.indexOf(_4,this.$252,this.$253);if(_5==-1)_5=_3.data.indexOf(_4);if(_5==-1)return;this.updateRowSelection(_5)}
+,isc.A.$29t=function isc_GridRenderer__rowSelectionChanged(_1,_2){if(this.handleSelectionChanged(_1,_2)==false)return false;var _3=this.selection,_4=_3.lastSelectionItem,_5=_3.data.indexOf(_4,this.$252,this.$253);if(_5==-1)_5=_3.data.indexOf(_4);if(_5==-1)return;this.updateRowSelection(_5)}
+,isc.A.handleSelectionChanged=function isc_GridRenderer_handleSelectionChanged(_1,_2){if(this.selectionChanged)return this.selectionChanged(_1,_2)}
 ,isc.A.updateRowSelection=function isc_GridRenderer_updateRowSelection(_1){this.setRowStyle(_1)}
 ,isc.A.selectionEnabled=function isc_GridRenderer_selectionEnabled(){return this.selection!=null}
 ,isc.A.canSelectRecord=function isc_GridRenderer_canSelectRecord(_1){return(_1!=null&&_1[this.recordCanSelectProperty]!==false)}
 ,isc.A.mouseDown=function isc_GridRenderer_mouseDown(){if(this.$29p())return;var _1=this.getEventRow(),_2=this.getEventColumn();if(!(_1>=0&&_2>=0))return;if(!this.cellIsEnabled(_1,_2))return false;this.$29u=_1;this.$29v=_2;this.$723=isc.EH.getX();this.$724=isc.EH.getY();var _3=this.getCellRecord(_1,_2);if(!isc.EH.rightButtonDown()){return this.$29w(_3,_1,_2)}else{return this.$29x(_3,_1,_2)}}
 ,isc.A.rightMouseDown=function isc_GridRenderer_rightMouseDown(){return this.mouseDown()}
 ,isc.A.$29w=function isc_GridRenderer__cellMouseDown(_1,_2,_3){var _4;if(this.cellMouseDown&&(this.cellMouseDown(_1,_2,_3)==false))_4=false;if(this.rowMouseDown&&(this.rowMouseDown(_1,_2,_3)==false))_4=false;if(this.recordMouseDown&&this.recordMouseDown(_2,_3)==false)_4=false;if(_4==false)return false;this.selectOnMouseDown(_1,_2,_3)}
-,isc.A.selectOnMouseDown=function isc_GridRenderer_selectOnMouseDown(_1,_2,_3){if(!this.selectionEnabled())return true;if(_2>=0&&_3>=0&&this.canSelectRecord(_1)){this.selection.selectOnMouseDown(this,_2,_3)}}
+,isc.A.selectOnMouseDown=function isc_GridRenderer_selectOnMouseDown(_1,_2,_3){if(!this.selectionEnabled())return true;if(_2>=0&&_3>=0&&this.canSelectRecord(_1)){this.$828=true;this.selection.selectOnMouseDown(this,_2,_3)}}
 ,isc.A.$29x=function isc_GridRenderer__cellRightMouseDown(_1,_2,_3){if(this.canSelectOnRightMouse)this.selectOnRightMouseDown(_1,_2,_3)}
 ,isc.A.selectOnRightMouseDown=function isc_GridRenderer_selectOnRightMouseDown(_1,_2,_3){this.selectOnMouseDown(_1,_2,_3)}
 ,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)}
+,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}}
 if(isc.EH.getY()==this.$724){_2=this.$29v}
@@ -6478,7 +6570,8 @@
 var _12=isc.Element.$to(this.baseStyle)
 _6+=_11;_7-=_12;_9+=_11}
 if(_3.dragOperation==_3.DRAG_RESIZE){var _13=isc.EH.resizeEdge.contains("T");return _13?_6:_7}else{if(_4==isc.Canvas.BEFORE){return _6}else if(_4==isc.Canvas.AFTER){return _9}else{if(_1<=_10)return _6;else return _9}}}
-,isc.A.getColumnAutoSize=function isc_GridRenderer_getColumnAutoSize(_1,_2,_3){var _4=this.$292=this.$292||isc.Canvas.create({top:-1000,width:1,height:1,autoDraw:false,_generated:true});var _5=this.autoFit,_6=this.wrapCells;this.autoFit=true;this.wrapCells=false;if(_2==null||_3==null){var _7=this.getDrawArea();_2=_7[0];_3=_7[1]+1}
+,isc.A.getColumnAutoSize=function isc_GridRenderer_getColumnAutoSize(_1,_2,_3){if(this.getTotalRows()==0){return null}
+var _4=this.$292=this.$292||isc.Canvas.create({top:-1000,width:1,height:1,autoDraw:false,_generated:true});var _5=this.autoFit,_6=this.wrapCells;this.autoFit=true;this.wrapCells=false;if(_2==null||_3==null){var _7=this.getDrawArea();_2=_7[0];_3=_7[1]+1}
 _4.contents=this.getTableHTML(_1,_2,_3,true);this.autoFit=_5;this.wrapCells=_6;_4.draw();var _8;if(isc.isA.Array(_1)){var _9,_10=_4.getHandle().childNodes;for(var i=0;i<_10.length;i++){if(_10[i].tagName.toLowerCase()=="table"){_9=_10[i];break}}
 if(_9&&_9.rows[0]){var _12=_9.rows[0],_13=_12.cells;_8=[];for(var i=0;i<_13.length;i++){_8[i]=_13[i].clientWidth}}}else{_8=_4.getScrollWidth()}
 _4.clear();return _8}
@@ -6495,31 +6588,31 @@
 this.$t6()}}
 ,isc.A.clear=function isc_GridRenderer_clear(){this.Super("clear",arguments);this.$29j();delete this.$50v}
 ,isc.A.$29j=function isc_GridRenderer__clearTableCache(){this.$29g=null;this.$29f=null;delete this.$29o;delete this.$293;delete this.$8s;this.$250=false}
-);isc.B._maxIndex=isc.C+173;isc.GridRenderer.$294={getCellRecord:"rowNum,colNum",getCellValue:"record,rowNum,colNum,gridBody",findRowNum:"record",findColNum:"record",getBaseStyle:"record,rowNum,colNum",getCellStyle:"record,rowNum,colNum",getCellCSSText:"record,rowNum,colNum",cellIsEnabled:"rowNum,colNum",getRowHeight:"record,rowNum",getRowSpan:"record,rowNum,colNum",cellOut:"record,rowNum,colNum",cellOver:"record,rowNum,colNum",rowOut:"record,rowNum,colNum",rowOver:"record,rowNum,colNum",cellMove:"record,rowNum,colNum",rowMove:"record,rowNum,colNum",cellContextClick:"record,rowNum,colNum",rowContextClick:"record,rowNum,colNum",recordContextClick:"record,recordNum,fieldNum",cellMouseDown:"record,rowNum,colNum",rowMouseDown:"record,rowNum,colNum",recordMouseDown:"recordNum,fieldNum",cellMouseUp:"record,rowNum,colNum",rowMouseUp:"record,rowNum,colNum",recordMouseUp:"recordNum,fieldNum",selectOnMouseDown:"record,rowNum,colNum",selectOnRightMouseDown:"record,rowNum,colNum",selectOnMouseUp:"record,rowNum,colNum",cellClick:"record,rowNum,colNum",cellDoubleClick:"record,rowNum,colNum",rowClick:"record,rowNum,colNum",rowDoubleClick:"record,rowNum,colNum",cellHover:"record,rowNum,colNum",rowHover:"record,rowNum,colNum",cellHoverHTML:"record,rowNum,colNum",getCellHoverComponent:"record,rowNum,colNum",selectionChanged:"record,state",cellSelectionChanged:"cellList",getRowElementId:"rowNum,physicalRowNum",getCellElementId:"rowNum,physicalRowNum,colNum,physicalColNum",shouldFixRowHeight:"record,rowNum",updateEmbeddedComponentZIndex:"component",updateEmbeddedComponentCoords:"component,record,rowNum,colNum"};isc.GridRenderer.registerStringMethods(isc.GridRenderer.$294);isc.ClassFactory.defineClass("ListGrid","Canvas","DataBoundComponent");isc.addGlobal("ListViewer",isc.ListGrid);isc.defineClass("GridBody",isc.GridRenderer);isc.A=isc.GridBody.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.adjustOverflowWhileDirty=false;isc.A.expandEmptyMessageToMatchFields=true;isc.B.push(isc.A.adjustOverflow=function isc_GridBody_adjustOverflow(_1,_2,_3,_4,_5){if(this.$80o)return;var _6=this.grid;if(_6&&_6.data&&_6.data.getLength()>0&&isc.isA.ResultSet(_6.data)&&!_6.data.lengthIsKnown())
-{return this.invokeSuper(isc.GridBody,"adjustOverflow",_1,_2,_3,_4,_5)}
-var _7=(this.autoFitData=="both"),_8=_7,_9=_6&&_6.frozenFields!=null,_10=_9&&_6&&(_6.frozenBody==this);if(!_7)_7=(this.autoFitData=="vertical");if(!_8)_8=(this.autoFitData=="horizontal");if(_8||_7){var _11,_12,_13,_14,_15,_16,_17;if(_7){var _18=this.grid.getAutoFitMinBodyHeight();_11=_18;var _19=this.getTotalRows(),_20=_19;_13=0;if(this.autoFitMaxRecords)_20=Math.min(_20,this.autoFitMaxRecords);if(_20>0){var _21=this.$26b();var _22=this.$252,_23=this.$253;if(this.$252==null){_22=_20;_23=_20}
-if(_22>0){_22=Math.min(_22,_20);for(var i=0;i<_22;i++){_13+=this.getRowHeight?this.getRowHeight(i):this.cellHeight}}
-if(_23<_20-1){for(var i=_23+1;i<_20;i++){_13+=this.getRowHeight?this.getRowHeight(i):this.cellHeight}}
-_23=Math.min(_23,_20-1);for(var i=0;i<=_23-_22;i++){_13+=_21[i]}
-_15=_19>_20;var _25=this.getAutoFitMaxHeight();if(_25&&_13>_25){_13=_25;_15=true}}
-if(this.autoFitExtraRecords&&this.autoFitExtraRecords>0){var _26=Math.round(this.autoFitExtraRecords*this.cellHeight);_13+=_26}}else{_15=this.getScrollHeight()>this.getHeight()}
-if(_8&&!_10){var _12=this.grid.getInnerWidth(),_27;if(_9){var _28=this.grid.getFrozenSlots(this.grid.$26a);_27=_28.sum();_12-=_27}
-var _29=this.getColumnSizes(),_30=_29.sum();if(this.autoFitMaxColumns){var _31=this.autoFitMaxColumns;if(_9){_31=Math.max(1,_31-this.grid.frozenFields.length)}
-if(_31<_29.length){_29=_29.slice(0,this.autoFitMaxColumns)}}
-var _32=_29.sum();if(this.autoFitMaxWidth){var _33=this.autoFitMaxWidth;if(_9)_33=Math.max(20,_33-_27);_32=Math.min(_33,_32)}
-_14=(_30>Math.max(_12,_32))}else{_14=this.getScrollWidth()>this.getWidth()}
-if(_7&&_13!=null){_13+=this.getVBorderPad()+this.getVMarginSize();if(_14){_13+=this.getScrollbarSize();var _25=this.getAutoFitMaxHeight()
-if(_25&&_13>_25){_13=_25}}
-if(_13>_11){_11=_13;this.$70u=true}else{if(this.$70u)delete this.$70u}}
-if(_8&&!_10&&_32!=null){_32+=this.getHBorderPad()+this.getHMarginSize();if(_15||this.alwaysShowVScrollbar){_32+=this.getScrollbarSize();if(this.autoFitMaxWidth){var _33=this.autoFitMaxWidth;if(_9)_33=Math.max(20,_33-_27);_32=Math.min(_33,_32)}}
-if(_32>_12){_12=_32;this.$70v=true}else{if(this.$70v)delete this.$70v}}
-this.$80o=true;_17=this.getDelta(this.$o5,_11,this.getHeight());_16=this.getDelta(this.$o6,_12,this.getWidth());delete this.$80o;if(_17!=null||_16!=null)this.resizeBy(_16,_17,null,null,true);if(_16!=null||(_10&&_8)){var _34=this.grid,_35=(_12-(_15?_34.getScrollbarSize():0)),_36=_35;if(_9&&_34.headerLayout){if(_10){_36=this.getWidth()+_34.body.getWidth();if(_34.autoFitMaxWidth!=null&&(_36+_34.getHBorderPad()+_34.getHMarginSize()>_34.autoFitMaxWidth))
-{return _34.body.adjustOverflow()}
-_36-=(_34.body.vscrollOn?_34.getScrollbarSize():0)}else{_36=_35+_34.frozenBody.getWidth()}
-_34.headerLayout.setWidth(_36)}
-if(!_10){var _37=_34.header;if(_37&&_37.isDrawn()){_37.setWidth(_35)}}
-if(_34.sorter&&_34.$313()&&!_34.isRTL()){_34.sorter.moveTo(_36);if(!_34.sorter.isVisible())_34.sorter.show()}else if(_34.sorter){_34.sorter.setLeft(0-_34.sorter.getWidth())}}}
-var _38=(!_7&&this.$70u),_39=(!_8&&this.$70v);if(_38||_39){delete this.$70u;delete this.$70v;var _40=_38?this.grid.getAutoFitMinBodyHeight():null,_41=_39?(!_9?this.grid.getInnerWidth():(this.grid.getInnerWidth()-this.grid.frozenBody.getWidth())):null;this.resizeTo(_12,_11);this.grid.$45m("autoFitData mode changed")}
+);isc.B._maxIndex=isc.C+176;isc.GridRenderer.$294={getCellRecord:"rowNum,colNum",getCellValue:"record,rowNum,colNum,gridBody",findRowNum:"record",findColNum:"record",getBaseStyle:"record,rowNum,colNum",getCellStyle:"record,rowNum,colNum",getCellCSSText:"record,rowNum,colNum",cellIsEnabled:"rowNum,colNum",getRowHeight:"record,rowNum",getRowSpan:"record,rowNum,colNum",cellOut:"record,rowNum,colNum",cellOver:"record,rowNum,colNum",rowOut:"record,rowNum,colNum",rowOver:"record,rowNum,colNum",cellMove:"record,rowNum,colNum",rowMove:"record,rowNum,colNum",cellContextClick:"record,rowNum,colNum",rowContextClick:"record,rowNum,colNum",recordContextClick:"record,recordNum,fieldNum",cellMouseDown:"record,rowNum,colNum",rowMouseDown:"record,rowNum,colNum",recordMouseDown:"recordNum,fieldNum",cellMouseUp:"record,rowNum,colNum",rowMouseUp:"record,rowNum,colNum",recordMouseUp:"recordNum,fieldNum",selectOnMouseDown:"record,rowNum,colNum",selectOnRightMouseDown:"record,rowNum,colNum",selectOnMouseUp:"record,rowNum,colNum",cellClick:"record,rowNum,colNum",cellDoubleClick:"record,rowNum,colNum",rowClick:"record,rowNum,colNum",rowDoubleClick:"record,rowNum,colNum",cellHover:"record,rowNum,colNum",rowHover:"record,rowNum,colNum",cellHoverHTML:"record,rowNum,colNum",getCellHoverComponent:"record,rowNum,colNum",selectionChanged:"record,state",selectionUpdated:"record,recordList",cellSelectionChanged:"cellList",getRowElementId:"rowNum,physicalRowNum",getCellElementId:"rowNum,physicalRowNum,colNum,physicalColNum",shouldFixRowHeight:"record,rowNum",updateEmbeddedComponentZIndex:"component",updateEmbeddedComponentCoords:"component,record,rowNum,colNum"};isc.GridRenderer.registerStringMethods(isc.GridRenderer.$294);isc.ClassFactory.defineClass("ListGrid","Canvas","DataBoundComponent");isc.addGlobal("ListViewer",isc.ListGrid);isc.defineClass("GridBody",isc.GridRenderer);isc.A=isc.GridBody.getPrototype();isc.B=isc._allFuncs;isc.C=isc.B._maxIndex;isc.D=isc._funcClasses;isc.D[isc.C]=isc.A.Class;isc.A.adjustOverflowWhileDirty=false;isc.A.expandEmptyMessageToMatchFields=true;isc.B.push(isc.A.adjustOverflow=function isc_GridBody_adjustOverflow(_1,_2,_3,_4,_5){if(this.$80o)return;var _6=this.grid;if(_6==null)return this.Super("adjustOverflow",arguments);var _7=_6.data,_8=false;;if(isc.isA.ResultSet(_7)&&!_7.lengthIsKnown()){if(_6.emptyMessageHeight==null){return this.invokeSuper(isc.GridBody,"adjustOverflow",_1,_2,_3,_4,_5)}
+_8=true}
+var _9=(this.autoFitData=="both"),_10=_9,_11=_6&&_6.frozenFields!=null,_12=_11&&_6&&(_6.frozenBody==this);if(!_9)_9=(this.autoFitData=="vertical");if(!_10)_10=(this.autoFitData=="horizontal");if(_10||_9){var _13,_14,_15,_16,_17,_18,_19;if(_9){var _20=this.grid.getAutoFitMinBodyHeight();_13=_20;var _21=_8?0:this.getTotalRows(),_22=_21;_15=0;if(this.autoFitMaxRecords)_22=Math.min(_22,this.autoFitMaxRecords);if(_22>0){var _23=this.$26b();var _24=this.$252,_25=this.$253;if(this.$252==null){_24=_22;_25=_22}
+if(_24>0){_24=Math.min(_24,_22);for(var i=0;i<_24;i++){_15+=this.getRowHeight?this.getRowHeight(i):this.cellHeight}}
+if(_25<_22-1){for(var i=_25+1;i<_22;i++){_15+=this.getRowHeight?this.getRowHeight(i):this.cellHeight}}
+_25=Math.min(_25,_22-1);for(var i=0;i<=_25-_24;i++){_15+=_23[i]}
+_17=_21>_22;var _27=this.getAutoFitMaxHeight();if(_27&&_15>_27){_15=_27;_17=true}}else{if(this.grid.emptyMessageHeight!=null){_15=this.grid.emptyMessageHeight}}
+if(this.autoFitExtraRecords&&this.autoFitExtraRecords>0){var _28=Math.round(this.autoFitExtraRecords*this.cellHeight);_15+=_28}}else{_17=this.getScrollHeight()>this.getHeight()}
+if(_10&&!_12){var _14=this.grid.getInnerWidth(),_29;if(_11){var _30=this.grid.getFrozenSlots(this.grid.$26a);_29=_30.sum();_14-=_29}
+var _31=this.getColumnSizes(),_32=_31.sum();if(this.autoFitMaxColumns){var _33=this.autoFitMaxColumns;if(_11){_33=Math.max(1,_33-this.grid.frozenFields.length)}
+if(_33<_31.length){_31=_31.slice(0,this.autoFitMaxColumns)}}
+var _34=_31.sum();if(this.autoFitMaxWidth){var _35=this.autoFitMaxWidth;if(_11)_35=Math.max(20,_35-_29);_34=Math.min(_35,_34)}
+_16=(this.overflow==isc.Canvas.SCROLL)?true:(this.overflow==isc.Canvas.AUTO)?(_32>Math.max(_14,_34)):false}else{_16=this.overflow==isc.Canvas.SCROLL?true:this.overflow==isc.Canvas.AUTO?this.getScrollWidth()>this.getWidth():false}
+if(_9&&_15!=null){_15+=this.getVBorderPad()+this.getVMarginSize();if(_16){_15+=this.getScrollbarSize();var _27=this.getAutoFitMaxHeight()
+if(_27&&_15>_27){_15=_27}}
+if(_15>_13){_13=_15;this.$70u=true}else{if(this.$70u)delete this.$70u}}
+if(_10&&!_12&&_34!=null){_34+=this.getHBorderPad()+this.getHMarginSize();if(_17||this.alwaysShowVScrollbar){_34+=this.getScrollbarSize();if(this.autoFitMaxWidth){var _35=this.autoFitMaxWidth;if(_11)_35=Math.max(20,_35-_29);_34=Math.min(_35,_34)}}
+if(_34>_14){_14=_34;this.$70v=true}else{if(this.$70v)delete this.$70v}}
+this.$80o=true;_19=this.getDelta(this.$o5,_13,this.getHeight());_18=this.getDelta(this.$o6,_14,this.getWidth());delete this.$80o;if(_19!=null||_18!=null)this.resizeBy(_18,_19,null,null,true);if(_18!=null||(_12&&_10)){var _36=this.grid,_37=(_14-(_17?_36.getScrollbarSize():0)),_38=_37;if(_11&&_36.headerLayout){if(_12){_38=this.getWidth()+_36.body.getWidth();if(_36.autoFitMaxWidth!=null&&(_38+_36.getHBorderPad()+_36.getHMarginSize()>_36.autoFitMaxWidth))
+{return _36.body.adjustOverflow()}
+_38-=(_36.body.vscrollOn?_36.getScrollbarSize():0)}else{_38=_37+_36.frozenBody.getWidth()}
+_36.headerLayout.setWidth(_38)}
+if(!_12){var _39=_36.header;if(_39&&_39.isDrawn()){_39.setWidth(_37)}}
+if(_36.sorter&&_36.$313()&&!_36.isRTL()){_36.sorter.moveTo(_38);if(!_36.sorter.isVisible())_36.sorter.show()}else if(_36.sorter){_36.sorter.setLeft(0-_36.sorter.getWidth())}}}
+var _40=(!_9&&this.$70u),_41=(!_10&&this.$70v);if(_40||_41){delete this.$70u;delete this.$70v;var _42=_40?this.grid.getAutoFitMinBodyHeight():null,_43=_41?(!_11?this.grid.getInnerWidth():(this.grid.getInnerWidth()-this.grid.frozenBody.getWidth())):null;this.resizeTo(_14,_13);this.grid.$45m("autoFitData mode changed")}
 return this.invokeSuper(isc.GridBody,"adjustOverflow",_1,_2,_3,_4,_5)}
 ,isc.A.getAutoFitMaxHeight=function isc_GridBody_getAutoFitMaxHeight(){return this.grid?this.grid.getAutoFitMaxBodyHeight():null}
 ,isc.A.resizeBy=function isc_GridBody_resizeBy(_1,_2,_3,_4,_5){if(!_5){this.$1i=this.getWidth()+(_1!=null?_1:0)}
@@ -6562,6 +6655,11 @@
 {return true}
 return this.invokeSuper(isc.GridBody,"$80g",_1)}
 ,isc.A.getAvgRowHeight=function isc_GridBody_getAvgRowHeight(){if(this.grid)return this.grid.getAvgRowHeight(this);return this.Super("getAvgRowHeight",arguments)}
+,isc.A.shouldShowAllColumns=function isc_GridBody_shouldShowAllColumns(){if(this.showAllColumns){return true}
+if(!this.fixedRowHeights&&!this.showAllRows){if(this.grid.canExpandRecords&&this.grid.$82v){return false}
+return true}
+if(this.overflow==isc.Canvas.VISIBLE){return true}
+return false}
 ,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")}}
 if(_7){this.logInfo("redraw with editors showing, editForm.hasFocus: "+_6.hasFocus,"gridEdit");_8=_5.getEditCol();this.$516();_12=this.$517()}
@@ -6574,7 +6672,7 @@
 {this.$518(_8)}else{delete this.$519}}else if(_6!=null){_5.$30b(null,null,this)}}
 ,isc.A.setHandleDisabled=function isc_GridBody_setHandleDisabled(_1){var _2=this.grid;if(this.isDrawn()&&_2&&_2.$30a){this.markForRedraw("Grid body disabled while editing")}
 return this.Super("setHandleDisabled",arguments)}
-,isc.A.$517=function isc_GridBody__updateEditItems(){var _1=this.grid,_2=_1.getEditForm(),_3=[],_4=_2.getItems();if(!_1.editByCell){var _5=_1.getEditRow(),_6=_1.getRecord(_5),_7=_1.getEditFormItemFieldWidths(_6);var _4=_2.getItems(),_8=_4.getProperty(this.fieldIdProperty),_9=_1.getDrawnFields(),_10=_9.getProperty(this.fieldIdProperty);var _11=_4.length==_9.length,_12=false;for(var i=0;i<_4.length;i++){var _14=_10.indexOf(_8[i]);if(_14==-1){_12=true;_3.add(_4[i])}else{_4[i].width=_7[_4[i].colNum];_4[i].redrawing()}}
+,isc.A.$517=function isc_GridBody__updateEditItems(){var _1=this.grid,_2=_1.getEditForm(),_3=[],_4=_2.getItems();if(!_1.editByCell){var _5=_1.getEditRow(),_6=_1.getRecord(_5),_7=_1.getEditFormItemFieldWidths(_6);var _4=_2.getItems(),_8=_4.getProperty(this.fieldIdProperty),_9=_1.getDrawnFields(),_10=_9.getProperty(this.fieldIdProperty);var _11=_4.length==_9.length,_12=false;for(var i=0;i<_4.length;i++){var _14=_10.indexOf(_8[i]);if(_14==-1){_12=true;_3.add(_4[i])}else{_4[i].width=_7[_4[i].colNum];_4[i].$8t=null;_4[i].redrawing()}}
 if(!_11||_12){var _15=_1.getEditedRecord(_5,0);for(var i=0;i<_9.length;i++){if(!_8.contains(_10[i])){var _16=_1.fields.indexOf(_9[i]);var _17=_1.getEditItem(_9[i],_6,_15,_5,_16,_7[_16]);_2.addItem(_17)}}}}
 return _3}
 ,isc.A.$516=function isc_GridBody__storeFocusForRedraw(){var _1=this.grid,_2=_1.getEditForm(),_3=_1.getEditCol();if(_2.hasFocus){var _4=_2.getFocusSubItem();if(_4){_4.updateValue();var _5=_4;while(_4.parentItem!=null){_4=_4.parentItem}
@@ -6585,7 +6683,7 @@
 delete this.$519}}}
 ,isc.A.isDirty=function isc_GridBody_isDirty(_1,_2,_3){return this.invokeSuper(null,"isDirty",_1,_2,_3)||this.grid.isDirty()}
 ,isc.A.cellMove=function isc_GridBody_cellMove(_1,_2,_3){var _4=isc.EH.lastEvent?isc.EH.lastEvent.nativeTarget:null;if(_4&&_4.getAttribute!=null&&(_4.getAttribute("isErrorIcon")=="true"))
-{if(this.grid.$79y!=null){var _5=this.grid.$79y[0],_6=this.grid.$79y[1];if(_5!=_2||_6!=_3){this.grid.handleErrorIconOut()}}
+{if(this.grid.$79y!=null){var _5=this.grid.$79y[0],_6=this.grid.$79y[1];if(_5!=_2||_6!=_3){this.grid.$790()}}
 if(this.grid.$79y==null){this.grid.$79z(_2,_3)}}else{if(this.grid.$79y!=null){this.grid.$790()}}}
 ,isc.A.shouldShowRollOver=function isc_GridBody_shouldShowRollOver(_1,_2,_3,_4){if(!this.grid.showRollOver||this.$28j)return false;var _5=this.grid;if(_5.$30a&&!_5.editByCell&&_1==_5.$285)return false;return true}
 ,isc.A.updateRollOver=function isc_GridBody_updateRollOver(_1,_2,_3){var _4=this.grid;if(_4.showRollOverCanvas){if(!_3){var _5=!(this.lastOverRow==_1&&this.lastOverCol==_2);_4.updateRollOverCanvas(_1,_2,_5)}}
@@ -6594,6 +6692,7 @@
 {_4=false}}
 if(_4){this.invokeSuper(isc.GridBody,"selectOnMouseDown",_1,_2,_3)}}
 ,isc.A.selectOnMouseUp=function isc_GridBody_selectOnMouseUp(_1,_2,_3){var _4=this.grid.getCheckboxFieldPosition(),_5=this.grid.selectionAppearance;if(_5!="checkbox"||(_5=="checkbox"&&_4==_3)){this.invokeSuper(isc.GridBody,"selectOnMouseUp",_1,_2,_3)}}
+,isc.A.handleSelectionChanged=function isc_GridBody_handleSelectionChanged(_1,_2){var _3=this.Super("handleSelectionChanged",arguments);this.grid.handleViewStateChanged();return _3}
 ,isc.A.$29h=function isc_GridBody__updateCellStyle(_1,_2,_3,_4,_5,_6,_7,_8){this.invokeSuper(isc.GridBody,"$29h",_1,_2,_3,_4,_5,_6,_7,_8);var _9=this.grid;if(_9&&_9.getEditRow()==_2){var _10=_9.getFieldName(_9.getFieldNumFromLocal(_3,this)),_11=_9.getEditForm(),_12=_11?_11.getItem(_10):null;if(_12&&_12.gridCellStyleChanged){if(_5==null)_5=this.getCellStyle(_1,_2,_3);_12.gridCellStyleChanged(_1,_2,_3,_5)}}}
 ,isc.A.getHoverTarget=function isc_GridBody_getHoverTarget(){return this.grid}
 ,isc.A.keyPress=function isc_GridBody_keyPress(_1,_2){return this.grid.bodyKeyPress(_1,_2)}
@@ -6601,8 +6700,7 @@
 {if(_3.$30c){delete _3.$30c}else{var _5=_3.findNextEditCell(0,0,true,true);if(_5!=null)
 _3.handleEditCellEvent(_5[0],_5[1],isc.ListGrid.FOCUS)}}}
 return _2}
-,isc.A.updateRowSelection=function isc_GridBody_updateRowSelection(_1){var _2=this.grid;if(!_2)return;if(_2.showSelectionCanvas)_2.updateSelectionCanvas();if(!_2.$67j){this.invokeSuper(isc.GridBody,"updateRowSelection",_1)}
-if(_2.getCurrentCheckboxField()!=null){var _3=_2.getCheckboxFieldPosition();if(_2&&!_2.$67j)_2.refreshCell(_1,_3);var _4=(isc.isAn.Array(_2.data)||(isc.isA.ResultSet(_2.data)&&_2.data.allMatchingRowsCached())),_5=_2.getSelection()||[];if(_4){if(_5.length==_2.data.getLength()){_2.$63m(true)}else{_2.$63m(false)}}}else if(_2.getTreeFieldNum&&_2.selectionAppearance=="checkbox"){var _6=_2.getTreeFieldNum();if(!_2.$67j){_2.refreshCell(_1,_6)}}}
+,isc.A.updateRowSelection=function isc_GridBody_updateRowSelection(_1){var _2=this.grid;if(!_2)return;if(_2.showSelectionCanvas)_2.updateSelectionCanvas();if(_2.$67j)return;this.invokeSuper(isc.GridBody,"updateRowSelection",_1);if(_2.getCurrentCheckboxField()!=null){var _3=_2.getCheckboxFieldPosition();if(_2)_2.refreshCell(_1,_3);var _4=(isc.isAn.Array(_2.data)||(isc.isA.ResultSet(_2.data)&&_2.data.allMatchingRowsCached())),_5=_2.getSelection()||[];if(_4){if(_5.length==_2.data.getLength()){_2.$63m(true)}else{_2.$63m(false)}}}else if(_2.getTreeFieldNum&&_2.selectionAppearance=="checkbox"){var _6=_2.getTreeFieldNum();_2.refreshCell(_1,_6)}}
 ,isc.A.$29s=function isc_GridBody__cellSelectionChanged(_1,_2,_3,_4){var _5=this.grid;if(_5&&_5.showSelectionCanvas)_5.updateSelectionCanvas();return this.invokeSuper(isc.GridBody,"$29s",_1,_2,_3,_4)}
 ,isc.A.shouldAnimateEmbeddedComponent=function isc_GridBody_shouldAnimateEmbeddedComponent(_1){var _2=this.grid;if(_1==_2.selectionCanvas)return _2.animateSelection;if(_1==_2.selectionUnderCanvas)return _2.animateSelectionUnder;if(_1==_2.rollOverCanvas)return _2.animateRollOver;if(_1==_2.rollUnderCanvas)return _2.animateRollUnder;return false}
 ,isc.A.$80d=function isc_GridBody__handleEmbeddedComponentResize(_1,_2,_3){this.Super("$80d",arguments);this.grid.$80d(this,_1,_2,_3)}
@@ -6615,8 +6713,8 @@
 ,isc.A.layoutChildren=function isc_GridBody_layoutChildren(_1,_2,_3,_4){this.invokeSuper(null,"layoutChildren",_1,_2,_3,_4);if(!this.isDrawn()||(this.grid.frozenFields&&!this.grid.bodyLayout.isDrawn())){return}
 if(_1=="scrolling state changed"){if(this.$28i==null){this.grid.layoutChildren("body scroll changed");delete this.$30e}else{this.$30e=true}}}
 ,isc.A.$28p=function isc_GridBody__rowAnimationComplete(){this.Super("$28p",arguments);if(this.$30e){this.grid.layoutChildren("body scroll changed during animation");delete this.$30e}}
-,isc.A.moved=function isc_GridBody_moved(_1,_2,_3,_4){this.invokeSuper(null,"moved",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a){_5.$286.itemsMoved()}}
-,isc.A.parentMoved=function isc_GridBody_parentMoved(_1,_2,_3,_4){this.invokeSuper(null,"parentMoved",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a){_5.$286.itemsMoved()}}
+,isc.A.handleMoved=function isc_GridBody_handleMoved(_1,_2,_3,_4){this.invokeSuper(null,"handleMoved",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a){_5.$286.itemsMoved()}}
+,isc.A.handleParentMoved=function isc_GridBody_handleParentMoved(_1,_2,_3,_4){this.invokeSuper(null,"handleParentMoved",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a){_5.$286.itemsMoved()}}
 ,isc.A.setVisibility=function isc_GridBody_setVisibility(_1,_2,_3,_4){this.invokeSuper(null,"setVisibility",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a)_5.$286.itemsVisibilityChanged()}
 ,isc.A.parentVisibilityChanged=function isc_GridBody_parentVisibilityChanged(_1,_2,_3,_4){this.invokeSuper(null,"parentVisibilityChanged",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a)_5.$286.itemsVisibilityChanged()}
 ,isc.A.clear=function isc_GridBody_clear(){var _1=this.grid;_1.$69l();this.Super("clear",arguments);if(_1.$30a){_1.$30b(null,null,this);_1.$286.itemsVisibilityChanged()}}
@@ -6624,26 +6722,34 @@
 ,isc.A.$vv=function isc_GridBody__setNextTabWidget(){}
 ,isc.A.zIndexChanged=function isc_GridBody_zIndexChanged(){this.Super("zIndexChanged",arguments);var _1=this.grid;if(_1&&_1.$30a)_1.$286.itemsZIndexChanged()}
 ,isc.A.parentZIndexChanged=function isc_GridBody_parentZIndexChanged(_1,_2,_3,_4){this.invokeSuper(null,"zIndexChanged",_1,_2,_3,_4);var _5=this.grid;if(_5.$30a)_5.$286.itemsZIndexChanged()}
-,isc.A.redrawFormItem=function isc_GridBody_redrawFormItem(_1,_2){var _3=this.grid;if(_3&&(_1.form==_3.$286)){var _4=_3.getEditRow(),_5=_3.getColNum(_1.getFieldName());_3.refreshCell(_4,_5,false,true)}else
+,isc.A.redrawFormItem=function isc_GridBody_redrawFormItem(_1,_2){var _3=this.grid;if(_3&&(_1.form==_3.$286)){var _4=_3.getEditRow(),_5=_3.getColNum(_1.getFieldName());if(_3.getEditCol()==_5){_3.storeUpdatedEditorValue()}
+_3.refreshCell(_4,_5,false,true)}else
 return this.markForRedraw("Form Item Redraw "+(_2?_2:isc.emptyString))}
+,isc.A.sizeFormItem=function isc_GridBody_sizeFormItem(_1){var _2=this.grid;var _3=_1.width,_4;if(isc.isA.String(_3)){var _5=_2.getEditFormItemFieldWidths(_1.record),_6=_5[_2.getFieldNum(_1.getFieldName())];if(_3=="*"){_4=_6}else if(_3[_3.length-1]=="%"){var _7=parseInt(_3);if(isc.isA.Number(_7)){_4=Math.floor(_6*(_7/ 100))}}}
+var _8=_1.height,_9;if(isc.isA.String(_8)){var _10=_2.cellHeight;if(_3=="*"){_9=_10}else if(_8[_8.length-1]=="%"){var _11=parseInt(_8);if(isc.isA.Number(_11)){_9=Math.floor(_10*(_11/ 100))}}}
+if(_9!=null||_4!=null){_1.$8t=[_4==null?_1.width:_4,_9==null?_1.height:_9]}}
 ,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+57;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","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+60;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}
-,isc.A.classInit=function isc_c_ListGrid_classInit(){this.addMethods(isc.ClassFactory.makePassthroughMethods(this.$296,"body"));var _1={};var _2=isc.getKeys(isc.GridRenderer.$294),_1=isc.ListGrid.makeBodyMethods(_2);isc.addProperties(_1,isc.ListGrid.makeBodyMethods(this.$297));this.$30f=_1;var _3={},_4=[,"var $81e = this.$81e || this.body;"+"if($81e.__orig_",,")return $81e.__orig_",,"(",,")"],_5="__orig_",_6=isc.GridRenderer.getPrototype();for(var i=0;i<_2.length;i++){var _8=_2[i],_9=isc.GridRenderer.getArgString(_8);if(isc.ListGrid.getInstanceProperty(_8)==null){if(isc.contains(_9,"colNum")){_4[0]="if (colNum != null && colNum >= 0) colNum = this.getLocalFieldNum(colNum);"}else{_4[0]=null}
+,isc.A.classInit=function isc_c_ListGrid_classInit(){this.addMethods(isc.ClassFactory.makePassthroughMethods(this.$296,"body"));var _1={};var _2=isc.getKeys(isc.GridRenderer.$294),_1=isc.ListGrid.makeBodyMethods(_2);isc.addProperties(_1,isc.ListGrid.makeBodyMethods(this.$297));this.$30f=_1;var _3={},_4=[,"var $81e = this.$81e || this.body;"+" if ($81e == null) {"+"return;"+"}"+"if($81e.__orig_",,")return $81e.__orig_",,"(",,")"],_5="__orig_",_6=isc.GridRenderer.getPrototype();for(var i=0;i<_2.length;i++){var _8=_2[i],_9=isc.GridRenderer.getArgString(_8);if(isc.ListGrid.getInstanceProperty(_8)==null){if(isc.contains(_9,"colNum")){_4[0]="if (colNum != null && colNum >= 0) colNum = this.getLocalFieldNum(colNum);"}else{_4[0]=null}
 _4[2]=_4[4]=_8;_4[6]=_9
 _3[_8]=new Function(_9,_4.join(isc.emptyString))}
 _6[_5+_8]=_6[_8]}
 this.$30g=_3;this.addMethods(_3)}
-);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.styleName="listGrid";isc.A.useCellRecords=false;isc.A.recordEnabledProperty="enabled";isc.A.canExpandRecordProperty="canExpand";isc.A.animateFolders=true;isc.A.animateFolderTime=100;isc.A.animateFolderSpeed=3000;isc.A.animateRowsMaxTime=1000;isc.A.autoFetchDisplayMap=true;isc.A.showDetailFields=true;isc.A.groupStartOpen="first";isc.A.canCollapseGroup=true;isc.A.groupNodeStyle="groupNode";isc.A.groupIcon="[SKINIMG]/TreeGrid/opener.gif";isc.A.groupIconSize=16;isc.A.groupIndentSize=20;isc.A.groupLeadingIndent=10;isc.A.canGroupBy=true;isc.A.groupByMaxRecords=1000;isc.A.nullGroupTitle="-none-";isc.A.valueIconSize=16;isc.A.valueIconLeftPadding=2;isc.A.valueIconRightPadding=2;isc.A.imageSize=16;isc.A.headerSpanVAlign="center";isc.A.showTreeColumnPicker=true;isc.A.fetchDelay=300;isc.A.uniqueMatch=true;isc.A.overflow=isc.Canvas.HIDDEN;isc.A.backgroundColor="white";isc.A.minHeight=50;isc.A.defaultWidth=200;isc.A.drawAllMaxCells=250;isc.A.drawAheadRatio=1.3;isc.A.quickDrawAheadRatio=1.0;isc.A.scrollRedrawDelay=75;isc.A.dataFetchDelay=300;isc.A.bodyConstructor="GridBody";isc.A.bodyOverflow=isc.Canvas.AUTO;isc.A.bodyBackgroundColor="white";isc.A.allowMismatchedHeaderBodyBorder=true;isc.A.emptyCellValue="&nbsp;";isc.A.cellHeight=20;isc.A.normalCellHeight=20;isc.A.fixedRecordHeights=true;isc.A.fixedFieldWidths=true;isc.A.autoFitMaxRecords=50;isc.A.autoFitMaxColumns=50;isc.A.canAutoFitFields=true;isc.A.headerAutoFitEvent="doubleClick";isc.A.autoFitFieldsFillViewport=true;isc.A.autoFitWidthApproach="value";isc.A.autoFitIconFields="title";isc.A.leaveScrollbarGap=true;isc.A.resizeFieldsForScrollbar=true;isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.$68j={datetime:true,dateTime:true};isc.A.timeFormatter="toShortPaddedTime";isc.A.$30h=["<a href='",,"' target='",,"' onclick='if(window.",,") return ",,".$30i(event,",,",",,");'>",,"</a>"];isc.A.$30j="\\'";isc.A.$30k="_blank";isc.A.linkTextProperty="linkText";isc.A.fastCellUpdates=isc.Browser.isIE;isc.A.normalBaseStyle="cell";isc.A.tallBaseStyle="cell";isc.A.editFailedBaseStyle=null;isc.A.editFailedCSSText="color:red;border:1px solid red;";isc.A.editPendingBaseStyle=null;isc.A.editPendingCSSText="color:#0066CC;";isc.A.recordCustomStyleProperty="customStyle";isc.A.recordBaseStyleProperty="_baseStyle";isc.A.shrinkForFreeze=false;isc.A.alternateRecordFrequency=1;isc.A.recordCSSTextProperty="cssText";isc.A.showSelectedStyle=true;isc.A.generateClickOnSpace=true;isc.A.generateDoubleClickOnEnter=true;isc.A.arrowKeyAction="select";isc.A.recordComponentPoolingMode="viewport";isc.A.showRollOver=!isc.Browser.isTouch;isc.A.backgroundComponentDefaults={snapTo:"TL",autoDraw:false,opacity:"50%"};isc.A.showHover=true;isc.A.cellHoverOutset=5;isc.A.hoverStyle="gridHover";isc.A.selectionAppearance="rowStyle";isc.A.recordCanSelectProperty="canSelect";isc.A.showEmptyMessage=true;isc.A.emptyMessage="No items to show.";isc.A.emptyMessageStyle="emptyMessage";isc.A.loadingDataMessage="${loadingImage}&nbsp;Loading data...";isc.A.loadingDataMessageStyle="loadingDataMessage";isc.A.loadingMessage="&nbsp;";isc.A.singleCellValueProperty="singleCellValue";isc.A.isSeparatorProperty="isSeparator";isc.A.filterEditorDefaults={shouldPrint:false};isc.A.filterEditorHeight=22;isc.A.autoFetchTextMatchStyle="substring";isc.A.canEditNew=false;isc.A.recordEditProperty="_canEdit";isc.A.editValuesTestedProperty="$30l";isc.A.autoValidate=true;isc.A.removeIcon="[SKIN]/actions/remove.png";isc.A.removeIconSize=16;isc.A.animateRemoveRecord=true;isc.A.animateRemoveTime=100;isc.A.animateRemoveSpeed=200;isc.A.removeFieldTitle="[Remove record]";isc.A.removeFieldDefaults={type:"icon",width:21,showHeaderContextMenuButton:false,showDefaultContextMenu:false,showTitle:false,canEdit:false,canSort:false,canGroupBy:false,canFilter:false,recordClick:function(_1,_2,_3,_4,_5){var _6=_1.getAllEditRows(),_7=_6.contains(_3);if(_7)_1.discardEdits(_3,_5);_1.$609(_3,_2);return false}};isc.A.autoSaveEdits=true;isc.A.showErrorIcons=true;isc.A.errorIconHeight=16;isc.A.errorIconWidth=16;isc.A.errorIconSrc="[SKIN]/validation_error_icon.png";isc.A.cancelEditingConfirmationMessage="Cancelling this edit will clear unsaved edit values for this record. Continue?";isc.A.confirmDiscardEdits=true;isc.A.confirmDiscardEditsMessage="This action will discard all unsaved edited values for this list.";isc.A.discardEditsSaveButtonTitle="Save";isc.A.newRecordRowMessage="-- Add New Row --";isc.A.enterKeyEditAction="done";isc.A.escapeKeyEditAction="cancel";isc.A.editEvent=isc.EH.DOUBLE_CLICK;isc.A.selectOnEdit=true;isc.A.enumCriteriaAsInitialValues=true;isc.A.autoSelectEditors=true;isc.A.editFormDefaults={canSelectText:true,autoDraw:false,errorOrientation:"left",showErrorText:false,showErrorStyle:false,itemKeyPress:function(_1,_2,_3){return this.grid.editorKeyPress(_1,_2,_3)}};isc.A.longTextEditorThreshold=255;isc.A.longTextEditorType="PopUpTextAreaItem";isc.A.headerHeight=22;isc.A.minFieldWidth=15;isc.A.showHeader=true;isc.A.headerBackgroundColor="#CCCCCC";isc.A.headerDefaults={instantRelayout:true,enforcePolicy:false,itemClick:function(_1,_2){this.Super("itemClick",arguments);this.grid.$666(_2,this)},itemDoubleClick:function(_1,_2){this.Super("itemDoubleClick",arguments);this.grid.$774(_2,this)},showContextMenu:function(){return this.grid.headerBarContextClick(this)},backgroundRepeat:isc.Canvas.NO_REPEAT,shouldPrint:false};isc.A.headerButtonDefaults={getCurrentCursor:function(){var _1=this.parentElement?this.parentElement.grid:null;var _2;if(_1&&this.masterIndex!=null){var _3=_1.getField(this.masterIndex),_4=(_1.canSort!=false&&_1.$66c(_3)!=false);if(_4)_2=isc.Canvas.HAND;else _2=isc.Canvas.DEFAULT}else{_2=this.getClass().getPrototype().cursor}
-this.cursor=_2;return this.Super("getCurrentCursor",arguments)},dragScrollType:"parentsOnly",minWidth:20};isc.A.sorterConstructor=isc.Button;isc.A.sorterDefaults={_redrawWithParent:false,getTitle:function(){return this.parentElement.getSortArrowImage()},click:function(){return this.parentElement.sorterClick()},showContextMenu:function(){return this.parentElement.sorterContextClick()},canFocus:false};isc.A.canSort=true;isc.A.canUnsort=false;isc.A.invalidateCacheOnUnsort=false;isc.A.sortDirection=Array.ASCENDING;isc.A.canPickFields=true;isc.A.canPickOmittedFields=false;isc.A.openRecordEditorContextMenuItemTitle="Edit";isc.A.dismissEmbeddedComponentContextMenuItemTitle="Dismiss";isc.A.deleteRecordContextMenuItemTitle="Delete";isc.A.canOpenRecordDetailGrid=true;isc.A.canOpenRecordEditor=true;isc.A.recordEditorSaveButtonTitle="Save";isc.A.recordEditorCancelButtonTitle="Cancel";isc.A.headerMenuButtonIcon="[SKIN]/ListGrid/headerMenuButton_icon.gif";isc.A.headerMenuButtonIconWidth=7;isc.A.headerMenuButtonIconHeight=7;isc.A.headerMenuButtonWidth=16;isc.A.headerMenuButtonHeight="100%";isc.A.canDragRecordsOut=false;isc.A.canReorderFields=true;isc.A.canResizeFields=true;isc.A.dragAppearance=isc.EH.TRACKER;isc.A.dragTrackerMode="title";isc.A.resizeFieldsInRealTime=(isc.Browser.isIE&&isc.Browser.isWin)||(isc.Browser.isFirefox&&isc.Browser.geckoVersion>=20080529)||(isc.Browser.isSafari&&isc.Browser.safariVersion>=500);isc.A.embeddedComponentIndent=25;isc.A.nestedGridDefaults={height:150};isc.A.skinImgDir="images/ListGrid/";isc.A.sortAscendingImage={src:"[SKIN]sort_ascending.gif",width:7,height:7};isc.A.sortDescendingImage={src:"[SKIN]sort_descending.gif",width:7,height:7};isc.A.trackerImage={src:"[SKIN]tracker.gif",width:16,height:16};isc.A.booleanTrueImage=null;isc.A.booleanFalseImage=null;isc.A.booleanPartialImage=null;isc.A.booleanImageWidth=16;isc.A.booleanImageHeight=16;isc.A.mozBodyOutlineColor="white";isc.A.mozBodyNoHeaderOutlineColor="red";isc.A.rowNumberStyle="specialCol";isc.A.rowNumberStart=1;isc.A.rowNumberFieldDefaults={name:"$74y",canEdit:false,canFilter:false,canGroupBy:false,canSort:false,canExport:false,canHide:false,canReorder:false,canDragResize:false,showAlternateStyle:false,$74z:true,showHeaderContextMenuButton:false,showDefaultContextMenu:false,keyboardFiresRecordClick:false,formatCellValue:function(_1,_2,_3,_4,_5){if(_5.isGrouped)
-return(_5.rowNumberStart+_5.getGroupedRecordIndex(_2));else
-return this.rowNumberStart+_3},autoFreeze:true};isc.A.$740=30;isc.A.canExpandMultipleRecords=true;isc.A.maxExpandedRecordsPrompt="This grid is limited to \${count} simultaneously expanded records.  Please collapse some expanded records and retry.";isc.A.expansionFieldDefaults={name:"$72v",canEdit:false,canFilter:false,canGroupBy:false,canSort:false,canExport:false,canHide:false,canReorder:false,canDragResize:false,$72w:true,showHeaderContextMenuButton:false,showDefaultContextMenu:false,keyboardFiresRecordClick:false,cellAlign:"center",recordClick:function(_1,_2,_3,_4,_5,_6,_7){if(!_1.canExpandRecords||!_4.$72w)return;if(!_1.$811(_2,_3))return;if(_2.expanded)_1.collapseRecord(_2);else _1.expandRecord(_2)},formatCellValue:function(_1,_2,_3,_4,_5){_2=_5.getCellRecord(_3,_4);if(!_5.$811(_2,_3))return null;return _5.getValueIconHTML(_2.expanded?_5.expansionFieldTrueImage:_5.expansionFieldFalseImage,this)},autoFreeze:true};isc.A.expansionFieldTrueImage="[SKINIMG]/ListGrid/group_opened.gif";isc.A.expansionFieldFalseImage="[SKINIMG]/ListGrid/group_opening.gif";isc.A.expansionFieldExtraWidth=16;isc.A.$74a=0;isc.A.expansionDetailFieldDefaults={_constructor:isc.HTMLFlow,autoDraw:false,width:"100%",height:"100%"};isc.A.expansionDetailsDefaults={_constructor:isc.DetailViewer,autoDraw:false,width:"100%"};isc.A.expansionRelatedDefaults={_constructor:isc.ListGrid,autoDraw:false,width:"100%",autoFitData:"vertical",autoFitMaxRecords:4};isc.A.expansionEditorDefaults={_constructor:"DynamicForm",autoDraw:false,numCols:4,width:"100%"};isc.A.expansionDetailRelatedDefaults={_constructor:isc.HLayout,autoDraw:false,width:"100%",height:"100%"};isc.A.expansionLayoutDefaults={_constructor:isc.VLayout,autoDraw:false,width:"100%",height:10,overflow:"visible"};isc.A.recordDetailDSProperty="detailDS";isc.A.expansionCanEdit=false;isc.B.push(isc.A.shouldAnimateFolder=function isc_ListGrid_shouldAnimateFolder(_1){if(!this.animateFolders||!this.isDrawn())return false;var _2=this.data.isFolder(_1)?this.data.getOpenList(_1):null;if(_2==null||_2.length==0)return false;return(_2.length<=this.getAnimateFolderMaxRows())}
+);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.styleName="listGrid";isc.A.useCellRecords=false;isc.A.recordEnabledProperty="enabled";isc.A.canExpandRecordProperty="canExpand";isc.A.animateFolders=true;isc.A.animateFolderTime=100;isc.A.animateFolderSpeed=3000;isc.A.animateRowsMaxTime=1000;isc.A.autoFetchDisplayMap=true;isc.A.showDetailFields=true;isc.A.groupStartOpen="first";isc.A.canCollapseGroup=true;isc.A.showGroupTitleColumn=true;isc.A.groupTitleColumnDefaults={canEdit:false,canFilter:false,canHide:false,canReorder:false,showDefaultContextMenu:false,showHeaderContextMenuButton:false,autoFreeze:true,sortNormalizer:function(_1,_2,_3){return _1.groupTitle},autoFitWidth:true,autoFitWidthApproach:"value",title:"&nbsp;"};isc.A.groupTitleColumnName="groupTitle";isc.A.showGroupSummaryInHeader=false;isc.A.groupNodeStyle="groupNode";isc.A.groupIcon="[SKINIMG]/TreeGrid/opener.gif";isc.A.groupIconSize=16;isc.A.groupIndentSize=20;isc.A.groupLeadingIndent=10;isc.A.canGroupBy=true;isc.A.groupByMaxRecords=1000;isc.A.nullGroupTitle="-none-";isc.A.valueIconSize=16;isc.A.valueIconLeftPadding=2;isc.A.valueIconRightPadding=2;isc.A.imageSize=16;isc.A.headerSpanVAlign="center";isc.A.showTreeColumnPicker=true;isc.A.fetchDelay=300;isc.A.uniqueMatch=true;isc.A.overflow=isc.Canvas.HIDDEN;isc.A.backgroundColor="white";isc.A.minHeight=50;isc.A.defaultWidth=200;isc.A.drawAllMaxCells=250;isc.A.drawAheadRatio=1.3;isc.A.quickDrawAheadRatio=1.0;isc.A.scrollRedrawDelay=75;isc.A.dataFetchDelay=300;isc.A.bodyConstructor="GridBody";isc.A.bodyOverflow=isc.Canvas.AUTO;isc.A.bodyBackgroundColor="white";isc.A.allowMismatchedHeaderBodyBorder=true;isc.A.emptyCellValue="&nbsp;";isc.A.cellHeight=20;isc.A.normalCellHeight=20;isc.A.fixedRecordHeights=true;isc.A.fixedFieldWidths=true;isc.A.autoFitMaxRecords=50;isc.A.autoFitMaxColumns=50;isc.A.canAutoFitFields=true;isc.A.headerAutoFitEvent="doubleClick";isc.A.autoFitFieldsFillViewport=true;isc.A.autoFitWidthApproach="value";isc.A.autoFitIconFields="title";isc.A.leaveScrollbarGap=true;isc.A.resizeFieldsForScrollbar=true;isc.A.cellSpacing=0;isc.A.cellPadding=2;isc.A.$68j={datetime:true,dateTime:true};isc.A.timeFormatter="toShortPaddedTime";isc.A.$30h=["<a href='",,"' target='",,"' onclick='if(window.",,") return ",,".$30i(event,",,",",,");'>",,"</a>"];isc.A.$30j="\\'";isc.A.$30k="_blank";isc.A.linkTextProperty="linkText";isc.A.fastCellUpdates=isc.Browser.isIE&&!isc.Browser.isIE9;isc.A.normalBaseStyle="cell";isc.A.tallBaseStyle="cell";isc.A.editFailedBaseStyle=null;isc.A.editFailedCSSText="color:red;border:1px solid red;";isc.A.editPendingBaseStyle=null;isc.A.editPendingCSSText="color:#0066CC;";isc.A.recordCustomStyleProperty="customStyle";isc.A.recordBaseStyleProperty="_baseStyle";isc.A.shrinkForFreeze=false;isc.A.alternateRecordFrequency=1;isc.A.recordCSSTextProperty="cssText";isc.A.showSelectedStyle=true;isc.A.generateClickOnSpace=true;isc.A.generateDoubleClickOnEnter=true;isc.A.arrowKeyAction="select";isc.A.recordComponentPoolingMode="viewport";isc.A.showRollOver=!isc.Browser.isTouch;isc.A.backgroundComponentDefaults={snapTo:"TL",autoDraw:false,opacity:"50%"};isc.A.showHover=true;isc.A.cellHoverOutset=5;isc.A.hoverStyle="gridHover";isc.A.selectionAppearance="rowStyle";isc.A.recordCanSelectProperty="canSelect";isc.A.showEmptyMessage=true;isc.A.emptyMessage="No items to show.";isc.A.emptyMessageStyle="emptyMessage";isc.A.loadingDataMessage="${loadingImage}&nbsp;Loading data...";isc.A.loadingDataMessageStyle="loadingDataMessage";isc.A.loadingMessage="&nbsp;";isc.A.singleCellValueProperty="singleCellValue";isc.A.isSeparatorProperty="isSeparator";isc.A.filterEditorDefaults={shouldPrint:false};isc.A.filterEditorHeight=22;isc.A.autoFetchTextMatchStyle="substring";isc.A.canEditNew=false;isc.A.recordEditProperty="_canEdit";isc.A.editValuesTestedProperty="$30l";isc.A.autoValidate=true;isc.A.removeIcon="[SKIN]/actions/remove.png";isc.A.removeIconSize=16;isc.A.animateRemoveRecord=true;isc.A.animateRemoveTime=100;isc.A.animateRemoveSpeed=200;isc.A.removeFieldTitle="[Remove record]";isc.A.removeFieldDefaults={type:"icon",width:21,showHeaderContextMenuButton:false,showDefaultContextMenu:false,showTitle:false,canEdit:false,canSort:false,canGroupBy:false,canFilter:false,recordClick:function(_1,_2,_3,_4,_5){var _6=_1.getAllEditRows(),_7=_6.contains(_3);if(_7)_1.discardEdits(_3,_5);_1.$609(_3,_2);return false}};isc.A.autoSaveEdits=true;isc.A.showErrorIcons=true;isc.A.errorIconHeight=16;isc.A.errorIconWidth=16;isc.A.errorIconSrc="[SKIN]/validation_error_icon.png";isc.A.cancelEditingConfirmationMessage="Cancelling this edit will discard unsaved changes for this record. Continue?";isc.A.confirmDiscardEdits=true;isc.A.confirmDiscardEditsMessage="This action will discard all unsaved changes for this list.";isc.A.discardEditsSaveButtonTitle="Save";isc.A.newRecordRowMessage="-- Add New Row --";isc.A.enterKeyEditAction="done";isc.A.escapeKeyEditAction="cancel";isc.A.editEvent=isc.EH.DOUBLE_CLICK;isc.A.selectOnEdit=true;isc.A.enumCriteriaAsInitialValues=true;isc.A.autoSelectEditors=true;isc.A.editFormDefaults={canSelectText:true,autoDraw:false,errorOrientation:"left",showErrorText:false,showErrorStyle:false,itemKeyPress:function(_1,_2,_3){return this.grid.editorKeyPress(_1,_2,_3)}};isc.A.longTextEditorThreshold=255;isc.A.longTextEditorType="PopUpTextAreaItem";isc.A.headerHeight=22;isc.A.minFieldWidth=15;isc.A.showHeader=true;isc.A.headerBackgroundColor="#CCCCCC";isc.A.headerDefaults={instantRelayout:true,enforcePolicy:false,itemClick:function(_1,_2){this.Super("itemClick",arguments);this.grid.$666(_2,this)},itemDoubleClick:function(_1,_2){this.Super("itemDoubleClick",arguments);this.grid.$774(_2,this)},showContextMenu:function(){return this.grid.headerBarContextClick(this)},backgroundRepeat:isc.Canvas.NO_REPEAT,shouldPrint:false};isc.A.headerButtonDefaults={getCurrentCursor:function(){var _1=this.parentElement?this.parentElement.grid:null;var _2;if(_1&&this.masterIndex!=null){var _3=_1.getField(this.masterIndex),_4=(_1.canSort!=false&&_1.$66c(_3)!=false);if(_4)_2=isc.Canvas.HAND;else _2=isc.Canvas.DEFAULT}else{_2=this.getClass().getPrototype().cursor}
+this.cursor=_2;return this.Super("getCurrentCursor",arguments)},dragScrollType:"parentsOnly",minWidth:20};isc.A.sorterConstructor=isc.Button;isc.A.sorterDefaults={_redrawWithParent:false,getTitle:function(){return this.parentElement.getSortArrowImage()},click:function(){return this.parentElement.sorterClick()},showContextMenu:function(){return this.parentElement.sorterContextClick()},canFocus:false};isc.A.canSort=true;isc.A.canUnsort=false;isc.A.invalidateCacheOnUnsort=false;isc.A.sortDirection=Array.ASCENDING;isc.A.canPickFields=true;isc.A.canPickOmittedFields=false;isc.A.openRecordEditorContextMenuItemTitle="Edit";isc.A.dismissEmbeddedComponentContextMenuItemTitle="Dismiss";isc.A.deleteRecordContextMenuItemTitle="Delete";isc.A.canOpenRecordDetailGrid=true;isc.A.canOpenRecordEditor=true;isc.A.recordEditorSaveButtonTitle="Save";isc.A.recordEditorCancelButtonTitle="Cancel";isc.A.headerMenuButtonIcon="[SKIN]/ListGrid/headerMenuButton_icon.gif";isc.A.headerMenuButtonIconWidth=7;isc.A.headerMenuButtonIconHeight=7;isc.A.headerMenuButtonWidth=16;isc.A.headerMenuButtonHeight="100%";isc.A.canDragRecordsOut=false;isc.A.canReorderFields=true;isc.A.canResizeFields=true;isc.A.dragAppearance=isc.EH.TRACKER;isc.A.dragTrackerMode="title";isc.A.resizeFieldsInRealTime=(isc.Browser.isIE&&isc.Browser.isWin)||(isc.Browser.isFirefox&&isc.Browser.geckoVersion>=20080529)||(isc.Browser.isSafari&&isc.Browser.safariVersion>=500);isc.A.embeddedComponentIndent=25;isc.A.nestedGridDefaults={height:150};isc.A.skinImgDir="images/ListGrid/";isc.A.sortAscendingImage={src:"[SKIN]sort_ascending.gif",width:7,height:7};isc.A.sortDescendingImage={src:"[SKIN]sort_descending.gif",width:7,height:7};isc.A.trackerImage={src:"[SKIN]tracker.gif",width:16,height:16};isc.A.booleanTrueImage=null;isc.A.booleanFalseImage=null;isc.A.booleanPartialImage=null;isc.A.booleanImageWidth=16;isc.A.booleanImageHeight=16;isc.A.mozBodyOutlineColor="white";isc.A.mozBodyNoHeaderOutlineColor="red";isc.A.rowNumberStyle="specialCol";isc.A.rowNumberStart=1;isc.A.rowNumberFieldDefaults={name:"$74y",canEdit:false,canFilter:false,canGroupBy:false,canSort:false,canExport:false,canHide:false,canReorder:false,canDragResize:false,showAlternateStyle:false,$74z:true,showHeaderContextMenuButton:false,showDefaultContextMenu:false,keyboardFiresRecordClick:false,showGroupSummary:false,showGridSummary:false,formatCellValue:function(_1,_2,_3,_4,_5){if(_5.isGrouped){if(_2==null||_2.$52e)return"&nbsp;";var _6=_5.getGroupedRecordIndex(_2);if(_6==-1)return null;return(_5.rowNumberStart+_6)}else{return this.rowNumberStart+_3}},autoFreeze:true};isc.A.$740=30;isc.A.canExpandMultipleRecords=true;isc.A.maxExpandedRecordsPrompt="This grid is limited to \${count} simultaneously expanded records.  Please collapse some expanded records and retry.";isc.A.expansionFieldDefaults={name:"$72v",canEdit:false,canFilter:false,canGroupBy:false,canSort:false,canExport:false,canHide:false,canReorder:false,canDragResize:false,$72w:true,showHeaderContextMenuButton:false,showDefaultContextMenu:false,keyboardFiresRecordClick:false,cellAlign:"center",recordClick:function(_1,_2,_3,_4,_5,_6,_7){if(!_1.canExpandRecords||!_4.$72w)return;if(!_1.$811(_2,_3))return;if(_2.expanded)_1.collapseRecord(_2);else _1.expandRecord(_2)},formatCellValue:function(_1,_2,_3,_4,_5){_2=_5.getCellRecord(_3,_4);if(_2==null||_2.$52e)return null;if(!_5.$811(_2,_3))return null;return _5.getValueIconHTML(_2.expanded?_5.expansionFieldTrueImage:_5.expansionFieldFalseImage,this)},autoFreeze:true};isc.A.expansionFieldTrueImage="[SKINIMG]/ListGrid/group_opened.gif";isc.A.expansionFieldFalseImage="[SKINIMG]/ListGrid/group_opening.gif";isc.A.expansionFieldExtraWidth=16;isc.A.$74a=0;isc.A.expansionDetailFieldDefaults={_constructor:isc.HTMLFlow,autoDraw:false,width:"100%",height:"100%"};isc.A.expansionDetailsDefaults={_constructor:isc.DetailViewer,autoDraw:false,width:"100%"};isc.A.expansionRelatedDefaults={_constructor:isc.ListGrid,autoDraw:false,width:"100%",autoFitData:"vertical",autoFitMaxRecords:4};isc.A.expansionEditorSaveDialogPrompt="You have unsaved changes - do you want to save them now?";isc.A.expansionEditorShowSaveDialog=false;isc.A.expansionEditorDefaults={_constructor:"DynamicForm",autoDraw:false,numCols:4,colWidths:["*","*","*","*"],width:"100%",saveOperationType:"update"};isc.A.expansionDetailRelatedDefaults={_constructor:isc.HLayout,autoDraw:false,width:"100%",height:"100%"};isc.A.expansionLayoutDefaults={_constructor:isc.VLayout,autoDraw:false,width:"100%",height:10,overflow:"visible"};isc.A.recordDetailDSProperty="detailDS";isc.A.expansionCanEdit=false;isc.B.push(isc.A.shouldAnimateFolder=function isc_ListGrid_shouldAnimateFolder(_1){if(!this.animateFolders||!this.isDrawn())return false;var _2=this.data.isFolder(_1)?this.data.getOpenList(_1):null;if(_2==null||_2.length==0)return false;return(_2.length<=this.getAnimateFolderMaxRows())}
 ,isc.A.getAnimateFolderMaxRows=function isc_ListGrid_getAnimateFolderMaxRows(){var _1=this.animateFolderMaxRows;if(_1==null){var _2=this.body?this.body.$27x():[0,0];_1=Math.min(75,(_2[1]-_2[0])*3)}
 return _1}
+,isc.A.getGroupTitleField=function isc_ListGrid_getGroupTitleField(){return this.groupTitleField}
+,isc.A.showingGroupTitleColumn=function isc_ListGrid_showingGroupTitleColumn(){return(this.isGrouped&&this.showGroupSummary&&this.showGroupSummaryInHeader&&this.showGroupTitleColumn&&this.getGroupTitleField()==null)}
+,isc.A.getGroupTitleColumn=function isc_ListGrid_getGroupTitleColumn(){var _1=this;var _2=isc.addProperties({$84g:true,getAutoFreezePosition:function(){return _1.getGroupTitleColumnPosition()}},this.groupTitleColumnDefaults,this.groupTitleColumnProperties);if(_2.name==null){_2.name=this.groupTitleColumnName}
+return _2}
+,isc.A.getGroupTitleColumnPosition=function isc_ListGrid_getGroupTitleColumnPosition(){if(!this.showingGroupTitleColumn())return-1;return(this.showRowNumbers?1:0)}
+,isc.A.singleCellGroupHeaders=function isc_ListGrid_singleCellGroupHeaders(){if(this.getGroupTitleField()!=null)return false;if(this.showGroupSummary&&this.showGroupSummaryInHeader)return false;return true}
 ,isc.A.$30m=function isc_ListGrid__formatDateCellValue(_1,_2,_3,_4,_5,_6){if(isc.isA.Date(_1)){var _7=_2&&_3.$68j[_2.type],_8=_3.$45i(_2);if(_7)return _1.toShortDateTime(_8,true);return _1.toShortDate(_8)}
 return _1}
 ,isc.A.$45i=function isc_ListGrid__getDateFormatter(_1){var _2;if(_1)_2=(_1.displayFormat||_1.dateFormatter||_1.formatter);if(!_2){if(_1&&this.$68j[_1.type]&&this.datetimeFormatter){_2=this.datetimeFormatter}else{_2=this.dateFormatter}}
@@ -6660,8 +6766,8 @@
 _1=_4[_9]}else{if(_2.showFileInline==true){this.logWarn("$30q(): Unsupported field-type for showFileInline: "+_2.type)}
 if(_8==null||isc.isA.emptyString(_8))return this.emptyCellValue;var _12=isc.Canvas.imgHTML("[SKIN]actions/view.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+_3.getID()+".viewRow("+_5+")'");var _13=isc.Canvas.imgHTML("[SKIN]actions/download.png",16,16,null,"style='cursor:"+isc.Canvas.HAND+"' onclick='"+_3.getID()+".downloadRow("+_5+")'");_1=_12+"&nbsp;"+_13+"&nbsp;"+_8}
 return _1}
-,isc.A.$30r=function isc_ListGrid__formatLinkCellValue(_1,_2,_3,_4,_5,_6){if(_1==null||isc.is.emptyString(_1))return _1;var _7=_2.target?_2.target.replaceAll(_3.$ob,_3.$30j):_3.$30k;var _8=(_4&&_4[_3.linkTextProperty])?_4[_3.linkTextProperty]:_2[_3.linkTextProperty]||_1;var _9=_1;if(_2.linkURLPrefix)_9=_2.linkURLPrefix+_9;if(_2.linkURLSuffix)_9=_9+_2.linkURLSuffix;_9=_9.replaceAll(_3.$ob,_3.$30j);if(_7=="javascript"){_9="javascript:void"}
-var _10=_3.$30h;_10[1]=_9;_10[3]=_7;var _11=_3.getID();_10[5]=_11;_10[7]=_11;_10[9]=_5;_10[11]=_6;_10[13]=_8;return _10.join(isc.emptyString)}
+,isc.A.$30r=function isc_ListGrid__formatLinkCellValue(_1,_2,_3,_4,_5,_6){if(_1==null||isc.is.emptyString(_1))return _1;var _7=_2.target?_2.target.replaceAll(_3.$ob,_3.$30j):_3.$30k;var _8=_2.linkTextProperty?_2.linkTextProperty:_3.linkTextProperty;var _9=(_4&&_4[_8])?_4[_8]:_2.linkText||_1;var _10=_1;if(_2.linkURLPrefix)_10=_2.linkURLPrefix+_10;if(_2.linkURLSuffix)_10=_10+_2.linkURLSuffix;_10=_10.replaceAll(_3.$ob,_3.$30j);if(_7=="javascript"){_10="javascript:void"}
+var _11=_3.$30h;_11[1]=_10;_11[3]=_7;var _12=_3.getID();_11[5]=_12;_11[7]=_12;_11[9]=_5;_11[11]=_6;_11[13]=_9;return _11.join(isc.emptyString)}
 ,isc.A.$30i=function isc_ListGrid__linkClicked(_1,_2,_3){var _4=(this.destroyed||!this.isDrawn()||!this.isVisible()||isc.EH.targetIsMasked(this.body)||!this.recordIsEnabled(_2,_3));var _5=this.getRecord(_2),_6=this.getField(_3);if(_1.target=="javascript"||_6.target=="javascript"){_4=true;this.cellClick(_5,_2,_3)}
 if(_4){if(!isc.Browser.isIE){_1.preventDefault()}
 return false}
@@ -6674,12 +6780,11 @@
 ,isc.A.editorKeyDown=function isc_ListGrid_editorKeyDown(_1,_2){if(isc.Browser.isMoz&&_1&&_1.multiple&&isc.isA.NativeSelectItem(_1)&&_2=="Enter")
 {_1.$695=_1.getValue()}
 if(isc.Browser.isSafari&&isc.Browser.safariVersion>=525.13&&_2=="Tab"){return false}}
-,isc.A.editorKeyPress=function isc_ListGrid_editorKeyPress(_1,_2,_3){var _4=isc.EH,_5,_6;if(_2=="Tab"){var _7=_4.shiftKeyDown();if(this.ns.isA.ContainerItem(_1)||(_1.icons!=null&&_1.icons.length>0&&!this.ns.isA.PopUpTextAreaItem(_1)))
-{if(!this.$11s(_1,_7)){return false}}
-_6=_7?isc.ListGrid.SHIFT_TAB_KEYPRESS:isc.ListGrid.TAB_KEYPRESS;_5=false}else if(_2=="Enter"){if(_1.getFocusIconIndex()!=null)return;if((isc.isA.PopUpTextAreaItem(_1)||isc.isA.TextAreaItem(_1))&&isc.EH.altKeyDown()==false)
-{return _5}
-if(_1.$695!=null){var _8=_1.$695;delete _1.$695;_1.setValue(_8)}
-_6=isc.ListGrid.ENTER_KEYPRESS;_5=false}else if(_2=="Escape"){_6=isc.ListGrid.ESCAPE_KEYPRESS;_5=false}else if(_2=="Arrow_Up"){var _9=isc.isA.PopUpTextAreaItem(_1)||isc.isA.TextAreaItem(_1);if(_9&&!isc.EH.altKeyDown())return _5;if(isc.isA.SelectItem(_1)&&!isc.EH.ctrlKeyDown())return _5;if(isc.EH.ctrlKeyDown()&&isc.EH.shiftKeyDown())return _5;_6=isc.ListGrid.UP_ARROW_KEYPRESS;_5=false}else if(_2=="Arrow_Down"){var _9=isc.isA.PopUpTextAreaItem(_1)||isc.isA.TextAreaItem(_1);if(_9&&!isc.EH.altKeyDown())return _5;if(isc.isA.SelectItem(_1)&&!isc.EH.ctrlKeyDown())return _5;if(isc.EH.ctrlKeyDown&&isc.EH.shiftKeyDown())return _5;_6=isc.ListGrid.DOWN_ARROW_KEYPRESS;_5=false}else if(this.moveEditorOnArrow&&this.$51k){if(_2=="Arrow_Left"){_6=isc.ListGrid.LEFT_ARROW_KEYPRESS;_5=false}else if(_2=="Arrow_Right"){_6=isc.ListGrid.RIGHT_ARROW_KEYPRESS;_5=false}}
+,isc.A.editorKeyPress=function isc_ListGrid_editorKeyPress(_1,_2,_3){var _4=isc.EH,_5,_6;var _7=isc.isA.PopUpTextAreaItem(_1)||(isc.RichTextItem&&isc.isA.RichTextItem(_1))||isc.isA.TextAreaItem(_1);if(_2=="Tab"){var _8=_4.shiftKeyDown();if(this.ns.isA.ContainerItem(_1)||(_1.icons!=null&&_1.icons.length>0&&!this.ns.isA.PopUpTextAreaItem(_1)))
+{if(!this.$11s(_1,_8)){return false}}
+_6=_8?isc.ListGrid.SHIFT_TAB_KEYPRESS:isc.ListGrid.TAB_KEYPRESS;_5=false}else if(_2=="Enter"){if(_1.getFocusIconIndex()!=null)return;if(_7&&isc.EH.altKeyDown()==false){return _5}
+if(_1.$695!=null){var _9=_1.$695;delete _1.$695;_1.setValue(_9)}
+_6=isc.ListGrid.ENTER_KEYPRESS;_5=false}else if(_2=="Escape"){_6=isc.ListGrid.ESCAPE_KEYPRESS;_5=false}else if(_2=="Arrow_Up"){var _10=_7;if(_10&&!isc.EH.altKeyDown())return _5;if(isc.isA.SelectItem(_1)&&!isc.EH.ctrlKeyDown())return _5;if(isc.EH.ctrlKeyDown()&&isc.EH.shiftKeyDown())return _5;_6=isc.ListGrid.UP_ARROW_KEYPRESS;_5=false}else if(_2=="Arrow_Down"){var _10=_7;if(_10&&!isc.EH.altKeyDown())return _5;if(isc.isA.SelectItem(_1)&&!isc.EH.ctrlKeyDown())return _5;if(isc.EH.ctrlKeyDown&&isc.EH.shiftKeyDown())return _5;_6=isc.ListGrid.DOWN_ARROW_KEYPRESS;_5=false}else if(this.moveEditorOnArrow&&this.$51k){if(_2=="Arrow_Left"){_6=isc.ListGrid.LEFT_ARROW_KEYPRESS;_5=false}else if(_2=="Arrow_Right"){_6=isc.ListGrid.RIGHT_ARROW_KEYPRESS;_5=false}}
 if(_6!=null){if(isc.EH.clickMaskUp()){isc.EH.setMaskedFocusCanvas(null,isc.EH.clickMaskRegistry.last())}
 this.cellEditEnd(_6)}
 return _5}
@@ -6689,8 +6794,9 @@
 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),_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}}}
-_6+=_2.getChildren(_8).length}
+,isc.A.getGroupedRecordIndex=function isc_ListGrid_getGroupedRecordIndex(_1){if(!this.isGrouped)return-1;var _2=this.groupTree,_3=_2.getParent(_1),_4=_2.getChildren(_2.getParent(_3)),_5=0,_6=0;if(_3==null)return-1;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}
 ,isc.A.objectsAreEqual=function isc_ListGrid_objectsAreEqual(_1,_2){for(var _3 in _1){if(_1[_3]!=_2[_3])return false}
 return true}
@@ -6705,28 +6811,34 @@
 ,isc.A.$72y=function isc_ListGrid__getExpansionFieldImageWidth(){return this.expansionFieldImageWidth||this.booleanImageWidth||(isc.CheckboxItem?isc.CheckboxItem.getInstanceProperty("valueIconWidth"):null)}
 ,isc.A.$72z=function isc_ListGrid__getExpansionFieldImageHeight(){return this.expansionFieldImageHeight||this.booleanImageHeight||(isc.CheckboxItem?isc.CheckboxItem.getInstanceProperty("valueIconHeight"):null)}
 ,isc.A.isExpansionField=function isc_ListGrid_isExpansionField(_1){if(!_1||!_1.$72w)return false;else return true}
-,isc.A.getExpansionFieldPosition=function isc_ListGrid_getExpansionFieldPosition(){if(!this.canExpandRecords)return-1;if(this.isRTL())return this.showRowNumbers?this.fields.length-1:this.fields.length;else return this.showRowNumbers?1:0}
+,isc.A.getExpansionFieldPosition=function isc_ListGrid_getExpansionFieldPosition(){if(!this.canExpandRecords)return-1;var _1=0;if(this.showRowNumbers)_1+=1;if(this.showingGroupTitleColumn())_1+=1;return _1}
 ,isc.A.$811=function isc_ListGrid__canExpandRecord(_1,_2){if(_1==null)_1=this.getRecord(_2);if(_1==null)return false;return this.canExpandRecord(_1,_2)}
 ,isc.A.canExpandRecord=function isc_ListGrid_canExpandRecord(_1,_2){return _1[this.canExpandRecordProperty]==false?false:true&&(this.canExpandRecords!=false)}
 ,isc.A.expandRecord=function isc_ListGrid_expandRecord(_1){var _2,_3=this.getRecordIndex(_1);if(!_1.expanded){if(this.onExpandRecord!=null&&!this.onExpandRecord(_1))return;if(!this.canExpandMultipleRecords){if(this.$74b)
 this.collapseRecord(this.$74b);this.$74b=_1}else if(this.maxExpandedRecords){if(this.$74a==this.maxExpandedRecords){var _4=this.maxExpandedRecordsPrompt.evalDynamicString(this,{count:this.maxExpandedRecords});isc.say(_4);return}}
 _2=this.getExpansionComponent(_1);var _5=this.createAutoChild("expansionLayout",{layoutLeftMargin:this.embeddedComponentIndent,members:[_2]});_5.isExpansionComponent=true;this.addEmbeddedComponent(_5,_1,this.data.indexOf(_1));_1.expanded=true;_1.hasExpansionComponent=true;this.$74a++;if(!this.canExpandMultipleRecords)this.$74b=_1}
-this.delayCall("markForRedraw");this.refreshRow(_3)}
-,isc.A.collapseRecord=function isc_ListGrid_collapseRecord(_1){if(_1.expanded){if(this.onCollapseRecord!=null&&!this.onCollapseRecord(_1))return;if(this.$74b&&this.$74b==_1)
-delete this.$74b;var _2=_1.$29a.find("isExpansionComponent",true);this.removeEmbeddedComponent(_1,_2?_2:this.frozenFields?this.frozenFields.length:0);this.$74a--}
-_1.expanded=false;this.$74c();this.markForRedraw()}
-,isc.A.getExpansionComponent=function isc_ListGrid_getExpansionComponent(_1){var _2=this.getFields(),_3=this.dataSource?isc.getValues(this.getDataSource().getFields()):_2,_4=[],_5;for(var i=0;i<_3.length;i++){var _7=_3.get(i);if(this.dataSource){if(!_2.find("name",_7.name)){_4.add(_7)}}else{if(!this.isExpansionField(_7)){_4.add(_7)}}}
-if(this.expansionMode=="detailField"){_5=this.createAutoChild("expansionDetailField",{contents:_1[this.detailField]});_5=isc.VLayout.create({width:"100%",height:"100%",members:[_5]})}else if(this.expansionMode=="details"){_5=this.createAutoChild("expansionDetails",{dataSource:this.dataSource,fields:_4});_5.setData(_1)}else if(this.expansionMode=="related"){_5=this.createAutoChild("expansionRelated",{dataSource:this.getRelatedDataSource(_1),canExpandRecords:this.childExpansionMode?true:false,expansionMode:this.childExpansionMode,canEdit:this.expansionCanEdit});if(this.expansionCanEdit)_5.autoSaveEdits=true;_5.fetchRelatedData(_1,this.dataSource)}else if(this.expansionMode=="editor"){_5=this.createAutoChild("expansionEditor",{dataSource:this.dataSource,fields:_4});_5.editRecord(_1)}else if(this.expansionMode=="detailRelated"){var _8=this.createAutoChild("expansionDetails",{dataSource:this.dataSource,fields:_4});_8.setData(_1);var _9=this.createAutoChild("expansionRelated",{dataSource:this.getRelatedDataSource(_1),canExpandRecords:this.childExpansionMode?true:false,expansionMode:this.childExpansionMode,canEdit:this.expansionCanEdit,height:"100%"});_5=this.createAutoChild("expansionDetailRelated",{members:[_8,_9]})}
-return _5}
+this.delayCall("markForRedraw",["Expanded Record"]);this.refreshRow(_3)}
+,isc.A.collapseRecord=function isc_ListGrid_collapseRecord(_1){var _2=_1?_1.$29a.find("isExpansionComponent",true):null;if(isc.isA.Layout(_2)){var _3=_2.getMember(0);if(isc.isA.DynamicForm(_3)&&_3.valuesHaveChanged()){if(this.autoSaveEdits==true){var _4=this;if(this.expansionEditorShowSaveDialog){isc.confirm(this.expansionEditorSaveDialogPrompt,function(_8){if(_8){_4.saveExpansionDetail(_3,_2,_1)}else{_4.$84t(_1,_2)}})}else{this.saveExpansionDetail(_3,_2,_1)}
+return}else{var _5=_3.getChangedValues(),_6=this.getRecordIndex(_1),_4=this;if(this.expansionEditorShowSaveDialog){isc.confirm("You have unsaved changes - do you want to save them now?",function(_8){if(_8){for(var _7 in _5){alert(_7);_4.setEditValue(_6,_7,_5[_7])}
+_4.$84t(_1,_2)}else{_4.$84t(_1,_2)}});return}else{for(var _7 in _5){this.setEditValue(_6,_7,_5[_7])}
+this.$84t(_1,_2);return}}}}
+this.$84t(_1,_2)}
+,isc.A.saveExpansionDetail=function isc_ListGrid_saveExpansionDetail(_1,_2,_3){var _4=this;_1.saveData(function(_5,_6,_7){if(_6){_3=_6;_4.$84t(_3,_2)}},{showPrompt:true,promptStyle:"cursor"})}
+,isc.A.$84t=function isc_ListGrid__collapseRecord(_1,_2){_2=_2||(_1?_1.$29a.find("isExpansionComponent",true):null);if(_1.expanded){if(this.onCollapseRecord!=null&&!this.onCollapseRecord(_1))return;if(this.$74b&&this.$74b==_1)
+delete this.$74b;this.removeEmbeddedComponent(_1,_2?_2:this.frozenFields?this.frozenFields.length:0);this.$74a--}
+_1.expanded=false;this.$74c();this.redraw()}
+,isc.A.getCurrentExpansionComponent=function isc_ListGrid_getCurrentExpansionComponent(_1){if(isc.isA.Number(_1))_1=this.getRecord(_1);if(!_1.hasExpansionComponent)return null;var _2=_1.$29a?_1.$29a.find("isExpansionComponent",true):null;if(_2){return _2.members[0]}
+return null}
+,isc.A.getExpansionComponent=function isc_ListGrid_getExpansionComponent(_1){return this.$84d(_1,true,false)}
 ,isc.A.getRelatedDataSource=function isc_ListGrid_getRelatedDataSource(_1){return isc.DS.getDataSource(_1[this.recordDetailDSProperty])||isc.DS.get(this.detailDS)}
-);isc.B._maxIndex=isc.C+39;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.warnOnReusedFields=true;isc.A.autoFitExpandLengthThreshold=10;isc.A.$81l="dataChanged";isc.A.$70q=0;isc.A.$g2="boolean";isc.A.$604="set fields";isc.A.$12c="checkbox";isc.A.checkboxFieldDefaults={name:"_checkboxField",canEdit:false,canFilter:false,canGroupBy:false,canSort:false,canExport:false,canHide:false,canReorder:false,canDragResize:false,$63f:true,type:"boolean",showDefaultContextMenu:false,showHeaderContextMenuButton:false,hoverHTML:"return null;",autoFreeze:true};isc.A.$63g=15;isc.A.$812="Getting listGrid fieldWidths. ";isc.A.iconPadding=2;isc.A.$71t="summary";isc.A.$302="<HR>";isc.A.$303=["style='margin-left:",,"px;margin-right:",,"px;'"];isc.A.$g2="boolean";isc.A.$gx="text";isc.A.$54y={" ":true,"\n":true,"\r":true,"\r\n":true};isc.A.$54t="&nbsp;";isc.A.$687={text:true,TextItem:true,select:true,SelectItem:true,combobox:true,ComboBoxItem:true,comboBox:true,checkbox:true,CheckboxItem:true,date:true,DateItem:true,spinner:true,SpinnerItem:true,popUpTextArea:true,PopUpTextAreaItem:true};isc.A.$18r="false";isc.A.$18q="true";isc.A.$81m="$81n";isc.A.$81o=0;isc.A.$57m="expand";isc.A.printAutoFit=true;isc.A.printWrapCells=true;isc.A.printHeaderStyle="printHeader";isc.A.printMaxRows=100;isc.A.defaultCellHoverComponentWidth=300;isc.A.defaultCellHoverComponentHeight=150;isc.A.$20s="Arrow_Up";isc.A.$20t="Arrow_Down";isc.A.$304="Space";isc.A.$10j="Enter";isc.A.$51g="f2";isc.A.$20w="Escape";isc.A.$51h="Backspace";isc.A.$51i="Delete";isc.A.$51l="keyPress";isc.A.$27r="none";isc.A.$305="focus";isc.A.$12b="select";isc.A.$306="activate";isc.A.$kn=false;isc.A.showGridSummary=false;isc.A.invalidSummaryValue="&nbsp;";isc.A.includeInSummaryProperty="includeInSummary";isc.A.gridSummaryRecordProperty="isGridSummary";isc.A.groupSummaryRecordProperty="isGroupSummary";isc.A.$71t="summary";isc.A.recordSummaryBaseStyle="recordSummaryCell";isc.A.summaryRowConstructor="ListGrid";isc.A.summaryRowDefaults={showRollOver:false};isc.A.summaryRowHeight=20;isc.A.summaryRowStyle="gridSummaryCell";isc.A.$18q="true";isc.A.updateEditorItemsInPlace=true;isc.A.$307={time:true,TimeItem:true};isc.A.$g5="time";isc.A.$308={date:true,DateItem:true};isc.A.$68k={datetime:true,dateTime:true,DatetimeItem:true,DateTimeItem:true};isc.A.$g4="date";isc.A.$68l="datetime";isc.A.$309={popUpTextArea:true,PopUpTextAreaItem:true};isc.A.$31a={checkbox:true,CheckboxItem:true};isc.A.$g2="boolean";isc.A.$12c="checkbox";isc.A.$12i="CycleItem";isc.A.$31b={select:true,SelectItem:true};isc.A.$45k=["change","changed","defaultDynamicValue"];isc.A.$31c=["change","changed","defaultDynamicValue","keyPress","click","showIf","enableIf"];isc.A.$31d={};isc.A.$81p="column remap";isc.A.$31e=0;isc.A.$31f="rowNum,colNum,editCompletionEvent,success";isc.A.$60m="toggle frozen fields";isc.A.$81q="rebuilding body";isc.A.selectionCanvasDefaults={opacity:20};isc.A.selectionUnderCanvasDefaults={};isc.A.rollOverCanvasDefaults={snapTo:"TL",width:"100%",height:"100%"};isc.A.rollUnderCanvasDefaults={snapTo:"TL",width:"100%",height:"100%"};isc.A.$616="header height changed";isc.A.$617="header visibility changed";isc.A.headerMenuButtonDefaults={snapTo:"R",canFocus:false,resizeFrom:"R",title:null,iconSpacing:0,click:function(){this.parentElement.grid.headerMenuButtonClick()},mouseOut:function(){var _1=isc.EH.getTarget();if(!_1||!this.parentElement.contains(_1))this.hide();this.Super("mouseOut",arguments)}};isc.A.predictScrollbarGap=true;isc.A.sortFieldAscendingText="Sort Ascending";isc.A.sortFieldDescendingText="Sort Descending";isc.A.clearSortFieldText="Clear Sort";isc.A.clearAllSortingText="Clear All Sorting";isc.A.clearFilterText="Clear Filter";isc.A.configureSortText="Configure Sort";isc.A.autoFitFieldText="Auto Fit";isc.A.autoFitAllText="Auto Fit All Columns";isc.A.fieldVisibilitySubmenuTitle="Columns";isc.A.freezeFieldText="Freeze ${title}";isc.A.unfreezeFieldText="Unfreeze ${title}";isc.A.groupByText="Group by ${title}";isc.A.ungroupText="Ungroup";isc.A.headerContextMenuConstructor="Menu";isc.A.headerContextMenuDefaults={hide:function(){this.Super("hide",arguments);if(this.grid&&this.grid.headerMenuButton&&this.grid.headerMenuButton.isVisible()){this.grid.headerMenuButton.hide()}},doSort:function(_1,_2){if(_2=="unsort")this.grid.toggleSort(this.grid.getFieldName(_1),_2);else this.grid.sort(_1,_2)},canHover:true,showHover:true,cellHoverHTML:function(_1,_2,_3){return _1.prompt},groupField:function(_1){var _2=this.grid;if((_1.targetField&&_1.targetField.groupingMode)||((!_2.groupByField)||!_2.groupByField.contains(_1.fieldName))){_2.groupBy(_1.fieldName)}},ungroup:function(){this.grid.ungroup()}};isc.A.$31g="sort";isc.A.canMultiSort=true;isc.A.sortNumeralStyle="sortNumeral";isc.A.$73y="setSort";isc.A.chartConstructor="FacetChart";isc.A.chartType="Column";isc.A.groupIdField="groupId";isc.A.groupParentIdField="groupParentId";isc.A.retainOpenStateOnRegroup=true;isc.A.groupIconPadding=5;isc.A.showGroupSummary=false;isc.A.groupSummaryStyle="gridSummaryCell";isc.A.$31h={canDragSelect:true,canDragSelectText:true,canDragRecordsOut:true,canReorderRecords:true,canAcceptDroppedRecords:true};isc.A.$45l={bodyBackgroundColor:"backgroundColor",bodyStyleName:"styleName",fixedRecordHeights:"fixedRowHeights",fixedFieldWidths:"fixedColumnWidths",alternateRecordStyles:"alternateRowStyles",alternateRecordFrequency:"alternateRowFrequency",showAllRecords:"showAllRows",canSelectText:"canDragSelectText"};isc.B.push(isc.A.initWidget=function isc_ListGrid_initWidget(){if(this.showRecordComponents){delete this.showRecordComponents;this.setShowRecordComponents(true)}
+);isc.B._maxIndex=isc.C+47;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.warnOnReusedFields=true;isc.A.autoFitExpandLengthThreshold=10;isc.A.$81l="dataChanged";isc.A.$70q=0;isc.A.$g2="boolean";isc.A.$604="set fields";isc.A.$12c="checkbox";isc.A.checkboxFieldDefaults={name:"_checkboxField",canEdit:false,shouldPrint:false,canFilter:false,canGroupBy:false,canSort:false,canExport:false,canHide:false,canReorder:false,canDragResize:false,$63f:true,type:"boolean",showDefaultContextMenu:false,showHeaderContextMenuButton:false,hoverHTML:"return null;",autoFreeze:true};isc.A.$63g=15;isc.A.$812="Getting listGrid fieldWidths. ";isc.A.iconPadding=2;isc.A.$71t="summary";isc.A.$302="<HR>";isc.A.$303=["style='margin-left:",,"px;margin-right:",,"px;'"];isc.A.$g2="boolean";isc.A.$gx="text";isc.A.$54y={" ":true,"\n":true,"\r":true,"\r\n":true};isc.A.$54t="&nbsp;";isc.A.$687={text:true,TextItem:true,select:true,SelectItem:true,combobox:true,ComboBoxItem:true,comboBox:true,checkbox:true,CheckboxItem:true,date:true,DateItem:true,spinner:true,SpinnerItem:true,popUpTextArea:true,PopUpTextAreaItem:true};isc.A.$18r="false";isc.A.$18q="true";isc.A.$81m="$81n";isc.A.$81o=0;isc.A.$57m="expand";isc.A.printAutoFit=true;isc.A.printWrapCells=true;isc.A.printHeaderStyle="printHeader";isc.A.printMaxRows=100;isc.A.defaultCellHoverComponentWidth=300;isc.A.defaultCellHoverComponentHeight=150;isc.A.$20s="Arrow_Up";isc.A.$20t="Arrow_Down";isc.A.$304="Space";isc.A.$10j="Enter";isc.A.$51g="f2";isc.A.$20w="Escape";isc.A.$51h="Backspace";isc.A.$51i="Delete";isc.A.$51l="keyPress";isc.A.$27r="none";isc.A.$305="focus";isc.A.$12b="select";isc.A.$306="activate";isc.A.$kn=false;isc.A.showGridSummary=false;isc.A.invalidSummaryValue="&nbsp;";isc.A.includeInSummaryProperty="includeInSummary";isc.A.gridSummaryRecordProperty="isGridSummary";isc.A.groupSummaryRecordProperty="isGroupSummary";isc.A.$71t="summary";isc.A.recordSummaryBaseStyle="recordSummaryCell";isc.A.summaryRowConstructor="ListGrid";isc.A.summaryRowDefaults={showRollOver:false};isc.A.summaryRowHeight=20;isc.A.summaryRowStyle="gridSummaryCell";isc.A.$18q="true";isc.A.updateEditorItemsInPlace=true;isc.A.$307={time:true,TimeItem:true};isc.A.$g5="time";isc.A.$308={date:true,DateItem:true};isc.A.$68k={datetime:true,dateTime:true,DatetimeItem:true,DateTimeItem:true};isc.A.$g4="date";isc.A.$68l="datetime";isc.A.$309={popUpTextArea:true,PopUpTextAreaItem:true};isc.A.$31a={checkbox:true,CheckboxItem:true};isc.A.$g2="boolean";isc.A.$12c="checkbox";isc.A.$12i="CycleItem";isc.A.$31b={select:true,SelectItem:true};isc.A.$45k=["change","changed","defaultDynamicValue"];isc.A.$31c=["change","changed","defaultDynamicValue","keyPress","click","showIf","enableIf"];isc.A.$31d={};isc.A.$81p="column remap";isc.A.$31e=0;isc.A.$31f="rowNum,colNum,editCompletionEvent,success";isc.A.$60m="toggle frozen fields";isc.A.$81q="rebuilding body";isc.A.selectionCanvasDefaults={opacity:20};isc.A.selectionUnderCanvasDefaults={};isc.A.rollOverCanvasDefaults={snapTo:"TL",width:"100%",height:"100%"};isc.A.rollUnderCanvasDefaults={snapTo:"TL",width:"100%",height:"100%"};isc.A.$616="header height changed";isc.A.$617="header visibility changed";isc.A.headerMenuButtonDefaults={snapTo:"R",canFocus:false,resizeFrom:"R",title:null,iconSpacing:0,click:function(){this.parentElement.grid.headerMenuButtonClick()},mouseOut:function(){var _1=isc.EH.getTarget();if(!_1||!this.parentElement.contains(_1))this.hide();this.Super("mouseOut",arguments)}};isc.A.predictScrollbarGap=true;isc.A.sortFieldAscendingText="Sort Ascending";isc.A.sortFieldDescendingText="Sort Descending";isc.A.clearSortFieldText="Clear Sort";isc.A.clearAllSortingText="Clear All Sorting";isc.A.clearFilterText="Clear Filter";isc.A.configureSortText="Configure Sort";isc.A.autoFitFieldText="Auto Fit";isc.A.autoFitAllText="Auto Fit All Columns";isc.A.fieldVisibilitySubmenuTitle="Columns";isc.A.freezeFieldText="Freeze ${title}";isc.A.unfreezeFieldText="Unfreeze ${title}";isc.A.groupByText="Group by ${title}";isc.A.ungroupText="Ungroup";isc.A.headerContextMenuConstructor="Menu";isc.A.headerContextMenuDefaults={hide:function(){this.Super("hide",arguments);if(this.grid&&this.grid.headerMenuButton&&this.grid.headerMenuButton.isVisible()){this.grid.headerMenuButton.hide()}},doSort:function(_1,_2){if(_2=="unsort")this.grid.toggleSort(this.grid.getFieldName(_1),_2);else this.grid.sort(_1,_2)},canHover:true,showHover:true,cellHoverHTML:function(_1,_2,_3){return _1.prompt},groupField:function(_1){var _2=this.grid;if((_1.targetField&&_1.targetField.groupingMode)||((!_2.groupByField)||!_2.groupByField.contains(_1.fieldName))){_2.groupBy(_1.fieldName)}},ungroup:function(){this.grid.ungroup()}};isc.A.$31g="sort";isc.A.canMultiSort=true;isc.A.sortNumeralStyle="sortNumeral";isc.A.$73y="setSort";isc.A.chartConstructor="FacetChart";isc.A.chartType="Column";isc.A.groupIdField="groupId";isc.A.groupParentIdField="groupParentId";isc.A.retainOpenStateOnRegroup=true;isc.A.groupIconPadding=5;isc.A.showGroupSummary=false;isc.A.groupSummaryStyle="gridSummaryCell";isc.A.$31h={canDragSelect:true,canDragSelectText:true,canDragRecordsOut:true,canReorderRecords:true,canAcceptDroppedRecords:true};isc.A.$45l={bodyBackgroundColor:"backgroundColor",bodyStyleName:"styleName",fixedRecordHeights:"fixedRowHeights",fixedFieldWidths:"fixedColumnWidths",alternateRecordStyles:"alternateRowStyles",alternateRecordFrequency:"alternateRowFrequency",showAllRecords:"showAllRows",canSelectText:"canDragSelectText"};isc.B.push(isc.A.initWidget=function isc_ListGrid_initWidget(){if(this.showRecordComponents){delete this.showRecordComponents;this.setShowRecordComponents(true)}
 if(this.fields==null&&this.defaultFields!=null){this.fields=isc.shallowClone(this.defaultFields)}else if(this.warnOnReusedFields&&this.fields!=null){if(this.fields.$696){this.logWarn("ListGrid initialized with this.fields attribute set to an array "+"which is already being displayed in another ListGrid instance. To reuse "+"standard field configuration across multiple ListGrids, use "+"listGrid.defaultFields rather than assigning directly to listGrid.fields.")}else{var _1;if(isc.isAn.Array(this.fields)){_1=this.fields.findIndex("$697",true)!=-1}else if(isc.isAn.Object(this.fields)){for(var _2 in this.fields){var _3=this.fields[_2];if(_3&&_3.$697){_1=true;break}}}
 if(_1){this.logWarn("ListGrid initialized with this.fields attribute set to an array "+"containing fields which are already being displayed in another ListGrid "+"instance. To reuse standard field configuration across multiple ListGrids, use "+"listGrid.defaultFields rather than assigning directly to listGrid.fields.")}}}
 if(this.canEditNew)this.listEndEditAction=this.rowEndEditAction="next";if(this.alwaysShowEditors){this.editByCell=false;this.selectionType="none";this.selectOnEdit=false;if(this.canGroup!=false){this.logInfo("grouping functionality is not supported when alwaysShowEditors is true."+" Explicitly disabling this.canGroup","inactiveEditorHTML");this.canGroup=false}
 if(this.modalEditing){this.logInfo("modalEditing is not supported when alwaysShowEditors is true."+" Explicitly setting this.modalEditing to fales","inactiveEditorHTML");this.modalEditing=false}
 this.editEvent="click";if(!this.isEditable()){this.logInfo("alwaysShowEditors has been set for this grid but canEdit is unset and "+"no fields are explicitly marked as editable. Defaulting this.canEdit to true. "+"Note that to avoid this override developers can explicitly specify canEdit "+"at the grid or field level","inactiveEditorHTML");this.canEdit=true}}
 if(this.canExpandRecords||(this.fixedRecordHeights==false&&this.virtualScrolling==null))
-{this.fixedRecordHeights=false;this.virtualScrolling=true}
+{if(this.fixedRecordHeights)this.$82v=this.fixedRecordHeights;this.fixedRecordHeights=false;this.virtualScrolling=true}
 if(this.canAddFormulaFields&&isc.FormulaBuilder==null){this.logInfo("Required modules for adding formula fields not present - setting "+"canAddFormulaFields to false.");this.canAddFormulaFields=false}
 if(this.canAddSummaryFields&&isc.SummaryBuilder==null){this.logInfo("Required modules for adding summary fields not present - setting "+"canAddSummaryFields to false.");this.canAddSummaryFields=false}
 if(this.loadingMessage==null||this.loadingMessage==isc.emptyString)
@@ -6735,20 +6847,21 @@
 ,isc.A.getDefaultData=function isc_ListGrid_getDefaultData(){return[]}
 ,isc.A.$31i=function isc_ListGrid__setUpDragProperties(){this.canDrag=!this.canDragSelectText&&(this.canDrag||this.canDragRecordsOut||this.canReorderRecords||this.canDragSelect);this.canDrop=(this.canDrop||this.canDragRecordsOut||this.canReorderRecords);this.canAcceptDrop=(this.canAcceptDrop||this.canAcceptDroppedRecords||this.canReorderRecords)}
 ,isc.A.getEmptyMessage=function isc_ListGrid_getEmptyMessage(){if(isc.ResultSet&&isc.isA.ResultSet(this.data)&&!this.data.lengthIsKnown()){if(isc.Offline&&isc.Offline.isOffline()){return this.offlineMessage}
-return this.loadingDataMessage.evalDynamicString(this,{loadingImage:this.imgHTML(isc.Canvas.loadingImageSrc,isc.Canvas.loadingImageSize,isc.Canvas.loadingImageSize)})}
+return this.loadingDataMessage==null?"&nbsp;":this.loadingDataMessage.evalDynamicString(this,{loadingImage:this.imgHTML(isc.Canvas.loadingImageSrc,isc.Canvas.loadingImageSize,isc.Canvas.loadingImageSize)})}
 if(this.isOffline()){return this.offlineMessage}
-return this.emptyMessage.evalDynamicString(this,{loadingImage:this.imgHTML(isc.Canvas.loadingImageSrc,isc.Canvas.loadingImageSize,isc.Canvas.loadingImageSize)})}
+return this.emptyMessage==null?"&nbsp;":this.emptyMessage.evalDynamicString(this,{loadingImage:this.imgHTML(isc.Canvas.loadingImageSrc,isc.Canvas.loadingImageSize,isc.Canvas.loadingImageSize)})}
 ,isc.A.isEmpty=function isc_ListGrid_isEmpty(){if(!this.data)return true;if(!this.fields||this.fields.length==0)return true;if(isc.ResultSet&&isc.isA.ResultSet(this.data)){if(this.data.isPaged()){if(!this.data.isEmpty())return false;var _1=this.getAllEditRows();if(_1&&_1.length>0){for(var i=0;i<_1.length;i++){if(_1[i]>=0)return false}}
 return true}else{if(this.data.lengthIsKnown())return this.getTotalRows()<=0;else return true}}else{return(this.getTotalRows()<=0)}}
 ,isc.A.setData=function isc_ListGrid_setData(_1){if(this.data==_1)return;if(!this.preserveEditsOnSetData)this.discardAllEdits();this.clearLastHilite();if(this.data){this.$31j(this.data);if(this.data.$31k&&isc.isA.Function(this.data.destroy))
 this.data.destroy()}
-if(_1)this.data=_1;if(!this.data)return;this.$31m(this.data);this.regroup(true);if(!this.selection||(this.data!=this.selection.data)){this.createSelectionModel()}
+if(_1)this.data=_1;if(!this.data)return;this.$31m(this.data);this.regroup(true);this.calculateRecordSummaries(null,true);if(!this.selection||(this.data!=this.selection.data)){this.createSelectionModel()}
 if(this.preserveEditsOnSetData)this.$31n();var _2=isc.ResultSet&&isc.isA.ResultSet(this.data)&&!this.data.lengthIsKnown();if(!_2&&this.$686()&&!this.$30a){this.startEditing(null,null,true,null,true)}
 if(!this.data.setSort)
 this.canMultiSort=false;else if(this.getDataSource()&&this.canMultiSort!=false)
 this.canMultiSort=this.getDataSource().canMultiSort;var _3=this.getSort();if(_3)this.setSort(_3);if(isc.ResultSet&&isc.isA.ResultSet(this.data)&&this.body&&this.body.overflow=="visible")
 {this.body.showAllRows=false}
-if(this.summaryRow&&this.showGridSummary)this.summaryRow.recalculateSummaries();this.$74a=0;if(!this.canExpandMultipleRecords&&this.$74b)
+if(this.summaryRow&&this.showGridSummary){this.summaryRow.recalculateSummaries()}
+this.$74a=0;if(!this.canExpandMultipleRecords&&this.$74b)
 delete this.$74b;if(this.$75p){this.setSelectedState(this.$75p);delete this.$75p}
 this.updateFieldWidthsForAutoFitValue("setData called.");this.$25a("setData")}
 ,isc.A.getAutoFitExpandField=function isc_ListGrid_getAutoFitExpandField(){if(!this.autoFitFieldsFillViewport)return null;if(this.autoFitExpandField!=null){var _1=this.getField(this.autoFitExpandField);if(_1!=null&&this.fields&&this.fields.contains(_1)&&(!this.frozenFields||!this.frozenFields.contains(_1)))
@@ -6802,13 +6915,16 @@
 if(_8!=null){if(_2==null||_2<this.minFieldWidth)_2=this.minFieldWidth;if(_2!=null&&_8<_2)_8=_2}
 return _8}
 ,isc.A.setAutoFitWidth=function isc_ListGrid_setAutoFitWidth(_1,_2){var _3=this.getField(_1);if(_3==null)return;if(_3.autoFitWidth==_2)return;_3.autoFitWidth=_2;if(_2)this.autoFitField(_3)}
+,isc.A.setAutoFitFieldWidths=function isc_ListGrid_setAutoFitFieldWidths(_1,_2){if(_1==this.autoFitFieldWidths)return;this.autoFitFieldWidths=_1
+if(_1){this.$45m("autoFitFieldWidths enabled")}else if(!_2){if(this.showHeader&&this.headerHeight>0)this.updateHeader();this.fields.$775=false;this.$45m("autoFitFieldWidths disabled")}}
+,isc.A.setAutoFitWidthApproach=function isc_ListGrid_setAutoFitWidthApproach(_1){if(this.autoFitWidthApproach==_1)return;this.autoFitWidthApproach=_1;if(this.showHeader&&this.headerHeight>0)this.updateHeader();this.fields.$775=false;this.$45m("autoFitFieldWidthApproach changed")}
 ,isc.A.$25a=function isc_ListGrid__markBodyForRedraw(_1){if(this.bodies){this.bodies.map("markForRedraw",_1)}else{this.markForRedraw(_1)}}
 ,isc.A.redraw=function isc_ListGrid_redraw(_1,_2,_3,_4){if(this.body){if(this.body.$30e){this.$45m("scrollbar change during animation");delete this.body.$30e}}
 this.invokeSuper(isc.ListGrid,"redraw",_1,_2,_3,_4)}
 ,isc.A.$31m=function isc_ListGrid__observeData(_1){if(!this.isObserving(_1,"dataChanged")){this.observe(_1,"dataChanged","observer.dataChanged("+(isc.ResultSet&&isc.isA.ResultSet(_1)?"arguments[0],arguments[1],arguments[2],arguments[3],arguments[4])":")"))}
 if(!this.isObserving(_1,"dataArrived")){if(isc.ResultSet&&isc.isA.ResultSet(_1)){this.observe(_1,"dataArrived","observer.$66d(arguments[0],arguments[1])")}else if(isc.ResultTree&&isc.isA.ResultTree(_1)){this.observe(_1,"dataArrived","observer.$66d(arguments[0])")}}
 if(isc.isA.Tree(_1)){this.observe(_1,"changeDataVisibility","observer.$34u()")}}
-,isc.A.groupTreeChanged=function isc_ListGrid_groupTreeChanged(){if(this.$67i)return;if(!this.$31o)this.$31n();var _1=this.getTotalRows()-1;if(this.body){if(this.body.lastOverRow>_1)delete this.body.lastOverRow;if(this.body.$31p>_1)delete this.body.$31p}
+,isc.A.groupTreeChanged=function isc_ListGrid_groupTreeChanged(){if(this.$67i)return;if(!this.$31o&&!this.suppressEditRowRemap)this.$31n();var _1=this.getTotalRows()-1;if(this.body){if(this.body.lastOverRow>_1)delete this.body.lastOverRow;if(this.body.$31p>_1)delete this.body.$31p}
 if(this.$31q>_1)delete this.$31q;if(this.hilites)this.applyHilites();if(!this.$50w)this.$25a(this.$81l)}
 ,isc.A.$606=function isc_ListGrid__observeGroupData(_1){this.observe(_1,"dataChanged","observer.groupTreeChanged()");this.observe(_1,"changeDataVisibility","observer.$34u()")}
 ,isc.A.$34u=function isc_ListGrid__folderToggleObservation(){if(this.$34v){this.$31n();return}
@@ -6832,12 +6948,12 @@
 if(_4){var _8={};_8[_2.groupName]=_2.groupValue;_3.add(_8)}else{_3[_3.length]=_1.getPath(_2)}
 return true}
 ,isc.A.dataChanged=function isc_ListGrid_dataChanged(_1,_2,_3,_4,_5){if(isc.$cv)arguments.$cw=this;this.$67i=true;var _6=_5||_1=="add"||_1=="remove";if(!_6&&_1=="replace"){if(_2==null||_3==null)_6=true;else{var _7=_11.get(_3);if(_7==null)_6=true;else{for(var i=0;i<this.fields.length;i++){if(this.shouldAutoFitField(this.fields[i])){var _9=this.getFieldName(this.fields[i]);if(_7[_9]!=_4[_9]){_6=true;break}}}}}}
-this.calculateRecordSummaries();var _10=this.groupByField;if(_10!=null&&!this.$52y){if(_1=="add"||_1=="remove"||_1=="replace"||(_1=="update"&&(_2==null||_3==null)))
+this.calculateRecordSummaries(null,false);var _10=this.getGroupByFields();if(_10!=null&&!this.$52y){if(_1=="add"||_1=="remove"||_1=="replace"||(_1=="update"&&(_2==null||_3==null)))
 {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.body)this.body.finishRowAnimation();if(!this.$31o)this.$31n();this.$74c();if(this.$686()&&!this.$30a){this.startEditing(null,null,true,null,true)}
+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.$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.recalculateSummaries()}
 if(this.$75p){this.setSelectedState(this.$75p);delete this.$75p}
@@ -6858,44 +6974,55 @@
 _3.$31r=this.$30n}else if(_6=="date"){var _7=(this.canEdit==true&&_3.canEdit!=false)||(this.canEdit!=false&&_3.canEdit==true);_3.width=_3.width||(_7?100:80);_4=isc.Canvas.RIGHT;_3.$31r=this.$30m}else if(_6=="time"){_3.width=_3.width||80;_3.$31r=this.$30p;_4=isc.Canvas.RIGHT}else if(_5=="binary"||_5=="blob"||_5=="upload"||_5=="imageFile"){_3.$31r=this.$30q}else if(_5=="link"){_3.$31r=this.$30r}else if(_5=="icon"){if(_3.width==null&&_3.autoFitWidth==null){if(this.autoFitIconFields!="none"){_3.autoFitWidth=true;_3.autoFitWidthApproach=(this.autoFitIconFields=="title")?"both":"value"}}
 if(_3.width==null&&_3.autoFitWidth==null){if(this.autoFitIconFields!="none"){_3.autoFitWidth=true;_3.autoFitWidthApproach=(this.autoFitIconFields=="title")?"both":"value";_3.width=this.getDefaultFieldWidth(_3)}}
 _3.align=_3.align||"center";_3.$31r=this.$59e;_3.title=_3.title||"&nbsp;"}else if(_5=="boolean"||_5=="checkbox"){if(_3.canToggle==null)_3.canToggle=true}
-if(this.getGridSummaryFunction(_3)=="count"){if(_3.formatGridSummary==null){_3.formatGridSummary=function(_9){var _8=this.pluralTitle;if(_8==null)_8=this.title;if(_8!=null)_9+=" "+_8;return _9}}
-if(_3.formatGroupSummary==null){_3.formatGroupSummary=function(_9){var _8=this.pluralTitle;if(_8==null)_8=_3.title;if(_8!=null)_9+=" "+_8;return _9}}}
 if(_3.formatCellValue!=null&&!isc.isA.Function(_3.formatCellValue))
 isc.Func.replaceWithMethod(_3,"formatCellValue","value,record,rowNum,colNum,grid");if(this.showValueIconOnly(_3)){_4=isc.Canvas.CENTER;if(_3.width==null&&_3.autoFitWidth==null){if(this.autoFitIconFields!="none"){_3.autoFitWidth=true;_3.autoFitWidthApproach=(this.autoFitIconFields=="title")?"both":"value";_3.width=this.getDefaultFieldWidth(_3)}}}
-if(!_3.align)_3.align=_4}}
+if(!_3.align)_3.align=_4;if(_3.multiple&&_3.validateEachItem==null)_3.validateEachItem=true}}
 ,isc.A.$31s=function isc_ListGrid__formatBooleanFieldAsImages(_1){if(this.booleanTrueImage==null&&this.booleanFalseImage==null)return false;var _2=_1.type,_3=(_2!=null?isc.SimpleType.getBaseType(_2):null);if(_3!=this.$g2)return false;return(!_1.suppressValueIcons&&_1.showValueIconOnly==null&&_1.valueIcons==null&&_1.formatCellValue==null)}
 ,isc.A.setFieldProperties=function isc_ListGrid_setFieldProperties(_1,_2){var _3,_4=this.getAllFields();var _5=_1;if(isc.isA.Number(_1)){_3=this.getField(_1)}else{var _6=isc.Class.getArrayItemIndex(_1,_4,this.fieldIdProperty);_3=_4[_6];_1=this.getFieldNum(_3)}
 if(!_3)return;isc.addProperties(_3,_2);if(this.header!=null&&this.header.isDrawn()){var _7=this.getFieldHeader(_1),_8=_7.getMember(this.getLocalFieldNum(_1));if(_8)_8.setProperties(_2)}}
 ,isc.A.setFieldTitle=function isc_ListGrid_setFieldTitle(_1,_2){this.setFieldProperties(_1,{title:_2})}
 ,isc.A.setAutoComplete=function isc_ListGrid_setAutoComplete(_1){this.autoComplete=_1}
 ,isc.A.setFieldAutoComplete=function isc_ListGrid_setFieldAutoComplete(_1,_2){_1=this.getField(_1);if(_1)_1.autoComplete=_2}
-,isc.A.showField=function isc_ListGrid_showField(_1,_2){arguments.$cw=this;var _3=_1;_3=this.getSpecifiedField(_3);if(_3==null){this.logWarn("showField(): unable to find field object for field: "+_1+". Taking no action. Call setFields() to add new fields.")
-return}
-if(_3.showIf!=null)_3.showIf=null;var _4=this.completeFields!=null
-if(!_4||this.frozenFields||_3.frozen||this.$54d){this.setFields(this.completeFields||this.fields);this.fieldStateChanged();return}else{if(this.fields.contains(_3))return;this.deriveVisibleFields()}
-var _5=this.fields.indexOf(_3),_6=this.$60z();if(_6!=null&&_6>=_5){this.$600(_6+=1)}
-var _7=this.header;if(_7!=null){if(!_2)this.header.hPolicy="fill";this.header.addButtons([_3],_5)}
-if(this.body){if(this.getEditCol()!=null&&this.getEditCol()>=_5){this.$30u+=1}
-if(this.$30a&&!this.editByCell||this.getEditCol()==_5){var _8=this.getEditRow(),_9=this.getRecord(_8),_10=this.getEditedRecord(_8),_11=this.getEditFormItemFieldWidths(_9)[_5],_12=this.getEditItem(_3,_9,_10,_8,_5,_11);if(_12!=null){var _13;if(this.editByCell)_13=0;else{var _14=this.$286.getItems();for(var i=0;i<_14.length;i++){var _16=_14[i].colNum;if(_16>=_5){if(_13==null)_13=i;_14[i].colNum+=1}}}
-var _17=this.body.getDrawArea();if(this.editByCell||_5>=_17[2]&&_5<=_17[3])
-this.$286.addItems([_12],_13)}}
+,isc.A.showFields=function isc_ListGrid_showFields(_1,_2){return this.showField(_1,_2)}
+,isc.A.showField=function isc_ListGrid_showField(_1,_2){arguments.$cw=this;if(!isc.isAn.Array(_1)){_1=[_1]}
+var _3=true,_4=true;var _5=this.completeFields!=null,_6=(!_5||this.frozenFields||this.$54d);for(var i=0;i<_1.length;i++){var _8=_1[i],_9=_8;_9=this.getSpecifiedField(_9);if(_9==null){_1[i]=null;this.logWarn("showField(): unable to find field object for field: "+_8+". Taking no action. Call setFields() to add new fields.")
+continue}
+_3=false;if(_9.showIf!=null)_9.showIf=null;if(_9.frozen)_6=true;if(_6)continue;if(this.fields.contains(_9)){_1[i]=null;continue}
+_4=false;_1[i]=_9}
+if(_6){this.setFields(this.completeFields||this.fields);this.handleFieldStateChanged();return}
+if(_3||_4)return;this.deriveVisibleFields();_1.removeEmpty();var _10=[],_11=0;for(var i=0;i<this.fields.length;i++){var _12=_1.indexOf(this.fields[i]);if(_12!=-1){_10[_12]=i;_11++;if(_11==_1.length)break}}
+var _13=this.header;if(_13!=null){if(!_2)this.header.hPolicy="fill";this.header.addButtons(_1.duplicate(),_10)}
+if(this.body){if(this.$30a){var _14=this.getEditRow(),_15=this.getRecord(_14),_16=this.getEditedRecord(_14),_17=false,_18=this.getEditForm().items,_19=_18.length-1,_20=_18[_19],_21=_20.colNum;_10.sort();for(var i=_10.length-1;i>=0;i--){var _22=i+1,_23=_10[i],_24=(_23-i);if(!_17&&this.$30u>=_23){this.$30u+=_22}
+var _9=this.fields[_23],_25=this.getEditFormItemFieldWidths(_15)[_23],_26;while(_20!=null&&_21>=_24){_20.colNum+=_22;_19--;_20=(_19>=0)?_18[_19]:null;_21=(_20!=null)?_20.colNum:null}
+var _27=this.body.getDrawArea();if(!this.editByCell&&_23>=_27[2]&&_23<=_27[3]){_26=this.getEditItem(_9,_15,_16,_14,_23,_25)}
+if(_26!=null){this.$286.addItems([_26],_19+1)}}}
 this.body.fields=this.normalFields||this.fields;this.setBodyFieldWidths(this.getFieldWidths());this.$75n(this.body);if(this.body.isDrawn())this.body.redraw("show field")}
+if(this.sortField!=null){this.sortFieldNum=null;this.sortFieldNum=this.$60z()}
 if(this.filterEditor!=null)this.filterEditor.showField(_1,_2);if(this.summaryRow!=null&&this.showGridSummary){this.summaryRow.recalculateSummaries();this.summaryRow.showField(_1,_2)}
-this.markForRedraw("showField");this.fieldStateChanged()}
-,isc.A.hideField=function isc_ListGrid_hideField(_1,_2){arguments.$cw=this;var _3=_1;_3=this.getSpecifiedField(_3);if(_3==null){this.logWarn("hideField(): unable to find field object for field: "+_1+". Taking no action. To add this field use the setFields() method.")
-return}
-_3.showIf=this.$18r;if(!this.fields.contains(_3)){return}
-var _4=this.fields.indexOf(_3),_5=this.getFieldName(_4);if(this.completeFields==null||this.frozenFields){this.setFields(this.completeFields||this.fields);this.fieldStateChanged();return}
-var _6=this.$30a;if(_6){var _7=this.getEditRow(),_8=this.getEditCol();if(this.editByCell){if(_8==_4)this.cancelEditing(isc.ListGrid.PROGRAMMATIC);_6=false}else{var _9=this.getEditFormItem(_4);if(_9)_9.blurItem();this.clearEditValue(_7,_8,true);if(_8==_4){var _10=this.findNextEditCell(_7,_8,-1,true,false,false,true);if(_10==null||_10[0]!=_7){_10=this.findNextEditCell(_7,_8,1,true,false,false,true)}
-if(_10==null||_10[0]!=_7){this.cancelEditing(isc.ListGrid.PROGRAMMATIC);_6=false}else{this.$31u(_10[0],_10[1],!this.getEditForm().hasFocus)}}else if(this.getEditCol()>_4){this.$30u-=1}}}
-this.deriveVisibleFields();var _11=this.header;if(_11!=null){if(!_2)this.header.hPolicy="fill";var _12=this.header.getButton(_4);this.header.removeButtons([_12]);if(this.headerMenuButton&&this.headerMenuButton.masterElement==_12){this.headerMenuButton.depeer()}
-_12.destroy()}
-if(_6){var _13=this.$286,_14=_13.getItems();for(var i=_14.length-1;i>=0;i--){if(_14[i].colNum<=_4)break;_14[i].colNum-=1}}
+this.markForRedraw("showField");this.handleFieldStateChanged()}
+,isc.A.hideFields=function isc_ListGrid_hideFields(_1,_2){return this.hideField(_1,_2)}
+,isc.A.hideField=function isc_ListGrid_hideField(_1,_2){arguments.$cw=this;var _3=true,_4=true;if(!isc.isAn.Array(_1)){_1=[_1]}
+var _5=[];var _6=(this.completeFields==null||this.frozenFields);var _7=this.$30a,_8=_7?this.getEditRow():null,_9=_7?this.getEditCol():null,_10=false;for(var i=0;i<_1.length;i++){var _12=_1[i],_13=_12;_13=this.getSpecifiedField(_13);if(_13==null){this.logWarn("hideField(): unable to find field object for field: "+_12+". Taking no action. To add this field use the setFields() method.");_1[i]=null;continue}
+_3=false;_13.showIf=this.$18r;if(!this.fields.contains(_13)){_1[i]=null;continue}
+_4=false;if(_6)continue;var _14=this.fields.indexOf(_13),_15=this.getFieldName(_14);_5.add(_14);if(_7){if(_9==_14)_10=true;var _16=this.getEditFormItem(_15);if(_16&&_16.hasFocus)_16.blurItem();this.clearEditValue(_8,_14,true)}}
+if(_3||_4)return;if(_6){this.setFields(this.completeFields||this.fields);this.handleFieldStateChanged();return}
+_1.removeEmpty();if(_7){if(_10){if(this.editByCell){this.cancelEditing(isc.ListGrid.PROGRAMMATIC);_7=false}else{var _17=_9-1,_18=false;while(_17>=0){if(!_5.contains(_17)&&this.canEditCell(_8,_17)&&this.$60w(_8,_17))
+{_18=true;break}
+_17--}
+if(!_18){_17=_9+1;while(_17<this.fields.length){if(!_5.contains(_17)&&this.canEditCell(_8,_17)&&this.$60w(_8,_17))
+{_18=true;break}
+_17++}}
+if(!_18){this.cancelEditing(isc.ListGrid.PROGRAMMATIC);_7=false}else{this.$31u(_8,_17,!this.getEditForm().hasFocus)}}}}
+this.deriveVisibleFields();var _19=this.header;if(_19!=null){if(!_2)this.header.hPolicy="fill";var _20=[];for(var i=0;i<_5.length;i++){var _14=_5[i];var _21=this.header.getButton(_14);_20[_20.length]=_21;if(this.headerMenuButton&&this.headerMenuButton.masterElement==_21){this.headerMenuButton.depeer()}}
+this.header.removeButtons(_20.duplicate());_20.map("destroy")}
+var _22=[];if(_7){_5.sort();var _23=this.$286,_24=_23.getItems(),_25=_24.length-1,_26=_24[_25],_27=_26.colNum,_28=false;for(var i=_5.length-1;i>=0;i--){var _29=i+1,_30=_5[i];if(!_28&&this.$30u>_30){this.$30u-=_29;_28=true}
+while(_26!=null&&_27>=_30){if(_27==_30)_22.add(_26);else _26.colNum-=_29;_25--;_26=(_25>=0)?_24[_25]:null;_27=(_26!=null)?_26.colNum:null}}}
 if(this.body){this.body.fields=this.normalFields||this.fields;this.setBodyFieldWidths(this.getFieldWidths());this.$75n(this.body);if(this.body.isDrawn())this.body.redraw("hide field")}
-if(_6){if(!this.editByCell){var _16=this.$286.getItem(_5);if(_16!=null){this.$286.removeItems([_16])}}}
+if(_7&&_22.length>0){for(var i=0;i<_22.length;i++){var _26=_22[i];this.$286.removeItems([_26])}}
+if(this.sortField!=null){this.sortFieldNum=null;this.sortFieldNum=this.$60z()}
 if(this.filterEditor!=null)this.filterEditor.hideField(_1,_2);if(this.summaryRow&&this.showGridSummary){this.summaryRow.recalculateSummaries();this.summaryRow.hideField(_1,_2)}
-this.$74c();this.fieldStateChanged()}
-,isc.A.fieldIsVisible=function isc_ListGrid_fieldIsVisible(_1){var _2=_1;if(!isc.isAn.Object(_2))_2=this.getSpecifiedField(_1);return this.fields.contains(_2)}
+this.$74c();this.handleFieldStateChanged()}
+);isc.evalBoundary;isc.B.push(isc.A.fieldIsVisible=function isc_ListGrid_fieldIsVisible(_1){var _2=_1;if(!isc.isAn.Object(_2))_2=this.getSpecifiedField(_1);return this.fields.contains(_2)}
 ,isc.A.showActionInPanel=function isc_ListGrid_showActionInPanel(_1){if(_1.name=="editNew")return true;return this.Super("showActionInPanel",arguments)}
 ,isc.A.setFields=function isc_ListGrid_setFields(_1){if(isc.$cv)arguments.$cw=this;if(_1!=null&&this.fields!=null&&this.fields!=_1&&this.completeFields!=_1)
 {delete this.fields.$775}
@@ -6916,12 +7043,13 @@
 if(_23){this.$60v=true;this.canFreezeFields=true}else if(this.$60v){delete this.$60v;this.canFreezeFields=null}
 if(this.canSelectCells)this.selection.numCols=this.fields.length;if(_3){var _24=this.fields.indexOf(_3);if(_24==-1)_24=null;this.$600(_24)}
 if(this.showHeader&&this.headerHeight>0&&this.header!=null){this.updateHeader();if(this.body!=null){this.syncHeaderScrolling(this.body.getScrollLeft())}}
-this.updateBody();this.layoutChildren(this.$604);if(this.$52b!=null){var _25={};for(var i in this.$52b){if(this.$52b[i]==null)continue;var _27=this.$52b[i].$31x,_28=(this.dataSource!=null?this.getDataSource().getPrimaryKeyFieldNames():[]);for(var _29 in _27){if(!this.fields.containsProperty(this.fieldIdProperty,_29)&&!_28.contains(_29)){_25[_29]=true;this.clearEditValue(_27,_29,true)}}}
+this.updateBody();if(this.filterEditor&&this.filterEditor.completeFields){this.filterEditor.deriveVisibleFields();this.filterEditor.updateBody("setFields")}
+this.layoutChildren(this.$604);if(this.$52b!=null){var _25={};for(var i in this.$52b){if(this.$52b[i]==null)continue;var _27=this.$52b[i].$31x,_28=(this.dataSource!=null?this.getDataSource().getPrimaryKeyFieldNames():[]);for(var _29 in _27){if(!this.fields.containsProperty(this.fieldIdProperty,_29)&&!_28.contains(_29)){_25[_29]=true;this.clearEditValue(_27,_29,true)}}}
 _25=isc.getKeys(_25);if(_25.length>0){this.logInfo("'setFields()' removed the following fields which had pending edit "+"values for some row[s]: '"+_25.join("', '")+"'.\n"+"Edit values for these fields have been dropped.","gridEdit")}}
 if(_4){if(_19){this.showInlineEditor(_5,_18,false,false,true);if(_20)_7.$11b(_30)}else{this.$31u(_5,_18,!_20)}
 if(_20){var _30=this.getEditFieldName();if(_30==_8){_7.$11b(_30)}else{_7.focusInItem(_30)}}}
 if(this.$60z()!=null&&this.canSort)this.resort();if(this.filterEditor!=null)this.filterEditor.setFields(this.completeFields.duplicate());if(this.summaryRow&&this.showGridSummary){this.summaryRow.setFields(this.completeFields.duplicate());this.summaryRow.recalculateSummaries()}}
-);isc.evalBoundary;isc.B.push(isc.A.addField=function isc_ListGrid_addField(_1,_2){return this.Super("addField",[_1,_2,this.completeFields],arguments)}
+,isc.A.addField=function isc_ListGrid_addField(_1,_2){return this.Super("addField",[_1,_2,this.completeFields],arguments)}
 ,isc.A.removeField=function isc_ListGrid_removeField(_1){return this.Super("removeField",[_1,this.completeFields],arguments)}
 ,isc.A.shouldShowCheckboxField=function isc_ListGrid_shouldShowCheckboxField(){return(this.selectionAppearance==this.$12c&&this.selectionType!=this.$27r&&!isc.isA.TreeGrid(this))}
 ,isc.A.focusInFilterEditor=function isc_ListGrid_focusInFilterEditor(_1){if(this.filterEditor==null)return;var _2=_1!=null?this.getColNum(_1):null;this.filterEditor.startEditing(0,_2)}
@@ -6935,12 +7063,13 @@
 this.completeFields=this.$31y(this.fieldState);this.fieldState=null;return}
 _1=this.evalViewState(_1,"fieldState")
 if(_1){this.completeFields=this.$31y(_1);this.refreshFields()}}
+,isc.A.handleFieldStateChanged=function isc_ListGrid_handleFieldStateChanged(){this.fieldStateChanged();this.handleViewStateChanged()}
 ,isc.A.getCheckboxField=function isc_ListGrid_getCheckboxField(){var _1=this,_2={width:this.$63g+this.$65a(),getAutoFreezePosition:function(){return _1.getCheckboxFieldPosition()}};isc.addProperties(_2,this.checkboxFieldDefaults,this.checkboxFieldProperties);var _3=this.checkboxFieldFalseImage||this.booleanFalseImage;_2.title=(this.canSelectAll==false||this.selectionType=="single")?" ":this.getValueIconHTML(_3,_2);return _2}
 ,isc.A.getCurrentCheckboxField=function isc_ListGrid_getCurrentCheckboxField(){var _1=this.getFields();if(!_1)return null;var _2=_1.find(this.fieldIdProperty,"_checkboxField");return!_2?null:isc.isAn.Array(_2)?_2[0]:_2}
 ,isc.A.$65a=function isc_ListGrid__getCheckboxFieldImageWidth(){return this.checkboxFieldImageWidth||this.booleanImageWidth||(isc.CheckboxItem?isc.CheckboxItem.getInstanceProperty("valueIconWidth"):null)}
 ,isc.A.$65b=function isc_ListGrid__getCheckboxFieldImageHeight(){return this.checkboxFieldImageHeight||this.booleanImageHeight||(isc.CheckboxItem?isc.CheckboxItem.getInstanceProperty("valueIconWidth"):null)}
 ,isc.A.isCheckboxField=function isc_ListGrid_isCheckboxField(_1){if(!_1||!_1.$63f)return false;else return true}
-,isc.A.getCheckboxFieldPosition=function isc_ListGrid_getCheckboxFieldPosition(){if(this.selectionAppearance!="checkbox"||isc.isA.TreeGrid(this))return-1;return((this.showRowNumbers&&this.canExpandRecords)?2:(this.showRowNumbers||this.canExpandRecords)?1:0)}
+,isc.A.getCheckboxFieldPosition=function isc_ListGrid_getCheckboxFieldPosition(){if(this.selectionAppearance!="checkbox"||isc.isA.TreeGrid(this))return-1;var _1=0;if(this.showRowNumbers)_1+=1;if(this.showingGroupTitleColumn())_1+=1;if(this.canExpandRecords)_1+=1;return _1}
 ,isc.A.getSelectedState=function isc_ListGrid_getSelectedState(_1){if(!this.selection)return null;if(!this.dataSource||isc.isAn.emptyObject(this.getDataSource().getPrimaryKeyFields()))
 {if(!_1){this.logWarn("can't getSelectedState without a DataSource "+"with a primary key field set")}
 return null}
@@ -6953,12 +7082,21 @@
 var _1=this.$60z(),_2=(_1!=null?this.getField(_1):null),_3=_2!=null?this.getFieldName(_2):null,_4=_2&&_2.sortDirection!=null?_2.sortDirection:this.sortDirection,_5={fieldName:_3,sortDir:_4};if(this.$73p&&this.$73p.length>0){var _6=isc.shallowClone(this.$73p);_6.clearProperty("primarySort");_6.clearProperty("sortIndex");_6.clearProperty("normalizer");_6.clearProperty("context");_5.sortSpecifiers=_6}
 return"("+isc.Comm.serialize(_5,false)+")"}
 ,isc.A.setSortState=function isc_ListGrid_setSortState(_1){_1=this.evalViewState(_1,"sortState")
-if(!_1)return;if(_1.sortSpecifiers){this.setSort(isc.shallowClone(_1.sortSpecifiers))}else if(_1.fieldName==null){this.clearSort()}else{var _2=this.getFieldNum(_1.fieldName)
+if(!_1){this.clearSort();return}
+if(_1.sortSpecifiers){this.setSort(isc.shallowClone(_1.sortSpecifiers))}else if(_1.fieldName==null){this.clearSort()}else{var _2=this.getFieldNum(_1.fieldName)
 if(_2!=-1)this.sort(_2,_1.sortDir)}}
-,isc.A.getViewState=function isc_ListGrid_getViewState(_1){var _2={selected:this.getSelectedState(true),field:this.getFieldState(),sort:this.getSortState()};if(_1)return _2;return"("+isc.Comm.serialize(_2,false)+")"}
+,isc.A.getViewState=function isc_ListGrid_getViewState(_1){var _2={selected:this.getSelectedState(true),field:this.getFieldState(),sort:this.getSortState(),hilite:this.getHiliteState(),group:this.getGroupState()};if(_1)return _2;return"("+isc.Comm.serialize(_2,false)+")"}
+,isc.A.getGroupState=function isc_ListGrid_getGroupState(){var _1=this.getGroupByFields();if(_1==null)_1="";else _1=_1.join(",");return _1}
+,isc.A.setGroupState=function isc_ListGrid_setGroupState(_1){if(_1)this.groupBy(_1.split(","))}
 ,isc.A.setViewState=function isc_ListGrid_setViewState(_1){_1=this.evalViewState(_1,"viewState")
-if(!_1)return;if(_1.field)this.setFieldState(_1.field);if(_1.sort)this.setSortState(_1.sort);if(_1.selected)this.setSelectedState(_1.selected)}
-,isc.A.setDataSource=function isc_ListGrid_setDataSource(_1,_2){this.Super("setDataSource",arguments);this.clearFilterValues();this.discardAllEdits();if(!this.data.setSort){this.canMultiSort=false}else if(this.canMultiSort!=false){_1=this.getDataSource();this.canMultiSort=(_1&&_1.canMultiSort!=null?_1.canMultiSort:true)}}
+if(!_1)return;if(_1.field)this.setFieldState(_1.field);if(_1.sort)this.setSortState(_1.sort);if(_1.group)this.setGroupState(_1.group);if(_1.hilite)this.setHiliteState(_1.hilite);if(_1.selected)this.setSelectedState(_1.selected)}
+,isc.A.handleViewStateChanged=function isc_ListGrid_handleViewStateChanged(){this.fireOnPause("viewStateChangeNotification",{target:this,methodName:"viewStateChanged"},0)}
+,isc.A.getViewStateChangedFunction=function isc_ListGrid_getViewStateChangedFunction(){if(this.$84i==null){var _1=this;this.$84i=function(){if(_1.destroyed)return;_1.viewStateChanged()}}
+return this.$84i}
+,isc.A.viewStateChanged=function isc_ListGrid_viewStateChanged(){}
+,isc.A.setDataSource=function isc_ListGrid_setDataSource(_1,_2){var _3=this.getDataSource();if(_3!=null&&_3!=_1&&_3.ID!=_1){var _4=this.getGroupByFields();if(_4!=null&&_4.length>0&&_4[0]!=null&&this.originalData!=null)
+{this.ungroup()}}
+this.Super("setDataSource",arguments);this.clearFilterValues();this.discardAllEdits();if(!this.data.setSort){this.canMultiSort=false}else if(this.canMultiSort!=false){_1=this.getDataSource();this.canMultiSort=(_1&&_1.canMultiSort!=null?_1.canMultiSort:true)}}
 ,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)}}
@@ -6995,8 +7133,9 @@
 this.body.mozOutlineColor=this.mozBodyNoHeaderOutlineColor;this.body.mozOutlineOffset="-1px"}}
 if(this.showGridSummary&&(!this.summaryRow||this.summaryRow.masterElement!=this))
 this.showSummaryRow();this._useNativeTabIndex=false}
-,isc.A.layoutChildren=function isc_ListGrid_layoutChildren(_1,_2,_3){isc.Canvas.$b4.layoutChildren.call(this,_1,_2,_3);if(this.body!=null){this.$45m(_1,_2,_3);if(this.frozenBody){var _4=this.shrinkForFreeze&&this.body.hscrollOn;var _5=this.bodyLayout.getInnerHeight();if(_4)_5-=this.body.getScrollbarSize();this.frozenBody.setHeight(_5);this.frozenBody.$po=_5}}}
-,isc.A.$45m=function isc_ListGrid__updateFieldWidths(_1,_2,_3){if(this.body==null)return;this.$26a=null;if(this.fields&&!this.fields.$775){var _4=this.getAutoFitValueWidths(null,true);if(_4!=null){for(var i=0;i<this.fields.length;i++){if(_4[i]==null)continue;var _6=this.fields[i];var _7=_6.width||this.minFieldWidth;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()}}}
+,isc.A.layoutChildren=function isc_ListGrid_layoutChildren(_1,_2,_3){isc.Canvas.$b4.layoutChildren.call(this,_1,_2,_3);if(this.body!=null){this.$45m(_1,_2,_3);if(this.isDrawn()&&!this.body.isDrawn())this.body.draw();if(this.frozenBody){var _4=this.shrinkForFreeze&&this.body.hscrollOn;var _5=this.bodyLayout.getInnerHeight();if(_4)_5-=this.body.getScrollbarSize();this.frozenBody.setHeight(_5);if(this.frozenBody.$276())this.frozenBody.markForRedraw("height changed");this.frozenBody.$po=_5}}}
+,isc.A.$45m=function isc_ListGrid__updateFieldWidths(_1,_2,_3){if(this.body==null)return;this.$26a=null;if(this.fields&&!this.fields.$775){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()}}
@@ -7015,7 +7154,8 @@
 var _10=[];for(var i=0;i<this.fields.length;i++){if(_1.contains(this.fields[i])){_10[i]=this.getDefaultFieldWidth(this.fields[i])}}
 return _10}
 ,isc.A.getDefaultFieldWidth=function isc_ListGrid_getDefaultFieldWidth(_1){if(_1.type=="icon"){return(_1.iconWidth||_1.iconSize)+2*this.cellPadding+2*this.iconPadding}else if(this.showValueIconOnly(_1)){return this.getValueIconWidth(_1)+(2*this.cellPadding)+this.getValueIconRightPadding(_1)+this.getValueIconLeftPadding(_1)}
-var _2=this.getLocalFieldNum(this.getFieldNum(_1));if(_1.frozen){return this.frozenBody.getColumnAutoSize(_2)}else{return this.body.getColumnAutoSize(_2)}}
+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()}
@@ -7026,6 +7166,8 @@
 if(this.groupByField){var _2;if(isc.isA.Array(this.groupByField)){_2=this.groupByField}else{_2=[this.groupByField]}
 this.groupByField=null;this.groupBy(_2)}
 this.createChildren()}
+,isc.A.getGroupByFields=function isc_ListGrid_getGroupByFields(){var _1=this.groupByField;if(_1!=null&&!isc.isAn.Array(_1)){_1=[_1]}
+return _1}
 ,isc.A.destroy=function isc_ListGrid_destroy(_1){if(this._dragLine){this._dragLine.destroy();this._dragLine=null}
 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}}
@@ -7048,40 +7190,46 @@
 ,isc.A.getRawCellValue=function isc_ListGrid_getRawCellValue(_1,_2,_3,_4){var _5,_6,_7;if(_4){_6=_3
 _5=this.completeFields?isc.Class.getArrayItem(_6,this.completeFields,this.fieldIdProperty):this.getField(_6)}else{_5=this.fields[_3];_6=_5[this.fieldIdProperty]}
 _7=_5?_5.dataPath:null;if(_6==null&&_7==null)return this.emptyCellValue;var _8,_9,_10;if(this.rowEditNotComplete(_2)){_8=this.$30y(_2,_3)}
-if(_8!==_10){return _8}else{if(_1==null)return this.emptyCellValue;if(this.data.getFieldValue&&_5){_9=this.data.getFieldValue(_1,_6,_5)}else if(_1.ownerDocument&&_5){_9=isc.xml.getFieldValue(_1,_6,_5)}else{if(_7!=null){_9=isc.Canvas.$70o(_7,_1)}else{_9=_1[_6]}}}
+if(_8!==_10){return _8}else{if(_1==null)return this.emptyCellValue;if(this.data.getFieldValue&&_5){_9=this.data.getFieldValue(_1,_6,_5)}else if(_1.ownerDocument&&_5){_9=isc.xml.getFieldValue(_1,_6,_5)}else{if(_7!=null){_9=isc.Canvas.$70o(this.$840(_7),_1,this,true)}else{_9=_1[_6]}}}
 if(this.shouldShowRecordSummary(_5,_1)&&!this.shouldApplyRecordSummaryToRecord(_5))
 {_9=this.getRecordSummary(_2,_5)}
 if(_5&&_5.getRawCellValue){isc.Func.replaceWithMethod(_5,"getRawCellValue","viewer,record,recordNum,field,fieldNum,value");_9=_5.getRawCellValue(this,_1,_2,_5,_3,_9)}
 if(_5){if(_5.userFormula)_9=this.getFormulaFieldValue(_5,_1);if(_5.userSummary)this.getSummaryFunction(_5)}
 return _9}
+,isc.A.$840=function isc_ListGrid__trimDataPath(_1){var _2=_1.trim(isc.Canvas.$70l);if(!_2.contains(isc.Canvas.$70l))return _1;var _3=this.getFullDataPath().trim(isc.Canvas.$70l);if(_3==null||_3=="")return _2;var _4=_3.split(isc.Canvas.$70l);var _5=_2.split(isc.Canvas.$70l);for(var i=0;i<_4.length;i++){if(_4[i]!=_5[i]){break}}
+if(i==0)return _1;var _7="";for(var j=i;j<_5.length;j++){_7+=_5[j];if(j!=_4.length)_7+="/"}
+return _7}
 ,isc.A.shouldShowRecordSummary=function isc_ListGrid_shouldShowRecordSummary(_1,_2){if(_1&&_1.type==this.$71t){if(_2[this.groupSummaryRecordProperty]){return(_1.summaryFunction==null&&_1.getGroupSummary==null)}else if(_2[this.gridSummaryRecordProperty]){return(_1.summaryFunction==null&&_1.getGridSummary==null)}
 return true}
 return false}
 ,isc.A.getCellValue=function isc_ListGrid_getCellValue(_1,_2,_3,_4){if(_1==null){if(this.showNewRecordRow&&this.$299(_2)){return this.getNewRecordRowCellValue()}
-_1=this.$300(_2,_3)}else{if(_1[this.isSeparatorProperty])return this.$302;if(_1.$52e){if(this.groupTitleField&&this.fields[_3].name!=this.groupTitleField){return" "}else{return this.getGroupNodeHTML(_1,_4)}}}
-var _5=this.fields[_3],_6=null;if(_5==null)return"";if(this.isCheckboxField(_5)){var _7;if(!this.body.canSelectRecord(_1)){_7="[SKINIMG]/blank.gif"}else{var _8=this.selection.isSelected(_1)?true:false;_7=_8?(this.checkboxFieldTrueImage||this.booleanTrueImage):(this.checkboxFieldFalseImage||this.booleanFalseImage)}
-if(_1[this.recordEnabledProperty]==false){_7=_7.replace(".","_Disabled.")}
-var _9=this.getValueIconHTML(_7,_5);return _9}
-var _7,_10=this.showValueIconOnly(_5),_11;if(_1!=null){if(_1[this.singleCellValueProperty]!=null){return _1[this.singleCellValueProperty]}
+_1=this.$300(_2,_3)}else{if(_1[this.isSeparatorProperty])return this.$302;if(_1.$52e){var _5=this.fields[_3],_6=this.getGroupTitleField(),_7;if(_6==null){_7=_5.$84g}else{_7=_5.name==_6}
+if(this.singleCellGroupHeaders()||_7){return this.getGroupNodeHTML(_1,_4)}else if(!this.showGroupSummaryInHeader){return"&nbsp;"}}}
+var _8=this.fields[_3],_9=null;if(_8==null)return"";if(this.isCheckboxField(_8)){var _10;if(!this.body.canSelectRecord(_1)){_10="[SKINIMG]/blank.gif"}else{var _11=this.selection.isSelected(_1)?true:false;_10=_11?(this.checkboxFieldTrueImage||this.booleanTrueImage):(this.checkboxFieldFalseImage||this.booleanFalseImage)}
+if(_1[this.recordEnabledProperty]==false){_10=_10.replace(".","_Disabled.")}
+var _12=this.getValueIconHTML(_10,_8);return _12}
+var _10,_13=this.showValueIconOnly(_8),_14;if(_1!=null){if(_1[this.singleCellValueProperty]!=null){return _1[this.singleCellValueProperty]}
 if(Array.isLoading(_1)){if(!isc.Browser.isSafari||_3==0){return this.loadingMessage}
 return"&nbsp;"}
-_11=(this.$30a&&this.$285==_2&&(!this.editByCell||this.$30u==_3)&&this.canEditCell(_2,_3));if(_11){_6=this.getEditItemCellValue(_1,_2,_3)}else if(this.$68z(_3)&&this.canEditCell(_2,_3)){_6=this.getInactiveEditorCellValue(_1,_2,_3);_11=true}else{var _5=this.fields[_3],_12,_13;if(_5.displayField!=null){_13=!_5.valueMap&&!_5.getCellValue&&this.$425(_5);if(_13){var _14=_5.displayField;_12=this.getRawCellValue(_1,_2,_14,true)}}
-_6=this.getRawCellValue(_1,_2,_3);if(_5.getCellValue){isc.Func.replaceWithMethod(_5,"getCellValue","viewer,record,recordNum,field,fieldNum,value");_6=_5.getCellValue(this,_1,_2,_5,_3,_6)}
-_7=this.getValueIcon(_5,_6,_1,_2);if(!_10){var _15=_5.valueMap;if(_15){if(isc.isA.String(_15))_15=this.getGlobalReference(_15);if(!isc.isAn.Array(_15)){if(isc.isAn.Array(_6)){var _16=[];for(var i=0;i<_6.length;i++){var _18=isc.getValueForKey(_6[i],_15,_6[i]);_16[_16.length]=_18}
-_6=_16}else{_6=isc.getValueForKey(_6,_15)}}}}
-if(_13)_6=_12}}
-if(!_11){var _19=null;if(_7!=null){_19=this.getValueIconHTML(_7,_5)}
-if(_10){if(!_19||isc.isAn.emptyString(_19))_19=this.emptyCellValue;_6=_19}else{_6=this.$315(_6,_1,_5,_2,_3);var _20=this.getFieldHilites(_1,_5);if(_20)_6=this.applyHiliteHTML(_20,_6);if(_19){if(_5.valueIconOrientation!=isc.Canvas.RIGHT)
-_6=_19+_6;else
-_6=_6+_19}}
-if(this.isEditable()&&this.showErrorIcons&&this.cellHasErrors(_2,_3)){_6=this.getErrorIconHTML(_2,_3)+_6}}
-if(this.groupTitleField&&this.fields[_3].name==this.groupTitleField){var _21=isc.Canvas.spacerHTML(this.groupIndentSize+this.groupLeadingIndent,1);_6=_21+_6}
-return _6}
+_14=(this.$30a&&this.$285==_2&&(!this.editByCell||this.$30u==_3)&&this.canEditCell(_2,_3));if(_14){_9=this.getEditItemCellValue(_1,_2,_3)}else if(this.$68z(_3)&&this.canEditCell(_2,_3)){_9=this.getInactiveEditorCellValue(_1,_2,_3);_14=true}else{var _8=this.fields[_3],_15,_16;if(_8.displayField!=null){_16=!_8.valueMap&&!_8.getCellValue&&this.$425(_8);if(_16){var _17=_8.displayField;_15=this.getRawCellValue(_1,_2,_17,true)}}
+_9=this.getRawCellValue(_1,_2,_3);if(_8.getCellValue){isc.Func.replaceWithMethod(_8,"getCellValue","viewer,record,recordNum,field,fieldNum,value");_9=_8.getCellValue(this,_1,_2,_8,_3,_9)}
+_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(_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}}
+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)}
 return _3}
 ,isc.A.getRawValue=function isc_ListGrid_getRawValue(_1,_2){var _3=this.getRecordIndex(_1),_4=this.getSpecifiedField(_2);if(_3<0)return _1[_2];if(_1[_4[this.fieldIdProperty]]!=null)return _1[_4[this.fieldIdProperty]];else return this.getRawCellValue(_1,_3,_2,true)}
 ,isc.A.getFormattedValue=function isc_ListGrid_getFormattedValue(_1,_2,_3){var _4=this.getRecordIndex(_1),_5=this.getSpecifiedField(_2),_6=this.getFieldNum(_2);if(_4<0)return _3==null?_1[_2]:_3;if(this.fieldIsVisible(_5)&&_3==null)
-return this.getCellValue(_1,_4,_6,this.body);if(_3==null)_3=this.getRawValue(_1,_2);var _7=this.$315(_3,_1,_5,_4,_6);return _7}
+return this.getCellValue(_1,_4,_6,this.body);if(_3==null)_3=this.getRawValue(_1,_2);var _7=_5?_5.valueMap:null;if(_7){if(isc.isA.String(_7))_7=this.getGlobalReference(_7);if(!isc.isAn.Array(_7)){if(isc.isAn.Array(_3)){var _8=[];for(var i=0;i<_3.length;i++){var _10=isc.getValueForKey(_3[i],_7,_3[i]);_8[_8.length]=_10}
+_3=_8}else{_3=isc.getValueForKey(_3,_7)}}}
+var _11=this.$315(_3,_1,_5,_4,_6);return _11}
 ,isc.A.getSpecifiedFieldWidth=function isc_ListGrid_getSpecifiedFieldWidth(_1){_1=this.getField(_1);var _2=_1[this.fieldIdProperty],_3=this.header?this.header.members:null,_4=this.frozenFields&&this.frozenHeader?this.frozenHeader.members:null,_5;if(_3||_4){var _6;if(_3)_6=_3.find(this.fieldIdProperty,_2);if(!_6&&_4){_6=_4.find(this.fieldIdProperty,_2)}
 if(_6&&_6.$pn&&isc.isA.Number(_6.$pn)){_5=_6.$pn}}
 return _5}
@@ -7098,7 +7246,7 @@
 var _7=_1.valueIcons[_2];return _7}
 ,isc.A.getValueIconLeftPadding=function isc_ListGrid_getValueIconLeftPadding(_1){return(_1&&_1.valueIconLeftPadding!=null?_1.valueIconLeftPadding:this.valueIconLeftPadding||0)}
 ,isc.A.getValueIconRightPadding=function isc_ListGrid_getValueIconRightPadding(_1){return(_1&&_1.valueIconRightPadding!=null?_1.valueIconRightPadding:this.valueIconRightPadding||0)}
-,isc.A.showValueIconOnly=function isc_ListGrid_showValueIconOnly(_1){if(_1.showValueIconOnly!=null)return _1.showValueIconOnly;if(_1.valueIcons!=null&&_1.valueMap!=null)return true;return this.$31s(_1)}
+);isc.evalBoundary;isc.B.push(isc.A.showValueIconOnly=function isc_ListGrid_showValueIconOnly(_1){if(_1.showValueIconOnly!=null)return _1.showValueIconOnly;if(_1.valueIcons!=null&&_1.valueMap!=null)return true;return this.$31s(_1)}
 ,isc.A.getValueIconWidth=function isc_ListGrid_getValueIconWidth(_1){if(this.isCheckboxField(_1))return this.$65a();if(this.$31s(_1))return this.booleanImageWidth;return(_1.valueIconWidth!=null?_1.valueIconWidth:(_1.valueIconSize!=null?_1.valueIconSize:(this.valueIconWidth!=null?this.valueIconWidth:this.valueIconSize)))}
 ,isc.A.getValueIconHeight=function isc_ListGrid_getValueIconHeight(_1){if(this.isCheckboxField(_1))return this.$65b();if(this.isExpansionField(_1))return this.$72z();if(this.$31s(_1))return this.booleanImageHeight;return(_1.valueIconHeight!=null?_1.valueIconHeight:(_1.valueIconSize!=null?_1.valueIconSize:(this.valueIconHeight!=null?this.valueIconHeight:this.valueIconSize)))}
 ,isc.A.$299=function isc_ListGrid__isNewRecordRow(_1){return this.showNewRecordRow&&(_1==this.getTotalRows()-1)}
@@ -7112,6 +7260,7 @@
 if(_3.userSummary){_1=this.getSummaryFieldValue(_3,_2)}
 if(_1==null||isc.is.emptyString(_1)){if(_3.emptyCellValue!=null){_1=_3.emptyCellValue}else if(_3.type=="summary"){_1=this.invalidSummaryValue}else{_1=this.emptyCellValue}}else if(this.$54y[_1]==true){_1=this.$54t}else if(!isc.isA.String(_1)){_1=isc.iscToLocaleString(_1)}
 if(this.formatDisplayValue){_1=this.formatDisplayValue(_1,_2,_4,_5)}
+if(_3&&_3.escapeHTML){if(isc.isA.String(_1)&&_1!=this.$54t){_1=_1.asHTML()}}
 return _1}
 ,isc.A.getEditItemCellValue=function isc_ListGrid_getEditItemCellValue(_1,_2,_3){var _4=this.getEditorName(_2,_3);if(!this.$286||!this.$286.getItem(_4)){return"&nbsp;"}
 var _5=this.getCellErrors(_2,_3);if(_5){this.$286.setFieldErrors(_4,_5)}
@@ -7124,7 +7273,7 @@
 this.$69m[_10]=_9}
 return _8}
 ,isc.A.shouldShowEditorPlaceholder=function isc_ListGrid_shouldShowEditorPlaceholder(_1,_2){if(_1.showEditorPlaceholder!=null)return _1.showEditorPlaceholder;return!this.$687[_2]}
-);isc.evalBoundary;isc.B.push(isc.A.getEditorPlaceholderHTML=function isc_ListGrid_getEditorPlaceholderHTML(_1,_2,_3,_4,_5){return _2}
+,isc.A.getEditorPlaceholderHTML=function isc_ListGrid_getEditorPlaceholderHTML(_1,_2,_3,_4,_5){return _2}
 ,isc.A.$30b=function isc_ListGrid__editItemsDrawingNotification(_1,_2,_3){var _4;if(_1)_4=[_1];else{_4=[];var _5=this.$286.getItems();for(var i=0;i<_5.length;i++){if(_5[i].containerWidget==_3)_4.add(_5[i])}}
 var _7=_3.$316;for(var i=0;i<_4.length;i++){var _8=_4[i],_9=_8.isDrawn(),_10=_7?_7.contains(_8):false,_11=isc.CanvasItem&&isc.isA.CanvasItem(_8);if(_9){if(_10){_8.redrawn();if(_2)_8.moved()}
 else{_8.cleared()}}else if(_10){if(_11)_8.placeCanvas();_8.drawn()}}
@@ -7183,6 +7332,12 @@
 return _5}
 ,isc.A.invalidateRecordComponents=function isc_ListGrid_invalidateRecordComponents(){this.dropRecordComponents(true);if(this.showRecordComponents&&this.isDrawn()){this.updateRecordComponents()}}
 ,isc.A.dropRecordComponents=function isc_ListGrid_dropRecordComponents(_1){this.$81o++;var _2=this.$81s||[];delete this.$81s;delete this.$81t;for(var i=0;i<_2.length;i++){this.$81w(_2[i],_1)}}
+,isc.A.refreshRecordComponent=function isc_ListGrid_refreshRecordComponent(_1,_2){if(!this.showRecordComponents||_1==null||this.body==null)return;if(this.showRecordComponentsByCell&&_2==null){this.logWarn("refreshRecordComponent() called with no colNum. This parameter is required when "+"showRecordComponentsByCell is true. Taking no action.");return}
+var _3=this.getRecord(_1);if(_3==null||Array.isLoading(_3))return;var _4=this.body,_5=null,_6=null;if(this.showRecordComponentsByCell){_4=this.getFieldBody(_2);_5=this.getLocalFieldNum(_2);_6=this.getFieldName(_2)}
+var _7=this.$81u(_3,_6,_4.getID());if(_7!=null&&_7.isNullMarker)_7=null;if(_7!=null){this.$81w(_7,(this.recordComponentPoolingMode!="recycle"))}
+var _8;if(this.shouldShowRecordComponent(_3)){_8=this.$81v(_3,_6,_4,_1,_5);if(_8&&_8.isNullMarker)_8=null}
+var _9=this.$81s.length;if(_7){var _10=_7.getID();this.$81t[_7.getID()]=null;if(_8!=null){_9=this.$81s.indexOf(_7);this.$81s[_9]=null}else{this.$81s.remove(_7)}}
+if(_8!=null){var _10=_8.getID();this.$81t[_10]=true;this.$81s[_9]=_8}}
 ,isc.A.getRecordComponentPosition=function isc_ListGrid_getRecordComponentPosition(){if(this.recordComponentPosition!=null)return this.recordComponentPosition;return(this.showRecordComponentsByCell?"within":"expand")}
 ,isc.A.getRecordComponentPool=function isc_ListGrid_getRecordComponentPool(){if(!this.$74m)this.$74m=[];return this.$74m}
 ,isc.A.getFromRecordComponentPool=function isc_ListGrid_getFromRecordComponentPool(_1,_2){var _3=this.getRecordComponentPool(),_4=[],_5;if(!_3||_3.length==0)return null;if(this.poolComponentsPerColumn==true){_4=_3.findAll("currentFieldName",_2)}else{_4=_3}
@@ -7236,15 +7391,16 @@
 var _10=isc.Canvas.applyStretchResizePolicy(this.fields.getProperty("width"),_4.width||isc.Page.getWidth());return _3.getTablePrintHTML({startRow:_5,endRow:_6,callback:_2,printWidths:_10,printProps:_4})}
 ,isc.A.$569=function isc_ListGrid__prepareForPrinting(_1,_2){this.isPrinting=this.body.isPrinting=true;this.currentPrintProperties=_2;var _3=this.body,_4=this.$30a;var _5=isc.getProperties(_3,["autoFit","wrapCells","showAllRows","showAllColumns","fixedRowHeights","$26a","fields"]);_3.showAllRows=true;_3.showAllColumns=true;this.$30a=false;_3.autoFit=this.printAutoFit;_3.wrapCells=this.printWrapCells;_3.fixedRowHeights=!this.printWrapCells;var _6=this.fields.duplicate();_6.removeAll(_6.findAll("shouldPrint",false));_3.fields=_6;var _7=this.frozenFields;delete this.frozenFields;_3.$26a=_1;return{oldEditorShowing:_4,oldFrozenFields:_7,origProps:_5}}
 ,isc.A.$57a=function isc_ListGrid__donePrinting(_1){var _2=this.body,_3=_1.origProps,_4=_1.oldEditorShowing;isc.addProperties(_2,_3);if(_3.showAllRows==null)_2.showAllRows=null;this.$30a=_4;this.frozenFields=_1.oldFrozenFields;delete this.currentPrintProperties;this.isPrinting=this.body.isPrinting=false;this.body.redraw()}
-,isc.A.rowClick=function isc_ListGrid_rowClick(_1,_2,_3,_4){this.$31q=_2;var _1=this.getCellRecord(_2,_3),_5=this.fields[_3];if(Array.isLoading(_1))return;var _6=this.getCellValue(_1,_2,_3);var _7=this.getRawCellValue(_1,_2,_3);if(_1!=null&&_1.$52e){if(this.canCollapseGroup==false)return;var _8=this,_9=_1;if(this.getEditRow()!=null)this.saveAllEdits(null,function(){_8.toggleFolder(_9)});else this.toggleFolder(_1);return}
-if(_5.recordClick&&!(_4&&_5.keyboardFiresRecordClick==false)){isc.Func.replaceWithMethod(_5,"recordClick","viewer,record,recordNum,field,fieldNum,value,rawValue");var _10=_5.recordClick(this,_1,_2,_5,_3,_6,_7);if(_10==false)return false}
-if(this.recordClick){var _10=this.recordClick(this,_1,_2,_5,_3,_6,_7);if(_10==false)return false}
-var _11=this.isEditable()&&(this.editEvent==isc.EH.CLICK||this.editOnFocus);if(_5.canToggle&&this.canEditCell(_2,_3)&&this.shouldToggle(_5)){var _12=this.getEditorValueMap(_5,this.getEditedRecord(_2,_3));if(_12==null&&isc.SimpleType.getBaseType(_5.type)==this.$g2){_12=[true,false]}
-if(_12!=null){if(!isc.isAn.Array(_12))_12=isc.getKeys(_12);if(_12.length>1){var _13=this.getFieldName(_3),_14=this.getEditedCell(_2,_3),_15=_12.indexOf(_14);_15+=1;if(_15>=_12.length)_15=0;var _16=_14;_14=_12[_15];var _17;if(_5.change!=null){this.logInfo("canToggle firing specified field.change() event directly");_17=this.fireCallback(_5.change,"form,item,value,oldValue",[null,null,_14,_16])==false}
-if(!_17){if(!_11&&this.autoSaveEdits){this.setEditValue(_2,_3,_14,true,false)}else{this.setEditValue(_2,_3,_14)}
-if(_5.changed!=null){this.logInfo("canToggle firing specified field.changed() event directly");this.fireCallback(_5.changed,"form,item,value",[null,null,_14])}
+,isc.A.rowClick=function isc_ListGrid_rowClick(_1,_2,_3,_4){this.$31q=_2;var _1=this.getCellRecord(_2,_3),_5=this.fields[_3];if(Array.isLoading(_1))return;var _6=this.getCellValue(_1,_2,_3);var _7=this.getRawCellValue(_1,_2,_3);if(_1!=null&&_1.$52e){if(this.canCollapseGroup==false)return;if(_4){var _8=isc.EH.getKey();if(_8!="Space"&&_8!="Enter")return}
+var _9=this,_10=_1;if(this.getEditRow()!=null)this.saveAllEdits(null,function(){_9.toggleFolder(_10)});else this.toggleFolder(_1);return}
+if(_5.recordClick&&!(_4&&_5.keyboardFiresRecordClick==false)){isc.Func.replaceWithMethod(_5,"recordClick","viewer,record,recordNum,field,fieldNum,value,rawValue");var _11=_5.recordClick(this,_1,_2,_5,_3,_6,_7);if(_11==false)return false}
+if(this.recordClick){var _11=this.recordClick(this,_1,_2,_5,_3,_6,_7);if(_11==false)return false}
+var _12=this.isEditable()&&(this.editEvent==isc.EH.CLICK||this.editOnFocus);if(_5.canToggle&&this.canEditCell(_2,_3)&&this.shouldToggle(_5)){var _13=this.getEditorValueMap(_5,this.getEditedRecord(_2,_3));if(_13==null&&isc.SimpleType.getBaseType(_5.type)==this.$g2){_13=[true,false]}
+if(_13!=null){if(!isc.isAn.Array(_13))_13=isc.getKeys(_13);if(_13.length>1){var _14=this.getFieldName(_3),_15=this.getEditedCell(_2,_3),_16=_13.indexOf(_15);_16+=1;if(_16>=_13.length)_16=0;var _17=_15;_15=_13[_16];var _18;if(_5.change!=null){this.logInfo("canToggle firing specified field.change() event directly");_18=this.fireCallback(_5.change,"form,item,value,oldValue",[null,null,_15,_17])==false}
+if(!_18){if(!_12&&this.autoSaveEdits){this.setEditValue(_2,_3,_15,true,false)}else{this.setEditValue(_2,_3,_15)}
+if(_5.changed!=null){this.logInfo("canToggle firing specified field.changed() event directly");this.fireCallback(_5.changed,"form,item,value",[null,null,_15])}
 if(this.autoSaveEdits)this.saveEdits(null,null,_2,_3)}}}}
-if(_11){if(this.handleEditCellEvent(_2,_3,isc.ListGrid.CLICK)==true){return true}
+if(_12){if(this.handleEditCellEvent(_2,_3,isc.ListGrid.CLICK)==true){return true}
 if(_4){for(var i=0;i<this.fields.length;i++){if(i==_3)continue;if(this.handleEditCellEvent(_2,i,isc.ListGrid.CLICK)==true){return true}}}}}
 ,isc.A.shouldToggle=function isc_ListGrid_shouldToggle(_1){if(!this.$31s(_1))return true;var _2=this.getEventPart();return(_2&&_2.part=="valueicon")}
 ,isc.A.rowDoubleClick=function isc_ListGrid_rowDoubleClick(_1,_2,_3,_4){var _5=this.fields[_3],_6=this.getCellValue(_1,_2,_3),_7=this.getRawCellValue(_1,_2,_3);if(_1!=null&&_1.$52e)return;if(_5.recordDoubleClick){isc.Func.replaceWithMethod(_5,"recordDoubleClick","viewer,record,recordNum,field,fieldNum,value,rawValue");var _8=_5.recordDoubleClick(this,_1,_2,_5,_3,_6,_7);if(_8==false)return _8}
@@ -7262,21 +7418,34 @@
 return null}
 ,isc.A.getCanHover=function isc_ListGrid_getCanHover(){if(this.canHover!=null)return this.canHover;var _1=this.getFields();if(_1!=null){for(var i=0;i<_1.length;i++){if(_1[i].showHover)return true}}
 return this.canHover}
-,isc.A.cellHoverHTML=function isc_ListGrid_cellHoverHTML(_1,_2,_3){if(this.$30a&&this.getEditRow()==_2&&(!this.editByCell||this.getEditCol()==_3))return null;var _4=this.getField(_3);if(_4.showHover==false)return null;if(_4.showHover==null&&!this.canHover)return null;var _5=this.getCellValue(_1,_2,_3);if(_4.hoverHTML){isc.Func.replaceWithMethod(_4,"hoverHTML","record,value,rowNum,colNum,grid");return _4.hoverHTML(_1,_5,_2,_3,this)}
+,isc.A.cellHoverHTML=function isc_ListGrid_cellHoverHTML(_1,_2,_3){if(this.$30a&&this.getEditRow()==_2&&this.canEditCell(_2,_3)&&(!this.editByCell||this.getEditCol()==_3)){this.logWarn("killing it for:"+[_2,_3]);return null}
+var _4=this.getField(_3);if(_4.showHover==false)return null;if(_4.showHover==null&&!this.canHover)return null;var _5=this.getCellValue(_1,_2,_3);if(_4.hoverHTML){isc.Func.replaceWithMethod(_4,"hoverHTML","record,value,rowNum,colNum,grid");return _4.hoverHTML(_1,_5,_2,_3,this)}
 if(_5!=null&&!isc.isAn.emptyString(_5)&&_5!=this.emptyCellValue){return _5}}
 ,isc.A.$784=function isc_ListGrid__getCellHoverComponent(_1,_2,_3){if(!this.showHoverComponents)return null;if(this.$30a&&this.getEditRow()==_2&&(!this.editByCell||this.getEditCol()==_3))return null;var _4=this.getField(_3);if(_4.showHover==false)return null;if(_4.showHover==null&&!this.canHover)return null;if(this.getCellHoverComponent&&isc.isA.Function(this.getCellHoverComponent)){return this.getCellHoverComponent(_1,_2,_3)}else return null}
-,isc.A.getCellHoverComponent=function isc_ListGrid_getCellHoverComponent(_1,_2,_3){var _4=this.getFields(),_5=this.dataSource?isc.getValues(this.getDataSource().getFields()):_4,_6=this.hoverWidth||this.hoverSize||this.defaultCellHoverComponentWidth,_7=this.hoverHeight||this.hoverSize||this.defaultCellHoverComponentHeight,_8=[],_9;for(var i=0;i<_5.length;i++){var _11=_5.get(i);if(this.dataSource){if(!_4.find("name",_11.name)){_8.add(_11)}}else{if(!this.isExpansionField(_11)){_8.add(_11)}}}
-if(this.hoverMode=="detailField"){_9=this.createAutoChild("expansionDetailField",{contents:_1[this.detailField]});_9=isc.VLayout.create({width:_6,height:_7,overflow:"auto",members:[_9],hoverAutoDestroy:this.hoverAutoDestroy})}else if(this.hoverMode=="details"){_9=this.createAutoChild("expansionDetails",{dataSource:this.dataSource,fields:_8,width:_6,height:_7,hoverAutoDestroy:this.hoverAutoDestroy});_9.setData(_1)}else if(this.hoverMode=="related"){_9=this.createAutoChild("expansionRelated",{dataSource:this.getRelatedDataSource(_1),canEdit:false,width:_6,height:_7,dataProperties:{context:{showPrompt:false}},hoverAutoDestroy:this.hoverAutoDestroy});_9.fetchRelatedData(_1,this.dataSource)}else if(this.hoverMode=="detailRelated"){var _12=this.createAutoChild("expansionDetails",{dataSource:this.dataSource,fields:_8,dataProperties:{context:{showPrompt:false}},hoverAutoDestroy:this.hoverAutoDestroy});_12.setData(_1);var _13=this.createAutoChild("expansionRelated",{dataSource:this.getRelatedDataSource(_1),canEdit:false,height:"100%",dataProperties:{context:{showPrompt:false}},hoverAutoDestroy:this.hoverAutoDestroy});_9=this.createAutoChild("expansionDetailRelated",{members:[_12,_13],width:_6,height:_7,hoverAutoDestroy:this.hoverAutoDestroy})}
-return _9}
-,isc.A.selectAllRecords=function isc_ListGrid_selectAllRecords(){this.$67j=true;this.selection.selectAll();this.$67j=null;this.$25a("select all")}
-,isc.A.deselectAllRecords=function isc_ListGrid_deselectAllRecords(){this.$67j=true;this.selection.deselectAll();this.$67j=null;this.$25a("deselect all")}
-,isc.A.bodyKeyPress=function isc_ListGrid_bodyKeyPress(_1,_2){if(this.data.getLength()>0){var _3=isc.EventHandler,_4=_1.keyName;var _5=this.editOnKeyPress&&this.isEditable();if(_5&&this.$51j(_1,_2))return false;if(_4==this.$20s){return this.$318(-1)}else if(_4==this.$20t){return this.$318(1)}else if(_4==this.$304){if(this.generateClickOnSpace)
+,isc.A.getCellHoverComponent=function isc_ListGrid_getCellHoverComponent(_1,_2,_3){return this.$84d(_1,false,true,_2,_3)}
+,isc.A.$84d=function isc_ListGrid__getStockEmbeddedComponent(_1,_2,_3,_4,_5){var _6=this.getFields(),_7=this.dataSource?isc.getValues(this.getDataSource().getFields()):_6,_8=(!_3?null:this.hoverWidth||this.hoverSize||this.defaultCellHoverComponentWidth),_9=(!_3?null:this.hoverHeight||this.hoverSize||this.defaultCellHoverComponentHeight),_10=[],_11;for(var i=0;i<_7.length;i++){var _13=_7.get(i);if(this.dataSource){if(!_6.find("name",_13.name)){_10.add(_13)}}else{if(!this.isExpansionField(_13)){_10.add(_13)}}}
+var _14=(_3?this.hoverMode:(_2?this.expansionMode:null));var _15;if(_14=="detailField"){_11=this.createAutoChild("expansionDetailField",{contents:_1[this.detailField]});_15={width:(_3?_8:"100%"),height:(_3?_9:"100%"),members:[_11]};if(_3){_15=isc.addProperties(_15,{hoverAutoDestroy:this.hoverAutoDestroy,overflow:"auto"})}
+_11=isc.VLayout.create(_15)}else if(_14=="details"){_15={dataSource:this.dataSource,fields:_10};if(_3){_15=isc.addProperties(_15,{width:_8,height:_9,hoverAutoDestroy:this.hoverAutoDestroy})}
+_11=this.createAutoChild("expansionDetails",_15);_11.setData(_1)}else if(_14=="related"){_15={dataSource:this.getRelatedDataSource(_1)};if(_3){_15=isc.addProperties(_15,{canEdit:false,width:_8,height:_9,dataProperties:{context:{showPrompt:false}},hoverAutoDestroy:this.hoverAutoDestroy})}
+if(_2){_15=isc.addProperties(_15,{canExpandRecords:this.childExpansionMode?true:false,expansionMode:this.childExpansionMode,canEdit:this.expansionCanEdit})}
+_11=this.createAutoChild("expansionRelated",_15);if(this.expansionCanEdit)_11.autoSaveEdits=true;_11.delayCall("fetchRelatedData",[_1,this.dataSource])}else if(_14=="detailRelated"){_15={dataSource:this.dataSource,fields:_10};if(_3){_15=isc.addProperties(_15,{dataProperties:{context:{showPrompt:false}},hoverAutoDestroy:this.hoverAutoDestroy})}
+var _16=this.createAutoChild("expansionDetails",_15)
+_16.setData(_1);_15={dataSource:this.getRelatedDataSource(_1),height:"100%",canEdit:(_3?false:(_2?this.expansionCanEdit:null))};if(_3){_15=isc.addProperties(_15,{dataProperties:{context:{showPrompt:false}},hoverAutoDestroy:this.hoverAutoDestroy})}
+if(_2){_15=isc.addProperties(_15,{canExpandRecords:this.childExpansionMode?true:false,expansionMode:this.childExpansionMode})}
+var _17=this.createAutoChild("expansionRelated",_15);_15={members:[_16,_17]};if(_3){_15=isc.addProperties(_15,{width:_8,height:_9,hoverAutoDestroy:this.hoverAutoDestroy})}
+_11=this.createAutoChild("expansionDetailRelated",_15)}else if(_14=="editor"){_11=this.createAutoChild("expansionEditor",{dataSource:this.dataSource,fields:_10});_11.editRecord(this.getEditedRecord(_4)||_1)}
+return _11}
+,isc.A.selectAllRecords=function isc_ListGrid_selectAllRecords(){this.$67j=true;this.selection.selectAll();this.$67j=null;this.$25a("select all");if(this.getCurrentCheckboxField()!=null)this.$63m(true)}
+,isc.A.deselectAllRecords=function isc_ListGrid_deselectAllRecords(){this.$67j=true;this.selection.deselectAll();this.$67j=null;this.$25a("deselect all");if(this.getCurrentCheckboxField()!=null)this.$63m(false)}
+,isc.A.bodyKeyPress=function isc_ListGrid_bodyKeyPress(_1,_2){if(this.$30a){var _3=_1.keyTarget,_4;while(_4==null&&_3!=this&&_3!=null){_4=_3.canvasItem;_3=_3.parentElement}
+if(_4!=null&&_4.form==this.getEditForm()){var _5=this.editorKeyPress(_4,isc.EH.getKey(),isc.EH.getKeyEventCharacterValue());return(_5==null?isc.EH.STOP_BUBBLING:_5)}}
+if(this.data.getLength()>0){var _6=isc.EventHandler,_7=_1.keyName;var _8=this.editOnKeyPress&&this.isEditable();if(_8&&this.$51j(_1,_2))return false;if(_7==this.$20s){return this.$318(-1)}else if(_7==this.$20t){return this.$318(1)}else if(_7==this.$304){if(this.generateClickOnSpace)
 if(this.$240()==false)return false;if(this.generateDoubleClickOnSpace)
-return this.$241()}else if(_4==this.$10j){if(this.generateClickOnEnter)
+return this.$241()}else if(_7==this.$10j){if(this.generateClickOnEnter)
 if(this.$240()==false)return false;if(this.generateDoubleClickOnEnter)
 return this.$241()}}
 return true}
-,isc.A.$51j=function isc_ListGrid__editOnKeyPress(_1,_2){var _3=_2.keyName,_4=isc.EH.getKeyEventCharacter(_1);if(_3!=this.$51g&&_3!=this.$51i&&_3!=this.$51h&&(_3==this.$20w||isc.EH.$i8[_3]||_4==null||_4==isc.emptyString))
+);isc.evalBoundary;isc.B.push(isc.A.$51j=function isc_ListGrid__editOnKeyPress(_1,_2){var _3=_2.keyName,_4=isc.EH.getKeyEventCharacter(_1);if(_3!=this.$51g&&_3!=this.$51i&&_3!=this.$51h&&(_3==this.$20w||isc.EH.$i8[_3]||_4==null||_4==isc.emptyString))
 {return false}
 var _5=this.getFocusCell(),_6=_5[0]||0,_7=_5[1]||0;if(this.$30a)return false;var _8;if(_3==this.$10j||_3==this.$51g)_4=null;var _9;if(_4!=null){if(_3==this.$51i||_3==this.$51h){_9=null}else if(this.autoSelectEditors){_9=_4}else{_9=this.getEditedCell(_6,_7)+_4}
 this.$51m=true}
@@ -7291,7 +7460,7 @@
 this.scrollRecordIntoView(_3)
 return false}
 ,isc.A.$32b=function isc_ListGrid__getKeyboardClickNum(){var _1=this.keyboardClickField;if(_1==null)return 0;if(isc.isA.Number(_1)&&_1>0&&_1<this.fields.length)return _1;var _2=this.fields.find(this.fieldIdProperty,_1),_3=(_2?this.fields.indexOf(_2):0);return _3}
-,isc.A.$319=function isc_ListGrid__generateRecordClick(_1){this.clearLastHilite();if(isc.isAn.Object(_1))_1=this.getRecordIndex(_1);if(!isc.isA.Number(_1)||_1<0)_1=0;if(_1>=this.data.getLength())_1=this.data.getLength()-1;this.body.$31p=_1;var _2=this.$32b();var _3=(this.body.selectionEnabled()&&this.recordIsEnabled(_1,_2));if(_3)this.selection.selectOnMouseDown(this,_1,_2);this.rowClick(this.getCellRecord(_1,_2),_1,_2,true);if(_3)this.selection.selectOnMouseUp(this,_1,_2);return false}
+,isc.A.$319=function isc_ListGrid__generateRecordClick(_1){this.clearLastHilite();if(isc.isAn.Object(_1))_1=this.getRecordIndex(_1);if(!isc.isA.Number(_1)||_1<0)_1=0;if(_1>=this.data.getLength())_1=this.data.getLength()-1;this.body.$31p=_1;var _2=this.$32b();var _3=(this.body.selectionEnabled()&&this.recordIsEnabled(_1,_2));if(_3)this.body.selectOnMouseDown(this,_1,_2);this.rowClick(this.getCellRecord(_1,_2),_1,_2,true);if(_3)this.body.selectOnMouseUp(this,_1,_2);return false}
 ,isc.A.getFocusRow=function isc_ListGrid_getFocusRow(_1){if(this.body.$31p!=null&&((this.body.$31p==this.body.lastOverRow)||(this.body.$31p==this.$31q)))
 {return this.body.$31p}
 delete this.body.$31p;var _2=this.getSelection();if(_2.length==0)return null;_2=_2[(_1?_2.length-1:0)]
@@ -7329,7 +7498,7 @@
 ,isc.A.syncHeaderScrolling=function isc_ListGrid_syncHeaderScrolling(_1,_2){if(_1!=null&&this.header){if(!this.isRTL()){if(_1!=this.header.getScrollLeft())this.header.scrollTo(_1)}else{var _3=this.header,_4=this.body,_5=_3.getScrollWidth()-_3.getViewportWidth(),_6=_5-_3.getScrollLeft(),_7=_4.getScrollWidth()-_4.getViewportWidth(),_8=_7-_1;if(_8!=_6){_3.scrollTo(_5-_8)}}}}
 ,isc.A.headerScrolled=function isc_ListGrid_headerScrolled(){if(!this.$32c){this.$32c=this.delayCall("syncBodyScrolling")}}
 ,isc.A.syncBodyScrolling=function isc_ListGrid_syncBodyScrolling(){delete this.$32c;var _1=this.header.getScrollLeft();if(this.body){if(!this.isRTL()){if(_1!=this.body.getScrollLeft())this.body.scrollTo(_1)}else{var _2=this.header,_3=this.body,_4=_2.getScrollWidth()-_2.getViewportWidth(),_5=_4-_2.getScrollLeft(),_6=_3.getScrollWidth()-_3.getViewportWidth(),_7=_6-_1;if(_7!=_5){_3.scrollTo(_6-_5)}}}}
-);isc.evalBoundary;isc.B.push(isc.A.syncFilterEditorScrolling=function isc_ListGrid_syncFilterEditorScrolling(_1,_2){if(this.filterEditor!=null&&this.filterEditor.body!=null&&this.filterEditor.body.getScrollLeft()!=_1)
+,isc.A.syncFilterEditorScrolling=function isc_ListGrid_syncFilterEditorScrolling(_1,_2){if(this.filterEditor!=null&&this.filterEditor.body!=null&&this.filterEditor.body.getScrollLeft()!=_1)
 {this.filterEditor.body.scrollTo(_1)}}
 ,isc.A.syncSummaryRowScrolling=function isc_ListGrid_syncSummaryRowScrolling(_1,_2){if(this.summaryRow!=null&&this.showGridSummary&&this.summaryRow.body!=null&&this.summaryRow.body.getScrollLeft()!=_1)
 {this.summaryRow.body.scrollTo(_1)}}
@@ -7359,10 +7528,23 @@
 ,isc.A.getSummaryRowCriteria=function isc_ListGrid_getSummaryRowCriteria(){if(this.summaryRowCriteria!=null)return this.summaryRowCriteria;var _1=this.getOriginalData();if(isc.ResultSet&&isc.isA.ResultSet(_1)){return this.data.getCriteria()}
 return this.getInitialCriteria()}
 ,isc.A.getSummaryRowFetchRequestConfig=function isc_ListGrid_getSummaryRowFetchRequestConfig(){return isc.addProperties({textMatchStyle:this.autoFetchTextMatchStyle,showPrompt:false,startRow:0,endRow:1},this.summaryRowFetchRequestDefaults,this.summaryRowFetchRequestProperties)}
-,isc.A.assembleGroupSummaries=function isc_ListGrid_assembleGroupSummaries(_1,_2){var _3=this.groupTree;if(!_1)_1=_3.getRoot();if(!_2)_2=[];var _4=_3.getFolders(_1);for(var i=0;i<_4.length;i++){var _6=_3.getChildren(_4[i]).last(),_7=isc.addProperties({groupName:_4[i].groupName,groupValue:_4[i].groupValue},_6);delete _7.customStyle;delete _7[this.recordEnabledProperty];delete _7[this.includeInSummaryProperty];_2.add(_7);var _8=_3.getFolders(_4[i]);for(var _9=0;_9<_8.length;_9++){this.assembleGroupSummaries(_8[_9],_2)}}
+,isc.A.getGridSummaryData=function isc_ListGrid_getGridSummaryData(_1){if(this.$84c&&!_1)return this.$84c;var _2=this.completeFields||this.fields,_3=[];for(var i=0;i<_2.length;i++){var _5=_2[i],_6=_2[i].name;if(!this.shouldShowGridSummary(_5))continue;var _7=this.getGridSummary(_5);if(!isc.isAn.Array(_7)){_7=[_7]}
+for(var _8=0;_8<_7.length;_8++){if(_3[_8]==null){_3[_8]={};_3[_8][this.gridSummaryRecordProperty]=true;_3[_8][this.recordCanSelectProperty]=false}
+_3[_8][_6]=_7[_8]}}
+this.$84c=_3;return _3}
+,isc.A.getGroupSummaryData=function isc_ListGrid_getGroupSummaryData(_1,_2){var _3=[];for(var i=0;i<this.fields.getLength();i++){var _5=this.getField(i),_6=_5.name,_7;if(this.shouldShowGroupSummary(_5)){_7=this.getGroupSummary(_1,_5,_2);if(!isc.isAn.Array(_7))_7=[_7];for(var _8=0;_8<_7.length;_8++){var _9=_3[_8];if(_9==null){_9=_3[_8]={};_9.customStyle=this.groupSummaryStyle;_9[this.recordEnabledProperty]=false;_9[this.includeInSummaryProperty]=false;_9[this.groupSummaryRecordProperty]=true}
+var _10=_7[_8];if(_10==null){_10=this.invalidSummaryValue}else{if(_5.formatGroupSummary){if(isc.isA.String(_5.formatGroupSummary)){_5.formatGroupSummary=isc.Func.expressionToFunction("value",_5.formatGroupSummary)}
+_10=_5.formatGroupSummary(_10)}else{var _11=this.getGridSummaryFunction(_5);if(!isc.isAn.Array(_11))_11=[_11];if(_11[_8]=="count"){var _12=_5.pluralTitle;if(_12==null)_12=_5.title;if(_12!=null)_10+=" "+_12}}}
+_9[_6]=_10}}}
+return _3}
+,isc.A.assembleGroupSummaries=function isc_ListGrid_assembleGroupSummaries(_1,_2){var _3=this.groupTree;if(!_1)_1=_3.getRoot();if(!_2)_2=[];var _4=_3.getFolders(_1);for(var i=0;i<_4.length;i++){var _6=_4[i];var _7=_3.combineWithEditVals(_3.getChildren(_6));var _8=this.getGroupSummaryData(_7,_6);for(var _9=0;_9<_8.length;_9++){var _10=isc.addProperties({},_8[_9]);delete _10.customStyle;delete _10[this.recordEnabledProperty];delete _10[this.includeInSummaryProperty];_2.add(_10)}
+var _11=_3.getFolders(_4[i]);for(var _9=0;_9<_11.length;_9++){this.assembleGroupSummaries(_11[_9],_2)}}
 return _2}
 ,isc.A.getSummaryValue=function isc_ListGrid_getSummaryValue(_1,_2){var _3=[];for(var i=0;i<_1.length;i++){var _5=_1[i];if(!_5||(_5[this.includeInSummaryProperty]==false))continue;_3[_3.length]=_5}
-var _6=this.getGridSummaryFunction(_2);return isc.SimpleType.applySummaryFunction(_3,_2,_6)}
+var _6=this.getGridSummaryFunction(_2);if(_6!=null){if(!isc.isAn.Array(_6)){_6=[_6]}
+var _7=[];for(var i=0;i<_6.length;i++){var _8=_6[i];if(_8!=null){_7[i]=isc.SimpleType.applySummaryFunction(_3,_2,_8)}}
+return _7}
+return null}
 ,isc.A.shouldShowGroupSummary=function isc_ListGrid_shouldShowGroupSummary(_1){if(_1.showGroupSummary!=null)return _1.showGroupSummary;return(_1.getGroupSummary!=null||this.getGridSummaryFunction(_1)!=null)}
 ,isc.A.getGroupSummary=function isc_ListGrid_getGroupSummary(_1,_2,_3){var _4;if(_2.getGroupSummary!=null){_4=_2.getGroupSummary(_1,_2,_3)}else{_4=this.getSummaryValue(_1,_2)}
 return _4}
@@ -7374,28 +7556,25 @@
 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){if(!this.fields)return;if(_1==null){_1=this.getOriginalData()}
+,isc.A.calculateRecordSummaries=function isc_ListGrid_calculateRecordSummaries(_1,_2){if(!this.fields)return;if(_1==null){_1=this.getOriginalData()}
 if(_1==null||(isc.isA.ResultSet(_1)&&!_1.lengthIsKnown()))
-return;var _2=[];for(var i=0;i<this.fields.length;i++){var _4=this.getField(i);if(this.shouldApplyRecordSummaryToRecord(_4)){_2.add(_4)}}
-if(_2.length>0){for(var i=0;i<_1.getLength();i++){var _5=_1.get(i),_6=this.getEditValues(_5),_7=_6?isc.addProperties({},_5,_6):_5;if(_5==null)continue;for(var _8=0;_8<_2.length;_8++){var _4=_2[_8],_9=this.getRecordSummary(_7,_4);_5[_4.name]=_9}}
-if(!this.isDirty())this.markForRedraw()}
-if(this.showGridSummary&&this.summaryRow)this.summaryRow.recalculateSummaries()}
+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.recalculateSummaries()}}
 ,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;if(this.completeFields)_1=this.completeFields.duplicate();else if(this.fields)_1=this.fields.duplicate();this.summaryRow=this.createAutoChild("summaryRow",{warnOnReusedFields:false,autoDraw:false,top:this.getBottom()-this.summaryRowHeight,left:this.getLeft()+this.getLeftMargin(),showHeader:false,height:this.summaryRowHeight,getBaseStyle:function(){return this.creator.summaryRowStyle},disabled:this.disabled,width:this.getWidth(),bodyOverflow:"hidden",$67b:function(){},$31s:function(_7){if(!this.creator.shouldShowGridSummary(_7))return false;return this.Super("$31s",arguments)},dataSource:this.getSummaryRowDataSource(),getTotalRows:function(){return 1},recalculateSummaries:function(){if(this.dataSource!=null){var _2=this.creator.getSummaryRowCriteria(),_3=isc.ResultSet&&isc.isA.ResultSet(this.data)&&!this.data.willFetchData(_2);this.fetchData(_2,null,this.creator.getSummaryRowFetchRequestConfig());if(_3)this.invalidateCache();return}
-delete this.$71q;this.markForRedraw();return this.getRecord(0)},getCellRecord:function(_10,_11){if(this.dataSource!=null)return this.Super("getCellRecord",arguments);if(_10!=0)return null;if(this.$71q){return this.$71q}
-this.$71q={};this.$71q[this.creator.gridSummaryRecordProperty]=true;this.$71q[this.recordCanSelectProperty]=false;var _4=this.completeFields||this.fields,_5=[];for(var i=0;i<_4.length;i++){var _7=_4[i],_8=_4[i].name;if(!this.creator.shouldShowGridSummary(_7))continue;this.$71q[_8]=this.creator.getGridSummary(_7)}
-return this.$71q},fields:_1,getFieldWidths:function(){return this.creator.getFieldWidths()},$315:function(_10,_11,_7,_12,_13){var _9=this.creator;if(_9.shouldShowGridSummary(_7)){if(_10==null)return this.invalidSummaryValue;if(_7.formatGridSummary){if(!isc.isA.Function(_7.formatGridSummary)){_7.formatGridSummary=isc.Func.expressionToFunction("value",_7.formatGridSummary)}
-if(isc.isA.Function(_7.formatGridSummary)){return _7.formatGridSummary(_10)}}
+,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,recalculateSummaries: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))}},fields: