Fixes based on recent testing. Key changes: EntryType DT (datetime) has been replaced...
authorMatt Brown <dowdybrown@yahoo.com>
Sat, 16 Jul 2011 03:15:29 +0000 (03:15 +0000)
committerMatt Brown <dowdybrown@yahoo.com>
Sat, 16 Jul 2011 03:15:29 +0000 (03:15 +0000)
Still need to propogate .net changes to php plugin.

git-svn-id: svn://svn.code.sf.net/p/openrico/code/trunk/rico3@94 53df2df2-7ab5-4331-af62-ea79255fa4e2

23 files changed:
bin/Rico.dll
bin/Rico.xml
documentation/ChangesSinceRico2.txt
examples/asp/menu.asp
examples/asp/widgets.asp
examples/dotnet/3grids.aspx
examples/dotnet/gridFromTable.aspx
examples/dotnet/menu.aspx
examples/html/menu.html
examples/php/LoadRicoClient.php
examples/php/menu.html
examples/php/widgets.php
minsrc/rico.js
minsrc/ricoCalendar.js
minsrc/ricoGridCommon.js
minsrc/ricoLiveGrid.js
minsrc/ricoLiveGridControls.js
minsrc/ricoLiveGridForms.js
minsrc/ricoLiveGridMenu.js
minsrc/ricoUI.js
ricoClient/css/grayedout.css
ricoClient/css/rico.css
ricoClient/js/rico_min.js

index 63c9dcc..c1387fe 100644 (file)
Binary files a/bin/Rico.dll and b/bin/Rico.dll differ
index 2f6dffc..3fd57b5 100644 (file)
@@ -6,122 +6,85 @@ Rico
 </name>\r
 </assembly>\r
 <members>\r
-<member name="P:Rico.TreeResponse.ErrorMsg">\r
+<member name="M:Rico.TableCollection.IndexOf(System.String)">\r
        <summary>\r
- May contain the text of an error message that occurred outside this control prior to rendering\r
- </summary>\r
-       <value></value>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
-</member><member name="P:Rico.TreeResponse.dbConnection">\r
-       <summary>\r
- Database connection object. Required only if sqlText is used.\r
+ Returns the index of the table with TblAlias or -1 if not found\r
  </summary>\r
-       <value></value>\r
-       <remarks></remarks>\r
-</member><member name="P:Rico.TreeResponse.SqlText">\r
+       <param name="TblAlias"></param>\r
+</member><member name="P:Rico.My.Resources.Resources.ResourceManager">\r
        <summary>\r
- Optional sql query to execute, must return 5 columns matching WriteTreeRow parameters \r
- </summary>\r
-       <value></value>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
-</member><member name="M:Rico.TreeResponse.WriteTreeRow(System.Object,System.Object,System.Object,System.Object,System.Object)">\r
+  Returns the cached ResourceManager instance used by this class.\r
+</summary>\r
+</member><member name="P:Rico.My.Resources.Resources.Culture">\r
        <summary>\r
- Adds an entry that will be returned with the results. Often used to add the root node.\r
- </summary>\r
-       <param name="parentID">id of parent, "" if this is the root</param>\r
-       <param name="ID">id that uniquely identifies this node in the tree</param>\r
-       <param name="description">description displayed to the user</param>\r
-       <param name="containerORleaf">"L" or 0 = leaf, "C" or non-zero = container</param>\r
-       <param name="selectable">0=not selectable, 1=selectable</param>\r
-       <remarks></remarks>\r
-</member><member name="T:Rico.TreeResponse">\r
+  Overrides the current thread's CurrentUICulture property for all\r
+  resource lookups using this strongly typed resource class.\r
+</summary>\r
+</member><member name="T:Rico.My.Resources.Resources">\r
        <summary>\r
- Use this class on a page that responds to AJAX requests from a Rico Tree Control\r
- This class automatically disables caching of the response and sets the response type to text/xml\r
- </summary>\r
-       <remarks></remarks>\r
+  A strongly-typed resource class, for looking up localized strings, etc.\r
+</summary>\r
 </member><member name="T:Rico.sqlParse.sqlColumn">\r
        <summary>\r
  Represents a column in the select statement\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.IsDistinct">\r
        <summary>\r
  True if the select statement contains the DISTINCT keyword\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.SelectList">\r
        <summary>\r
  List of columns in the select statement\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.GroupBy">\r
        <summary>\r
  List of "group by" items in the select statement\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.OrderBy">\r
        <summary>\r
  List of "order by" items in the select statement\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.FromClause">\r
        <summary>\r
  From clause of the select statement, including any joins\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.WhereClause">\r
        <summary>\r
  Where clause of the select statement\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.HavingClause">\r
        <summary>\r
  Having clause of the select statement\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="F:Rico.sqlParse.Headings">\r
        <summary>\r
  List of column headings in the select list.\r
  Set after an any unparse* call.\r
  </summary>\r
-       <remarks></remarks>\r
 </member><member name="M:Rico.sqlParse.Clone">\r
        <summary>\r
  Returns a cloned copy of this object\r
  </summary>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
 </member><member name="M:Rico.sqlParse.UnparseSelect">\r
        <summary>\r
  Builds a SQL select statement string from its parsed components\r
  </summary>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
 </member><member name="M:Rico.sqlParse.UnparseSelectDistinct">\r
        <summary>\r
  Rebuilds a SQL select statement that was parsed by ParseSelect, inserting the DISTINCT keyword\r
  </summary>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
 </member><member name="M:Rico.sqlParse.UnparseDistinctColumnAccess(System.Int32)">\r
        <summary>\r
  Returns a SQL select statement that will return all of the values in a particular column.\r
  This version is meant MS Access, as it does not support ordering by column name\r
  </summary>\r
        <param name="colnum"></param>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
 </member><member name="M:Rico.sqlParse.UnparseDistinctColumn(System.Int32)">\r
        <summary>\r
  Returns a SQL select statement that will return all of the values in a particular column.\r
  The returned statement is not compatible MS Access, use UnparseDistinctColumnAccess() instead.\r
  </summary>\r
        <param name="colnum"></param>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
 </member><member name="M:Rico.sqlParse.UnparseColumnList">\r
        <summary>\r
  Returns the select list part of the statement as a string\r
@@ -156,227 +119,136 @@ Rico
                <para>* Put union queries in a view and then write your select statement against the view.</para>\r
        </summary>\r
        <param name="sqltext"></param>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
 </member><member name="T:Rico.sqlParse">\r
        <summary>\r
  Holds a SQL select statement. Methods to load/parse a select statement from a string and to reassemble it in various ways.\r
  Does not handle union queries.\r
  </summary>\r
-       <remarks></remarks>\r
-</member><member name="P:Rico.SimpleCol.Width">\r
+</member><member name="F:Rico.LiveGridBase.largeBufferSize">\r
        <summary>\r
- Initial width of the column in pixels. Default is to use SimpleGrid.defaultWidth.\r
+ controls size of client buffer and AJAX fetch size\r
  </summary>\r
-</member><member name="F:Rico.Column.canSort">\r
+</member><member name="P:Rico.LiveGridBase.formVar">\r
        <summary>\r
- Is the user allowed to sort the column? Default is true.\r
+ name of Javascript object containing LiveGrid Edit\r
  </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.canDrag">\r
+</member><member name="P:Rico.LiveGridBase.bufferVar">\r
        <summary>\r
- Is the user allowed to drag a column value? Default is false.\r
+ name of Javascript object containing LiveGrid buffer\r
  </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.canFilter">\r
+</member><member name="P:Rico.LiveGridBase.bufferOptVar">\r
        <summary>\r
- Is the user allowed to filter the column? Default is true.\r
+ name of Javascript object containing initial LiveGrid buffer options\r
  </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.control">\r
+</member><member name="F:Rico.LiveGridBase.SqlCompat">\r
        <summary>\r
- Javascript code to create a control object, which changes the way the column data is rendered.\r
- The disadvantage of using this approach is that the altered rendering does not get reflected in exports.\r
- A set of controls is defined in ricoLiveGridControls.js or the developer can create their own.\r
+ Provides a set of functions that mask differences across various SQL dialects. Available once dbDialect is set.\r
  </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.filterUI">\r
+</member><member name="P:Rico.LiveGridBase.rows">\r
        <summary>\r
- If the AutoFilter option is enabled for the grid, then filterUI will control how each column is filtered. If filterUI is:\r
+ Number of visible rows in the grid.\r
+ Negative values have the following meanings:\r
  <list type="bullet">\r
-                       <item><description>null or omitted, then no filter is displayed for the column.</description></item>\r
-                       <item><description>'t' - will generate a text box filter and the records being displayed are filtered as the user types. May be followed by a number to indicate the size of the text box (default size is 10). </description></item>\r
-                       <item><description>'s' - will generate a select list filter with all possible column values contained in the list. Populated using a 'select distinct' query if the grid's source is a SQL query.</description></item>\r
-                       <item><description>'m' - will generate multi-select checklist filter, with a checkbox text to each item.</description></item>\r
+                       <item><description>-1: size grid to client window</description></item>\r
+                       <item><description>-2: size grid to whichever is smaller: the client window or the data</description></item>\r
+                       <item><description>-3: size grid so that the page body does not have a scrollbar (default)</description></item>\r
+                       <item><description>-4: size grid to its parent node in the DOM</description></item>\r
                </list>\r
        </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.filterColId">\r
+</member><member name="F:Rico.LiveGridBase.ColGroups">\r
        <summary>\r
- This setting allows the filterUI to filter a different column than where it is displayed.\r
- This is particularly useful for dates, where you can show a year selection on an OrderDate date column for example,\r
- but actually have it filter a hidden column OrderYear=year(OrderDate).\r
- </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.ConfirmDeleteColumn">\r
-       <summary>\r
- The text content of this column will be included in delete confirmation messages.\r
- </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.Column.multiplier">\r
-       <summary>\r
- If column is a number, this value can be used to multiply the database value by a factor before displaying it in the grid.\r
- Default is 1. Automatically set to 100 if DataType is percent.\r
+ Collection of ColumnGroup objects, which define the headings used above each group of columns.\r
  </summary>\r
        <remarks></remarks>\r
-</member><member name="F:Rico.Column.decPlaces">\r
+</member><member name="F:Rico.LiveGridBase.Tables">\r
        <summary>\r
- If column is a number, this is the number of digits displayed to the right of the decimal point. Default is 0.\r
- If DataType is dollar or euro, then decPlaces is automatically set to 2.\r
+ Defines the tables used by the LiveGrid. The first table is primary/main table.\r
  </summary>\r
        <remarks></remarks>\r
-</member><member name="F:Rico.Column.thouSep">\r
+</member><member name="M:Rico.LiveGridBase.ColClassName(System.Int32)">\r
        <summary>\r
- If column is a number, display the value with a thousands separator? Default is true.\r
+ Returns the class name of the specified grid column\r
  </summary>\r
+       <param name="colnum"></param>\r
+       <returns></returns>\r
        <remarks></remarks>\r
-</member><member name="F:Rico.Column.negSign">\r
-       <summary>\r
- Specifies how negative numbers should be displayed. Possible values:\r
- <list>\r
-                       <item><description>L=leading minus (default)</description></item>\r
-                       <item><description>T=trailing minus</description></item>\r
-                       <item><description>P=parentheses</description></item>\r
-               </list>\r
-       </summary>\r
-</member><member name="F:Rico.Column.prefix">\r
-       <summary>\r
- If column is a number, this string is prepended to the number before display.\r
- Useful for currency symbols.\r
- </summary>\r
-</member><member name="F:Rico.Column.suffix">\r
-       <summary>\r
- If column is a number, this string is appended to the number before display.\r
- Useful for percentages and temperature values. Automatically set to % if DataType is percent.\r
- </summary>\r
-</member><member name="F:Rico.Column.HdgStyleID">\r
-       <summary>\r
- Used to give the column heading a specific style.\r
- In most cases this is not necessary, as the heading will be styled according to the theme.\r
- </summary>\r
-</member><member name="F:Rico.Column.isNullable">\r
-       <summary>\r
- Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
- </summary>\r
-</member><member name="F:Rico.Column.Writeable">\r
-       <summary>\r
- Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
- </summary>\r
-</member><member name="F:Rico.Column.isKey">\r
-       <summary>\r
- Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
- </summary>\r
-</member><member name="F:Rico.Column.Length">\r
-       <summary>\r
- Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
- </summary>\r
-</member><member name="F:Rico.Column.TypeName">\r
-       <summary>\r
- Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
- </summary>\r
-</member><member name="F:Rico.Column.ColGroupIdx">\r
-       <summary>\r
- For internal use\r
- </summary>\r
-</member><member name="P:Rico.Column.Heading">\r
-       <summary>\r
- Text displayed in the column heading.\r
- </summary>\r
-</member><member name="P:Rico.Column.Width">\r
-       <summary>\r
- Initial width of the column in pixels. Default is to use LiveGrid.defaultWidth.\r
- </summary>\r
-</member><member name="M:Rico.Column.NumberFormat">\r
+</member><member name="M:Rico.LiveGridBase.AddColumn(Rico.Column)">\r
        <summary>\r
- Returns an Excel-type number format string based on decPlaces, thouSep, prefix.\r
+ Adds a new column to grid, returns column index\r
  </summary>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
-</member><member name="P:Rico.Column.DataType">\r
+       <param name="ColumnObj"></param>\r
+</member><member name="M:Rico.LiveGridBase.escapeJSON(System.String)">\r
        <summary>\r
- Type of data stored in the column.\r
+ Takes a given string and makes it JSON valid (http://json.org/)\r
  </summary>\r
-       <value></value>\r
-       <returns></returns>\r
-       <remarks></remarks>\r
-</member><member name="T:Rico.Column">\r
+       <param name="val">value which should be escaped</param>\r
+       <returns>JSON valid string</returns>\r
+       <remarks>\r
+ AUTHOR: Michael Rebec\r
+ All characters which needs to be escaped are beeing replaced by their\r
+ unicode representation according to the\r
+ RFC4627#2.5 - http://www.ietf.org/rfc/rfc4627.txt?number=4627\r
+ </remarks>\r
+</member><member name="T:Rico.LiveGridBase">\r
        <summary>\r
- Base class for a LiveGrid column\r
+ Methods and properties common to LiveGrid and LiveGridEdit\r
  </summary>\r
 </member><member name="P:Rico.LiveGrid.BufferType">\r
        <summary>\r
  The type of buffer deployed on the client\r
- <list>\r
-                       <item><description>AjaxSQL - data source is a SQL database query</description></item>\r
-                       <item><description>AjaxLoadOnce - data is loaded once from a remote source, such as an XML file</description></item>\r
-                       <item><description>Base - data is static, loaded from either an html table or javascript array</description></item>\r
+ <list type="table">\r
+                       <item><term>AjaxSQL</term><description>data source is a SQL database query</description></item>\r
+                       <item><term>AjaxLoadOnce</term><description>data is loaded once from a remote source, such as an XML file</description></item>\r
+                       <item><term>Base</term><description>data is static, loaded from either an html table or javascript array</description></item>\r
                </list>\r
        </summary>\r
-</member><member name="P:Rico.LiveGrid.formVar">\r
-       <summary>\r
- name of Javascript object containing LiveGrid Edit\r
- </summary>\r
-</member><member name="P:Rico.LiveGrid.bufferVar">\r
+</member><member name="P:Rico.LiveGrid.HtmlSourceId">\r
        <summary>\r
- name of Javascript object containing LiveGrid buffer\r
+ If grid is populated from an html table, then set HtmlSourceId to the id of the source table\r
  </summary>\r
-</member><member name="P:Rico.LiveGrid.bufferOptVar">\r
+</member><member name="P:Rico.LiveGrid.QueryDistinct">\r
        <summary>\r
- name of Javascript object containing initial LiveGrid buffer options\r
+ True if this should be a distinct sql query (default is false)\r
  </summary>\r
-</member><member name="F:Rico.LiveGrid.SqlCompat">\r
+</member><member name="T:Rico.LiveGrid">\r
        <summary>\r
- Provides a set of functions that mask differences across various SQL dialects. Available once dbDialect is set.\r
+ Class to define a LiveGrid\r
  </summary>\r
-</member><member name="P:Rico.LiveGrid.rows">\r
-       <summary>\r
- Number of visible rows in the grid.\r
- Negative values have the following meanings:\r
- <list type="bullet">\r
-                       <item><description>-1: size grid to client window</description></item>\r
-                       <item><description>-2: size grid to whichever is smaller: the client window or the data</description></item>\r
-                       <item><description>-3: size grid so that the page body does not have a scrollbar (default)</description></item>\r
-                       <item><description>-4: size grid to its parent node in the DOM</description></item>\r
-               </list>\r
-       </summary>\r
-</member><member name="P:Rico.LiveGrid.HtmlSourceId">\r
+</member><member name="P:Rico.TreeResponse.ErrorMsg">\r
        <summary>\r
- If grid is populated from an html table, then set HtmlSourceId to the id of the source table\r
+ May contain the text of an error message that occurred outside this control prior to rendering\r
  </summary>\r
        <value></value>\r
+       <returns></returns>\r
        <remarks></remarks>\r
-</member><member name="F:Rico.LiveGrid.ColGroups">\r
-       <summary>\r
- Collection of ColumnGroup objects, which define the headings used above each group of columns.\r
- </summary>\r
-       <remarks></remarks>\r
-</member><member name="F:Rico.LiveGrid.Tables">\r
+</member><member name="P:Rico.TreeResponse.dbConnection">\r
        <summary>\r
- Defines the tables used by the LiveGrid. The first table is primary/main table.\r
+ Database connection object. Required only if sqlText is used.\r
  </summary>\r
+       <value></value>\r
        <remarks></remarks>\r
-</member><member name="M:Rico.LiveGrid.ColClassName(System.Int32)">\r
+</member><member name="P:Rico.TreeResponse.SqlText">\r
        <summary>\r
- Returns the class name of the specified grid column\r
+ Optional sql query to execute, must return 5 columns matching WriteTreeRow parameters \r
  </summary>\r
-       <param name="colnum"></param>\r
+       <value></value>\r
        <returns></returns>\r
        <remarks></remarks>\r
-</member><member name="M:Rico.LiveGrid.AddColumn(Rico.Column)">\r
-       <summary>\r
- Adds a new column to grid, returns column index\r
- </summary>\r
-       <param name="ColumnObj"></param>\r
-</member><member name="T:Rico.LiveGrid">\r
+</member><member name="M:Rico.TreeResponse.WriteTreeRow(System.Object,System.Object,System.Object,System.Object,System.Object)">\r
        <summary>\r
- Class to define a LiveGrid\r
+ Adds an entry that will be returned with the results. Often used to add the root node.\r
  </summary>\r
-</member><member name="M:Rico.TableCollection.IndexOf(System.String)">\r
+       <param name="parentID">id of parent, "" if this is the root</param>\r
+       <param name="ID">id that uniquely identifies this node in the tree</param>\r
+       <param name="description">description displayed to the user</param>\r
+       <param name="containerORleaf">"L" or 0 = leaf, "C" or non-zero = container</param>\r
+       <param name="selectable">0=not selectable, 1=selectable</param>\r
+       <remarks></remarks>\r
+</member><member name="T:Rico.TreeResponse">\r
        <summary>\r
- Returns the index of the table with TblName or -1 if not found\r
+ Use this class on a page that responds to AJAX requests from a Rico Tree Control\r
+ This class automatically disables caching of the response and sets the response type to text/xml\r
  </summary>\r
-       <param name="TblName"></param>\r
-       <returns></returns>\r
        <remarks></remarks>\r
 </member><member name="P:Rico.GridBase.gridVar">\r
        <summary>\r
@@ -459,15 +331,125 @@ Rico
        <summary>\r
  This class defines properties and functions used in SimpleGrid, LiveGrid and LiveGridEdit classes.\r
  </summary>\r
-</member><member name="P:Rico.StyleBase.bold">\r
-       <summary>\r
- True if the text should be displayed using a bold font\r
- </summary>\r
-</member><member name="P:Rico.StyleBase.italic">\r
+</member><member name="F:Rico.LoadClient.ImgHeading">\r
        <summary>\r
- True if the text should be displayed in italics\r
+ Background image for grid headings and window titles.\r
+ Should be left unset, as it is used only for the grayedout theme (in which case it is set automatically).\r
  </summary>\r
-</member><member name="P:Rico.StyleBase.underline">\r
+</member><member name="F:Rico.LoadClient.BaseLib">\r
+       <summary>\r
+ The base Javascript library to load from http://ajax.googleapis.com/ajax/libs/, possible values include:\r
+ <list type="bullet">\r
+                       <item><description>prototype/1.6/prototype.js</description></item>\r
+                       <item><description>prototype/1.7/prototype.js</description></item>\r
+                       <item><description>jquery/1.3/jquery.min.js</description></item>\r
+                       <item><description>jquery/1.4/jquery.min.js</description></item>\r
+                       <item><description>jquery/1.5/jquery.min.js</description></item>\r
+                       <item><description>jquery/1.6/jquery.min.js</description></item>\r
+                       <item><description>mootools/1.2/mootools-yui-compressed.js</description></item>\r
+                       <item><description>mootools/1.3/mootools-yui-compressed.js</description></item>\r
+                       <item><description>dojo/1.5/dojo/dojo.xd.js</description></item>\r
+                       <item><description>dojo/1.6/dojo/dojo.xd.js</description></item>\r
+                       <item><description>ext-core/3.0/ext-core.js</description></item>\r
+                       <item><description>ext-core/3.1/ext-core.js</description></item>\r
+               </list>\r
+               <para>Default value is "proto_min", which loads prototype 1.7 from the server control.</para>\r
+       </summary>\r
+</member><member name="F:Rico.LoadClient.Logging">\r
+       <summary>\r
+ Enable Javascript console logging? Useful for debugging. Default is false.\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.HTML5">\r
+       <summary>\r
+ Enable HTML5 web form elements in browsers that support them. \r
+ Default is false because the quality of the HTML5 web form elements is uneven across browsers.\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.Language">\r
+       <summary>\r
+ Best left unset, in which case language will be set automatically based on request's HTTP_ACCEPT_LANGUAGE\r
+ However, if you want to present the same locale settings to all users, then you can set this value to force the desired locale.\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.LoadBaseLib">\r
+       <summary>\r
+ Load base Javascript library (prototype, jQuery, etc)?\r
+ Default is true.\r
+ Set to false if library is being loaded another way. In this case, a BaseLib value is still required to indicate\r
+ which library Rico should connect to.\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.Striping">\r
+       <summary>\r
+ Apply row striping to LiveGrids? Default is true. Applies only when themes are used.\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.SupportedLangs">\r
+       <summary>\r
+ Comma separated list of 2 letter locales that Rico supports.\r
+ Do not set unless you have developed your own locale file.\r
+ </summary>\r
+</member><member name="F:Rico.LoadClient.jQueryThemePath">\r
+       <summary>\r
+ URL to load jQuery themes from.\r
+ Default is http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/\r
+ Override this value if you have a jQuery theme on your own server.\r
+ </summary>\r
+</member><member name="P:Rico.LoadClient.LoadedLanguage">\r
+       <summary>\r
+ Returns the 2 character string representing the Rico locale file that was actually used on the client.\r
+ If there is no match between the requested languages and the available locale files, then english is used.\r
+ Only available during the render phase.\r
+ </summary>\r
+</member><member name="P:Rico.LoadClient.checkQueryString">\r
+       <summary>\r
+ Load settings from QueryString?  true for demo, false for anything else. Default is false.\r
+ </summary>\r
+</member><member name="P:Rico.LoadClient.checkWebConfig">\r
+       <summary>\r
+ Load settings from web.config file? Default is false.\r
+ If true, then the appSettings section of web.config will be checked for the following keys (which affect the similarly named properties):\r
+ <list type="bullet">\r
+                       <item><description>rico_BaseLib</description></item>\r
+                       <item><description>rico_Language</description></item>\r
+                       <item><description>rico_jTheme</description></item>\r
+                       <item><description>rico_rTheme</description></item>\r
+                       <item><description>rico_Logging</description></item>\r
+                       <item><description>rico_HTML5</description></item>\r
+                       <item><description>rico_LoadBaseLib</description></item>\r
+                       <item><description>rico_Striping</description></item>\r
+               </list>\r
+               <para>Boolean values in web.config should be the strings "true" or "1" for true, and "false" or "0" for false.</para>\r
+       </summary>\r
+</member><member name="M:Rico.LoadClient.InitLiveGrids(System.Web.UI.HtmlTextWriter)">\r
+       <summary>\r
+ Initialize all grids on the page\r
+ Initialize grids with fixed # of rows first,\r
+ then initialize grids with variable # of rows\r
+ </summary>\r
+</member><member name="P:Rico.LoadClient.jTheme">\r
+       <summary>\r
+ Set theme to one of the jQuery Themeroller themes. Default is no theme.\r
+ Valid values are:\r
+   black-tie, blitzer, cupertino, dark-hive, dot-luv, eggplant, excite-bike, flick, \r
+   hot-sneaks, humanity, le-frog, mint-choc, overcast, pepper-grinder, redmond, smoothness, \r
+   south-street, start, sunny, swanky-purse, trontastic, ui-darkness, ui-lightness, vader\r
+ </summary>\r
+</member><member name="P:Rico.LoadClient.rTheme">\r
+       <summary>\r
+ Set theme to one of the Rico themes. Default is no theme.\r
+ Valid values are:\r
+   coffee-with-milk, grayedout, greenHdg, seaglass, warmfall\r
+ </summary>\r
+</member><member name="T:Rico.LoadClient">\r
+       <summary>\r
+ Loads the various Javascript, CSS, and image files required to make Rico function.\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.bold">\r
+       <summary>\r
+ True if the text should be displayed using a bold font\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.italic">\r
+       <summary>\r
+ True if the text should be displayed in italics\r
+ </summary>\r
+</member><member name="P:Rico.StyleBase.underline">\r
        <summary>\r
  True if the text should be underlined\r
  </summary>\r
@@ -576,128 +558,173 @@ Rico
        <summary>\r
  Container for a collection of Style objects\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.ImgHeading">\r
+</member><member name="P:Rico.SimpleCol.Width">\r
        <summary>\r
- Background image for grid headings and window titles.\r
- Should be left unset, as it is used only for the grayedout theme (in which case it is set automatically).\r
+ Initial width of the column in pixels. Default is to use SimpleGrid.defaultWidth.\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.BaseLib">\r
+</member><member name="F:Rico.Column.canSort">\r
        <summary>\r
- The base Javascript library to load from http://ajax.googleapis.com/ajax/libs/, possible values include:\r
+ Is the user allowed to sort the column? Default is true.\r
+ </summary>\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.canDrag">\r
+       <summary>\r
+ Is the user allowed to drag a column value? Default is false.\r
+ </summary>\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.canFilter">\r
+       <summary>\r
+ Is the user allowed to filter the column? Default is true.\r
+ </summary>\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.control">\r
+       <summary>\r
+ Javascript code to create a control object, which changes the way the column data is rendered.\r
+ The disadvantage of using this approach is that the altered rendering does not get reflected in exports.\r
+ A set of controls is defined in ricoLiveGridControls.js or the developer can create their own.\r
+ </summary>\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.filterUI">\r
+       <summary>\r
+ If the AutoFilter option is enabled for the grid, then filterUI will control how each column is filtered. If filterUI is:\r
  <list type="bullet">\r
-                       <item><description>prototype/1.6/prototype.js</description></item>\r
-                       <item><description>prototype/1.7/prototype.js</description></item>\r
-                       <item><description>jquery/1.3/jquery.min.js</description></item>\r
-                       <item><description>jquery/1.4/jquery.min.js</description></item>\r
-                       <item><description>jquery/1.5/jquery.min.js</description></item>\r
-                       <item><description>jquery/1.6/jquery.min.js</description></item>\r
-                       <item><description>mootools/1.2/mootools-yui-compressed.js</description></item>\r
-                       <item><description>mootools/1.3/mootools-yui-compressed.js</description></item>\r
-                       <item><description>dojo/1.4/dojo/dojo.xd.js</description></item>\r
-                       <item><description>dojo/1.5/dojo/dojo.xd.js</description></item>\r
-                       <item><description>dojo/1.6/dojo/dojo.xd.js</description></item>\r
-                       <item><description>ext-core/3.0/ext-core.js</description></item>\r
-                       <item><description>ext-core/3.1/ext-core.js</description></item>\r
+                       <item><description>null or omitted, then no filter is displayed for the column.</description></item>\r
+                       <item><description>'t' - will generate a text box filter and the records being displayed are filtered as the user types. May be followed by a number to indicate the size of the text box (default size is 10). </description></item>\r
+                       <item><description>'s' - will generate a select list filter with all possible column values contained in the list. Populated using a 'select distinct' query if the grid's source is a SQL query.</description></item>\r
+                       <item><description>'m' - will generate multi-select checklist filter, with a checkbox text to each item.</description></item>\r
                </list>\r
-               <para>Default value is "proto_min", which loads prototype 1.7 from the server control.</para>\r
        </summary>\r
-</member><member name="F:Rico.LoadClient.Logging">\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.filterColId">\r
        <summary>\r
- Enable Javascript console logging? Useful for debugging. Default is false.\r
+ This setting allows the filterUI to filter a different column than where it is displayed.\r
+ This is particularly useful for dates, where you can show a year selection on an OrderDate date column for example,\r
+ but actually have it filter a hidden column OrderYear=year(OrderDate).\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.Language">\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.ConfirmDeleteColumn">\r
        <summary>\r
- Best left unset, in which case language will be set automatically based on request's HTTP_ACCEPT_LANGUAGE\r
- However, if you want to present the same locale settings to all users, then you can set this value to force the desired locale.\r
+ The text content of this column will be included in delete confirmation messages.\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.LoadBaseLib">\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.multiplier">\r
        <summary>\r
- Load base Javascript library (prototype, jQuery, etc)?\r
- Default is true.\r
- Set to false if library is being loaded another way. In this case, a BaseLib value is still required to indicate\r
- which library Rico should connect to.\r
+ If column is a number, this value can be used to multiply the database value by a factor before displaying it in the grid.\r
+ Default is 1. Automatically set to 100 if DataType is percent.\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.Striping">\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.decPlaces">\r
        <summary>\r
- Apply row striping to LiveGrids? Default is true. Applies only when themes are used.\r
+ If column is a number, this is the number of digits displayed to the right of the decimal point. Default is 0.\r
+ If DataType is dollar or euro, then decPlaces is automatically set to 2.\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.SupportedLangs">\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.thouSep">\r
        <summary>\r
- Comma separated list of 2 letter locales that Rico supports.\r
- Do not set unless you have developed your own locale file.\r
+ If column is a number, display the value with a thousands separator? Default is true.\r
  </summary>\r
-</member><member name="F:Rico.LoadClient.jQueryThemePath">\r
+       <remarks></remarks>\r
+</member><member name="F:Rico.Column.negSign">\r
        <summary>\r
- URL to load jQuery themes from.\r
- Default is http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/\r
- Override this value if you have a jQuery theme on your own server.\r
+ Specifies how negative numbers should be displayed. Possible values:\r
+ <list>\r
+                       <item><description>L=leading minus (default)</description></item>\r
+                       <item><description>T=trailing minus</description></item>\r
+                       <item><description>P=parentheses</description></item>\r
+               </list>\r
+       </summary>\r
+</member><member name="F:Rico.Column.prefix">\r
+       <summary>\r
+ If column is a number, this string is prepended to the number before display.\r
+ Useful for currency symbols.\r
  </summary>\r
-</member><member name="P:Rico.LoadClient.LoadedLanguage">\r
+</member><member name="F:Rico.Column.suffix">\r
        <summary>\r
- Returns the 2 character string representing the Rico locale file that was actually used on the client.\r
- If there is no match between the requested languages and the available locale files, then english is used.\r
- Only available during the render phase.\r
+ If column is a number, this string is appended to the number before display.\r
+ Useful for percentages and temperature values. Automatically set to % if DataType is percent.\r
  </summary>\r
-</member><member name="P:Rico.LoadClient.checkQueryString">\r
+</member><member name="F:Rico.Column.HdgStyleID">\r
        <summary>\r
- Load settings from QueryString?  true for demo, false for anything else. Default is false.\r
+ Used to give the column heading a specific style.\r
+ In most cases this is not necessary, as the heading will be styled according to the theme.\r
  </summary>\r
-</member><member name="P:Rico.LoadClient.checkWebConfig">\r
+</member><member name="F:Rico.Column.isNullable">\r
        <summary>\r
- Load settings from web.config file? Default is false.\r
- If true, then the appSettings section of web.config will be checked for the following keys (which affect the similarly named properties):\r
- <list type="bullet">\r
-                       <item><description>rico_BaseLib</description></item>\r
-                       <item><description>rico_Language</description></item>\r
-                       <item><description>rico_jTheme</description></item>\r
-                       <item><description>rico_rTheme</description></item>\r
-                       <item><description>rico_Logging</description></item>\r
-                       <item><description>rico_LoadBaseLib</description></item>\r
-                       <item><description>rico_Striping</description></item>\r
-               </list>\r
-               <para>Boolean values in web.config should be the strings "true" or "1" for true, and "false" or "0" for false.</para>\r
-       </summary>\r
-</member><member name="M:Rico.LoadClient.InitLiveGrids(System.Web.UI.HtmlTextWriter)">\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+</member><member name="F:Rico.Column.Writeable">\r
        <summary>\r
- Initialize all grids on the page\r
- Initialize grids with fixed # of rows first,\r
- then initialize grids with variable # of rows\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
  </summary>\r
-</member><member name="P:Rico.LoadClient.jTheme">\r
+</member><member name="F:Rico.Column.isKey">\r
        <summary>\r
- Set theme to one of the jQuery Themeroller themes. Default is no theme.\r
- Valid values are:\r
-   black-tie, blitzer, cupertino, dark-hive, dot-luv, eggplant, excite-bike, flick, \r
-   hot-sneaks, humanity, le-frog, mint-choc, overcast, pepper-grinder, redmond, smoothness, \r
-   south-street, start, sunny, swanky-purse, trontastic, ui-darkness, ui-lightness, vader\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
  </summary>\r
-       <value></value>\r
+</member><member name="F:Rico.Column.Length">\r
+       <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+</member><member name="F:Rico.Column.TypeName">\r
+       <summary>\r
+ Database property - set automatically by LiveGrid.GetColumnInfoFromDb()\r
+ </summary>\r
+</member><member name="F:Rico.Column.ColGroupIdx">\r
+       <summary>\r
+ For internal use\r
+ </summary>\r
+</member><member name="P:Rico.Column.Heading">\r
+       <summary>\r
+ Text displayed in the column heading.\r
+ </summary>\r
+</member><member name="P:Rico.Column.Width">\r
+       <summary>\r
+ Initial width of the column in pixels. Default is to use LiveGrid.defaultWidth.\r
+ </summary>\r
+</member><member name="M:Rico.Column.NumberFormat">\r
+       <summary>\r
+ Returns an Excel-type number format string based on decPlaces, thouSep, prefix.\r
+ </summary>\r
+       <returns></returns>\r
        <remarks></remarks>\r
-</member><member name="P:Rico.LoadClient.rTheme">\r
+</member><member name="P:Rico.Column.DataType">\r
        <summary>\r
- Set theme to one of the Rico themes. Default is no theme.\r
- Valid values are:\r
-   coffee-with-milk, grayedout, greenHdg, seaglass, warmfall\r
+ Type of data stored in the column.\r
  </summary>\r
        <value></value>\r
+       <returns></returns>\r
        <remarks></remarks>\r
-</member><member name="T:Rico.LoadClient">\r
+</member><member name="T:Rico.Column">\r
        <summary>\r
- Loads the various Javascript, CSS, and image files required to make Rico function.\r
+ Base class for a LiveGrid column\r
  </summary>\r
-</member><member name="P:Rico.My.Resources.Resources.ResourceManager">\r
-       <summary>\r
-  Returns the cached ResourceManager instance used by this class.\r
-</summary>\r
-</member><member name="P:Rico.My.Resources.Resources.Culture">\r
+</member><member name="F:Rico.EditCol.FormView">\r
        <summary>\r
-  Overrides the current thread's CurrentUICulture property for all\r
-  resource lookups using this strongly typed resource class.\r
-</summary>\r
-</member><member name="T:Rico.My.Resources.Resources">\r
-       <summary>\r
-  A strongly-typed resource class, for looking up localized strings, etc.\r
-</summary>\r
+               <list type="table">\r
+                       <item><term>True</term><description>Item is shown on the entry form (default)</description></item>\r
+                       <item><term>False</term><description>Item is not shown on the form</description></item>\r
+               </list>\r
+       </summary>\r
+</member><member name="P:Rico.EditCol.EntryType">\r
+       <summary>\r
+ Code indicating the ui to be used for data entry\r
+ <list type="table">\r
+                       <item><term>TA</term><description>Text Area</description></item>\r
+                       <item><term>R</term><description>Radio button list</description></item>\r
+                       <item><term>RL</term><description>Radio buttons via lookup (field is a foreign key)</description></item>\r
+                       <item><term>S</term><description>Select list</description></item>\r
+                       <item><term>SL</term><description>Select list via lookup (field is a foreign key)</description></item>\r
+                       <item><term>CL</term><description>Custom widget via lookup (field is a foreign key)</description></item>\r
+                       <item><term>N</term><description>Select list of distinct column values, use allowed to add new values</description></item>\r
+                       <item><term>B</term><description>Text, non-blank</description></item>\r
+                       <item><term>T</term><description>Text</description></item>\r
+                       <item><term>I</term><description>Integer</description></item>\r
+                       <item><term>F</term><description>Floating point number</description></item>\r
+                       <item><term>tinyMCE</term><description>Rich text via tinyMCE</description></item>\r
+                       <item><term>D</term><description>Date</description></item>\r
+                       <item><term>TS</term><description>Time stamp</description></item>\r
+                       <item><term>H</term><description>Hidden</description></item>\r
+               </list>\r
+       </summary>\r
 </member><member name="T:Rico.SimpleGrid">\r
        <summary>\r
  Class to define a SimpleGrid\r
index 8626f76..04e9a7d 100644 (file)
@@ -108,3 +108,8 @@ Methods and properties defined in ricoLiveGridAjax.js:
 ------------------------------------------------------
 Rico.Buffer.AjaxXML -> renamed to Rico.Buffer.AjaxLoadOnce (clearer name, since it can be used to load JSON or XML data)
 
+
+
+Methods and properties defined in ricoLiveGridControls.js:
+----------------------------------------------------------
+Rico.TableColumn.HighlightCell -> removed, use styles instead
index 52ef3e8..fc2f5d9 100644 (file)
@@ -3,7 +3,6 @@
 <head>\r
 <title>Rico 3.0</title>\r
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\r
-<base target="content">\r
 \r
 <!-- #INCLUDE FILE = "../../plugins/asp/LoadRicoClient.asp" -->\r
 <%\r
@@ -34,7 +33,7 @@ ul li {
 </div>
 \r
 <div class='top'>\r
-<form action='' method='get' id='form1'>\r
+<form action='' method='get' id='form1' target="content">\r
 <ul>\r
 <li id='demolist'>Example: <span id='demospan'></span>\r
 <li>Theme: <span id='themespan'></span><input type='hidden' name='theme' id='theme' value=''>\r
index dfeb0f0..d7939e3 100644 (file)
@@ -18,21 +18,20 @@ set RicoClient = Nothing
 var dialog;\r
 \r
 Rico.onLoad( function() {\r
-  var opts = {\r
+  var grid_options = {\r
     defaultWidth : 90,\r
     useUnformattedColWidth: false,\r
     menuEvent     : 'click',\r
     frozenColumns : 1,\r
     visibleRows   : 6,\r
     highlightElem: 'cursorRow',\r
-    columnSpecs  : [{width:200},'specQty','specQty','specQty','specQty','specQty']\r
+    columnSpecs  : [{width:200},{type: 'number'},{type: 'number'},{type: 'number'},{type: 'number'},{type: 'number'}]\r
   };\r
-  var ex1=new Rico.LiveGrid ('population', new Rico.Buffer.Base(document.getElementById('population').tBodies[0]), opts);\r
-  ex1.menu=new Rico.GridMenu();\r
+  var grid=new Rico.LiveGrid ('population', new Rico.Buffer.AjaxLoadOnce('../data/population.xml'), grid_options);\r
+  grid.menu=new Rico.GridMenu();\r
   new Rico.Accordion( 'accExample', {panelHeight:160});\r
   new Rico.TabbedPanel( 'tabsExample', {panelHeight:160});\r
   var cal=new Rico.CalendarControl("ricoCal",{position:'auto'});\r
-  cal.atLoad();\r
   cal.selectNow();\r
   cal.openPopup();\r
   var links=Rico.select('#themeGallery a');\r
@@ -88,238 +87,6 @@ The widgets are compatible with all base libraries and themes.
  <tr>  <td class='ricoFrozen'></td>  <td colspan=5>Population (thousands)</td> </tr>\r
  <tr>  <td class='ricoFrozen'>Country or area</td>  <td>1950</td>  <td>2009</td>  <td>2015</td>  <td>2025</td>  <td>2050</td> </tr>\r
 </thead>\r
-<tbody>\r
- <tr>  <td>Afghanistan</td>  <td>8151</td>  <td>28150</td>  <td>34246</td>  <td>44970</td>  <td>73938</td> </tr>\r
- <tr>  <td>Albania</td>  <td>1215</td>  <td>3155</td>  <td>3256</td>  <td>3395</td>  <td>3303</td> </tr>\r
- <tr>  <td>Algeria</td>  <td>8753</td>  <td>34895</td>  <td>38088</td>  <td>42882</td>  <td>49610</td> </tr>\r
- <tr>  <td>American Samoa</td>  <td>19</td>  <td>67</td>  <td>74</td>  <td>86</td>  <td>107</td> </tr>\r
- <tr>  <td>Andorra</td>  <td>6</td>  <td>86</td>  <td>93</td>  <td>107</td>  <td>137</td> </tr>\r
- <tr>  <td>Angola</td>  <td>4148</td>  <td>18498</td>  <td>21690</td>  <td>27441</td>  <td>42267</td> </tr>\r
- <tr>  <td>Anguilla</td>  <td>5</td>  <td>15</td>  <td>17</td>  <td>18</td>  <td>20</td> </tr>\r
- <tr>  <td>Antigua and Barbuda</td>  <td>46</td>  <td>88</td>  <td>93</td>  <td>101</td>  <td>112</td> </tr>\r
- <tr>  <td>Argentina</td>  <td>17150</td>  <td>40276</td>  <td>42548</td>  <td>45883</td>  <td>50943</td> </tr>\r
- <tr>  <td>Armenia</td>  <td>1354</td>  <td>3083</td>  <td>3139</td>  <td>3181</td>  <td>3018</td> </tr>\r
- <tr>  <td>Aruba</td>  <td>38</td>  <td>107</td>  <td>109</td>  <td>112</td>  <td>106</td> </tr>\r
- <tr>  <td>Australia</td>  <td>8219</td>  <td>21293</td>  <td>22607</td>  <td>24703</td>  <td>28724</td> </tr>\r
- <tr>  <td>Austria</td>  <td>6936</td>  <td>8364</td>  <td>8467</td>  <td>8600</td>  <td>8515</td> </tr>\r
- <tr>  <td>Azerbaijan</td>  <td>2896</td>  <td>8832</td>  <td>9426</td>  <td>10128</td>  <td>10579</td> </tr>\r
- <tr>  <td>Bahamas</td>  <td>79</td>  <td>342</td>  <td>366</td>  <td>402</td>  <td>455</td> </tr>\r
- <tr>  <td>Bahrain</td>  <td>116</td>  <td>791</td>  <td>882</td>  <td>1021</td>  <td>1277</td> </tr>\r
- <tr>  <td>Bangladesh</td>  <td>43595</td>  <td>162221</td>  <td>175217</td>  <td>195012</td>  <td>222495</td> </tr>\r
- <tr>  <td>Barbados</td>  <td>211</td>  <td>256</td>  <td>260</td>  <td>262</td>  <td>237</td> </tr>\r
- <tr>  <td>Belarus</td>  <td>7745</td>  <td>9634</td>  <td>9355</td>  <td>8851</td>  <td>7275</td> </tr>\r
- <tr>  <td>Belgium</td>  <td>8628</td>  <td>10647</td>  <td>10878</td>  <td>11191</td>  <td>11493</td> </tr>\r
- <tr>  <td>Belize</td>  <td>69</td>  <td>307</td>  <td>344</td>  <td>404</td>  <td>506</td> </tr>\r
- <tr>  <td>Benin</td>  <td>2050</td>  <td>8935</td>  <td>10647</td>  <td>13767</td>  <td>21982</td> </tr>\r
- <tr>  <td>Bermuda</td>  <td>37</td>  <td>65</td>  <td>65</td>  <td>66</td>  <td>63</td> </tr>\r
- <tr>  <td>Bhutan</td>  <td>168</td>  <td>697</td>  <td>770</td>  <td>865</td>  <td>1013</td> </tr>\r
- <tr>  <td>Bolivia</td>  <td>2714</td>  <td>9863</td>  <td>10854</td>  <td>12368</td>  <td>14908</td> </tr>\r
- <tr>  <td>Bosnia and Herzegovina</td>  <td>2661</td>  <td>3767</td>  <td>3727</td>  <td>3608</td>  <td>3008</td> </tr>\r
- <tr>  <td>Botswana</td>  <td>413</td>  <td>1950</td>  <td>2106</td>  <td>2337</td>  <td>2758</td> </tr>\r
- <tr>  <td>Brazil</td>  <td>53975</td>  <td>193734</td>  <td>202866</td>  <td>213802</td>  <td>218512</td> </tr>\r
- <tr>  <td>British Virgin Islands</td>  <td>7</td>  <td>23</td>  <td>24</td>  <td>26</td>  <td>28</td> </tr>\r
- <tr>  <td>Brunei Darussalam</td>  <td>48</td>  <td>400</td>  <td>443</td>  <td>513</td>  <td>658</td> </tr>\r
- <tr>  <td>Bulgaria</td>  <td>7251</td>  <td>7545</td>  <td>7263</td>  <td>6752</td>  <td>5392</td> </tr>\r
- <tr>  <td>Burkina Faso</td>  <td>4080</td>  <td>15757</td>  <td>19013</td>  <td>24837</td>  <td>40830</td> </tr>\r
- <tr>  <td>Burundi</td>  <td>2456</td>  <td>8303</td>  <td>9413</td>  <td>11161</td>  <td>14846</td> </tr>\r
- <tr>  <td>Cambodia</td>  <td>4346</td>  <td>14805</td>  <td>16357</td>  <td>18973</td>  <td>23795</td> </tr>\r
- <tr>  <td>Cameroon</td>  <td>4466</td>  <td>19522</td>  <td>22169</td>  <td>26478</td>  <td>36736</td> </tr>\r
- <tr>  <td>Canada</td>  <td>13737</td>  <td>33573</td>  <td>35493</td>  <td>38659</td>  <td>44414</td> </tr>\r
- <tr>  <td>Cape Verde</td>  <td>146</td>  <td>506</td>  <td>548</td>  <td>616</td>  <td>703</td> </tr>\r
- <tr>  <td>Cayman Islands</td>  <td>7</td>  <td>56</td>  <td>59</td>  <td>63</td>  <td>66</td> </tr>\r
- <tr>  <td>Central African Republic</td>  <td>1327</td>  <td>4422</td>  <td>4927</td>  <td>5747</td>  <td>7603</td> </tr>\r
- <tr>  <td>Chad</td>  <td>2429</td>  <td>11206</td>  <td>13120</td>  <td>16906</td>  <td>27776</td> </tr>\r
- <tr>  <td>Channel Islands</td>  <td>102</td>  <td>150</td>  <td>151</td>  <td>152</td>  <td>144</td> </tr>\r
- <tr>  <td>Chile</td>  <td>6082</td>  <td>16970</td>  <td>17926</td>  <td>19266</td>  <td>20657</td> </tr>\r
- <tr>  <td>China</td>  <td>544951</td>  <td>1345751</td>  <td>1395998</td>  <td>1453140</td>  <td>1417045</td> </tr>\r
- <tr>  <td>China, Hong Kong SAR</td>  <td>1974</td>  <td>7022</td>  <td>7398</td>  <td>7969</td>  <td>8623</td> </tr>\r
- <tr>  <td>China, Macao SAR</td>  <td>190</td>  <td>538</td>  <td>568</td>  <td>603</td>  <td>593</td> </tr>\r
- <tr>  <td>Colombia</td>  <td>12000</td>  <td>45660</td>  <td>49385</td>  <td>54920</td>  <td>62877</td> </tr>\r
- <tr>  <td>Comoros</td>  <td>156</td>  <td>676</td>  <td>767</td>  <td>907</td>  <td>1226</td> </tr>\r
- <tr>  <td>Congo</td>  <td>808</td>  <td>3683</td>  <td>4225</td>  <td>5094</td>  <td>6863</td> </tr>\r
- <tr>  <td>Cook Islands</td>  <td>15</td>  <td>20</td>  <td>20</td>  <td>21</td>  <td>24</td> </tr>\r
- <tr>  <td>Costa Rica</td>  <td>966</td>  <td>4579</td>  <td>4957</td>  <td>5521</td>  <td>6373</td> </tr>\r
- <tr>  <td>Côte d'Ivoire</td>  <td>2505</td>  <td>21075</td>  <td>24210</td>  <td>29738</td>  <td>43373</td> </tr>\r
- <tr>  <td>Croatia</td>  <td>3850</td>  <td>4416</td>  <td>4370</td>  <td>4254</td>  <td>3825</td> </tr>\r
- <tr>  <td>Cuba</td>  <td>5920</td>  <td>11204</td>  <td>11213</td>  <td>11148</td>  <td>9725</td> </tr>\r
- <tr>  <td>Cyprus</td>  <td>494</td>  <td>871</td>  <td>925</td>  <td>1014</td>  <td>1175</td> </tr>\r
- <tr>  <td>Czech Republic</td>  <td>8925</td>  <td>10369</td>  <td>10510</td>  <td>10573</td>  <td>10294</td> </tr>\r
- <tr>  <td>Dem. People's Rep. of Korea</td>  <td>9737</td>  <td>23906</td>  <td>24399</td>  <td>25128</td>  <td>24562</td> </tr>\r
- <tr>  <td>Dem. Republic of the Congo</td>  <td>12184</td>  <td>66020</td>  <td>77419</td>  <td>98123</td>  <td>147512</td> </tr>\r
- <tr>  <td>Denmark</td>  <td>4271</td>  <td>5470</td>  <td>5523</td>  <td>5590</td>  <td>5551</td> </tr>\r
- <tr>  <td>Djibouti</td>  <td>62</td>  <td>864</td>  <td>953</td>  <td>1111</td>  <td>1469</td> </tr>\r
- <tr>  <td>Dominica</td>  <td>51</td>  <td>67</td>  <td>67</td>  <td>68</td>  <td>66</td> </tr>\r
- <tr>  <td>Dominican Republic</td>  <td>2427</td>  <td>10090</td>  <td>10867</td>  <td>11973</td>  <td>13441</td> </tr>\r
- <tr>  <td>Ecuador</td>  <td>3387</td>  <td>13625</td>  <td>14596</td>  <td>16074</td>  <td>17989</td> </tr>\r
- <tr>  <td>Egypt</td>  <td>21514</td>  <td>82999</td>  <td>91778</td>  <td>104970</td>  <td>129533</td> </tr>\r
- <tr>  <td>El Salvador</td>  <td>2200</td>  <td>6163</td>  <td>6383</td>  <td>6895</td>  <td>7882</td> </tr>\r
- <tr>  <td>Equatorial Guinea</td>  <td>226</td>  <td>676</td>  <td>781</td>  <td>971</td>  <td>1445</td> </tr>\r
- <tr>  <td>Eritrea</td>  <td>1141</td>  <td>5073</td>  <td>6009</td>  <td>7404</td>  <td>10787</td> </tr>\r
- <tr>  <td>Estonia</td>  <td>1101</td>  <td>1340</td>  <td>1337</td>  <td>1321</td>  <td>1233</td> </tr>\r
- <tr>  <td>Ethiopia</td>  <td>18434</td>  <td>82825</td>  <td>96237</td>  <td>119822</td>  <td>173811</td> </tr>\r
- <tr>  <td>Faeroe Islands</td>  <td>32</td>  <td>50</td>  <td>52</td>  <td>55</td>  <td>58</td> </tr>\r
- <tr>  <td>Falkland Islands (Malvinas)</td>  <td>2</td>  <td>3</td>  <td>3</td>  <td>3</td>  <td>3</td> </tr>\r
- <tr>  <td>Fiji</td>  <td>289</td>  <td>849</td>  <td>874</td>  <td>905</td>  <td>910</td> </tr>\r
- <tr>  <td>Finland</td>  <td>4009</td>  <td>5326</td>  <td>5432</td>  <td>5533</td>  <td>5445</td> </tr>\r
- <tr>  <td>France</td>  <td>41832</td>  <td>62343</td>  <td>63900</td>  <td>65769</td>  <td>67668</td> </tr>\r
- <tr>  <td>French Guiana</td>  <td>25</td>  <td>226</td>  <td>261</td>  <td>323</td>  <td>462</td> </tr>\r
- <tr>  <td>French Polynesia</td>  <td>61</td>  <td>269</td>  <td>289</td>  <td>318</td>  <td>354</td> </tr>\r
- <tr>  <td>Gabon</td>  <td>469</td>  <td>1475</td>  <td>1639</td>  <td>1915</td>  <td>2471</td> </tr>\r
- <tr>  <td>Gambia</td>  <td>258</td>  <td>1705</td>  <td>1985</td>  <td>2478</td>  <td>3763</td> </tr>\r
- <tr>  <td>Georgia</td>  <td>3527</td>  <td>4260</td>  <td>4084</td>  <td>3888</td>  <td>3267</td> </tr>\r
- <tr>  <td>Germany</td>  <td>68376</td>  <td>82167</td>  <td>81346</td>  <td>79258</td>  <td>70504</td> </tr>\r
- <tr>  <td>Ghana</td>  <td>4981</td>  <td>23837</td>  <td>26925</td>  <td>32233</td>  <td>45213</td> </tr>\r
- <tr>  <td>Gibraltar</td>  <td>20</td>  <td>31</td>  <td>31</td>  <td>32</td>  <td>30</td> </tr>\r
- <tr>  <td>Greece</td>  <td>7566</td>  <td>11161</td>  <td>11261</td>  <td>11274</td>  <td>10939</td> </tr>\r
- <tr>  <td>Greenland</td>  <td>23</td>  <td>57</td>  <td>57</td>  <td>56</td>  <td>50</td> </tr>\r
- <tr>  <td>Grenada</td>  <td>77</td>  <td>104</td>  <td>107</td>  <td>109</td>  <td>97</td> </tr>\r
- <tr>  <td>Guadeloupe</td>  <td>210</td>  <td>465</td>  <td>476</td>  <td>489</td>  <td>477</td> </tr>\r
- <tr>  <td>Guam</td>  <td>60</td>  <td>178</td>  <td>191</td>  <td>211</td>  <td>242</td> </tr>\r
- <tr>  <td>Guatemala</td>  <td>3146</td>  <td>14027</td>  <td>16227</td>  <td>19927</td>  <td>27480</td> </tr>\r
- <tr>  <td>Guinea</td>  <td>2619</td>  <td>10069</td>  <td>11844</td>  <td>15158</td>  <td>23975</td> </tr>\r
- <tr>  <td>Guinea-Bissau</td>  <td>518</td>  <td>1611</td>  <td>1848</td>  <td>2296</td>  <td>3555</td> </tr>\r
- <tr>  <td>Guyana</td>  <td>423</td>  <td>762</td>  <td>754</td>  <td>732</td>  <td>558</td> </tr>\r
- <tr>  <td>Haiti</td>  <td>3221</td>  <td>10033</td>  <td>10957</td>  <td>12476</td>  <td>15485</td> </tr>\r
- <tr>  <td>Holy See</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td> </tr>\r
- <tr>  <td>Honduras</td>  <td>1487</td>  <td>7466</td>  <td>8386</td>  <td>9844</td>  <td>12402</td> </tr>\r
- <tr>  <td>Hungary</td>  <td>9338</td>  <td>9993</td>  <td>9874</td>  <td>9647</td>  <td>8934</td> </tr>\r
- <tr>  <td>Iceland</td>  <td>143</td>  <td>323</td>  <td>353</td>  <td>384</td>  <td>407</td> </tr>\r
- <tr>  <td>India</td>  <td>371857</td>  <td>1198003</td>  <td>1294192</td>  <td>1431272</td>  <td>1613800</td> </tr>\r
- <tr>  <td>Indonesia</td>  <td>77152</td>  <td>229965</td>  <td>244191</td>  <td>263287</td>  <td>288110</td> </tr>\r
- <tr>  <td>Iran (Islamic Republic of)</td>  <td>16913</td>  <td>74196</td>  <td>79454</td>  <td>87134</td>  <td>96975</td> </tr>\r
- <tr>  <td>Iraq</td>  <td>5719</td>  <td>30747</td>  <td>35884</td>  <td>44692</td>  <td>63995</td> </tr>\r
- <tr>  <td>Ireland</td>  <td>2969</td>  <td>4515</td>  <td>4886</td>  <td>5370</td>  <td>6295</td> </tr>\r
- <tr>  <td>Isle of Man</td>  <td>55</td>  <td>80</td>  <td>81</td>  <td>80</td>  <td>75</td> </tr>\r
- <tr>  <td>Israel</td>  <td>1258</td>  <td>7170</td>  <td>7823</td>  <td>8769</td>  <td>10649</td> </tr>\r
- <tr>  <td>Italy</td>  <td>46367</td>  <td>59870</td>  <td>60604</td>  <td>60018</td>  <td>57066</td> </tr>\r
- <tr>  <td>Jamaica</td>  <td>1403</td>  <td>2719</td>  <td>2786</td>  <td>2866</td>  <td>2683</td> </tr>\r
- <tr>  <td>Japan</td>  <td>82824</td>  <td>127156</td>  <td>125791</td>  <td>120793</td>  <td>101659</td> </tr>\r
- <tr>  <td>Jordan</td>  <td>472</td>  <td>6316</td>  <td>6957</td>  <td>8088</td>  <td>10241</td> </tr>\r
- <tr>  <td>Kazakhstan</td>  <td>6703</td>  <td>15637</td>  <td>16289</td>  <td>17025</td>  <td>17848</td> </tr>\r
- <tr>  <td>Kenya</td>  <td>6077</td>  <td>39802</td>  <td>46433</td>  <td>57573</td>  <td>85410</td> </tr>\r
- <tr>  <td>Kiribati</td>  <td>26</td>  <td>98</td>  <td>107</td>  <td>123</td>  <td>151</td> </tr>\r
- <tr>  <td>Kuwait</td>  <td>152</td>  <td>2985</td>  <td>3378</td>  <td>3988</td>  <td>5240</td> </tr>\r
- <tr>  <td>Kyrgyzstan</td>  <td>1740</td>  <td>5482</td>  <td>5877</td>  <td>6378</td>  <td>6882</td> </tr>\r
- <tr>  <td>Lao People's Dem. Republic</td>  <td>1666</td>  <td>6320</td>  <td>7028</td>  <td>8273</td>  <td>10744</td> </tr>\r
- <tr>  <td>Latvia</td>  <td>1949</td>  <td>2249</td>  <td>2197</td>  <td>2101</td>  <td>1854</td> </tr>\r
- <tr>  <td>Lebanon</td>  <td>1443</td>  <td>4224</td>  <td>4426</td>  <td>4736</td>  <td>5033</td> </tr>\r
- <tr>  <td>Lesotho</td>  <td>734</td>  <td>2067</td>  <td>2168</td>  <td>2306</td>  <td>2491</td> </tr>\r
- <tr>  <td>Liberia</td>  <td>824</td>  <td>3955</td>  <td>4665</td>  <td>5858</td>  <td>8841</td> </tr>\r
- <tr>  <td>Libyan Arab Jamahiriya</td>  <td>1029</td>  <td>6420</td>  <td>7158</td>  <td>8144</td>  <td>9819</td> </tr>\r
- <tr>  <td>Liechtenstein</td>  <td>14</td>  <td>36</td>  <td>38</td>  <td>40</td>  <td>45</td> </tr>\r
- <tr>  <td>Lithuania</td>  <td>2567</td>  <td>3287</td>  <td>3143</td>  <td>2985</td>  <td>2579</td> </tr>\r
- <tr>  <td>Luxembourg</td>  <td>296</td>  <td>486</td>  <td>520</td>  <td>582</td>  <td>733</td> </tr>\r
- <tr>  <td>Madagascar</td>  <td>4084</td>  <td>19625</td>  <td>22853</td>  <td>28595</td>  <td>42693</td> </tr>\r
- <tr>  <td>Malawi</td>  <td>2881</td>  <td>15263</td>  <td>17998</td>  <td>23194</td>  <td>36575</td> </tr>\r
- <tr>  <td>Malaysia</td>  <td>6110</td>  <td>27468</td>  <td>30041</td>  <td>33770</td>  <td>39664</td> </tr>\r
- <tr>  <td>Maldives</td>  <td>82</td>  <td>309</td>  <td>338</td>  <td>384</td>  <td>455</td> </tr>\r
- <tr>  <td>Mali</td>  <td>4268</td>  <td>13010</td>  <td>14993</td>  <td>18603</td>  <td>28260</td> </tr>\r
- <tr>  <td>Malta</td>  <td>312</td>  <td>409</td>  <td>417</td>  <td>426</td>  <td>413</td> </tr>\r
- <tr>  <td>Marshall Islands</td>  <td>13</td>  <td>62</td>  <td>70</td>  <td>79</td>  <td>92</td> </tr>\r
- <tr>  <td>Martinique</td>  <td>222</td>  <td>405</td>  <td>411</td>  <td>418</td>  <td>393</td> </tr>\r
- <tr>  <td>Mauritania</td>  <td>651</td>  <td>3291</td>  <td>3732</td>  <td>4443</td>  <td>6061</td> </tr>\r
- <tr>  <td>Mauritius</td>  <td>493</td>  <td>1288</td>  <td>1337</td>  <td>1400</td>  <td>1426</td> </tr>\r
- <tr>  <td>Mayotte</td>  <td>15</td>  <td>194</td>  <td>224</td>  <td>277</td>  <td>386</td> </tr>\r
- <tr>  <td>Mexico</td>  <td>27741</td>  <td>109610</td>  <td>115528</td>  <td>123366</td>  <td>128964</td> </tr>\r
- <tr>  <td>Micronesia (Fed. States of)</td>  <td>32</td>  <td>111</td>  <td>114</td>  <td>122</td>  <td>128</td> </tr>\r
- <tr>  <td>Moldova (Republic of)</td>  <td>2341</td>  <td>3604</td>  <td>3462</td>  <td>3291</td>  <td>2734</td> </tr>\r
- <tr>  <td>Monaco</td>  <td>20</td>  <td>33</td>  <td>33</td>  <td>35</td>  <td>38</td> </tr>\r
- <tr>  <td>Mongolia</td>  <td>761</td>  <td>2671</td>  <td>2855</td>  <td>3134</td>  <td>3446</td> </tr>\r
- <tr>  <td>Montenegro</td>  <td>399</td>  <td>624</td>  <td>627</td>  <td>633</td>  <td>618</td> </tr>\r
- <tr>  <td>Montserrat</td>  <td>14</td>  <td>6</td>  <td>6</td>  <td>7</td>  <td>7</td> </tr>\r
- <tr>  <td>Morocco</td>  <td>8953</td>  <td>31993</td>  <td>34330</td>  <td>37865</td>  <td>42583</td> </tr>\r
- <tr>  <td>Mozambique</td>  <td>6442</td>  <td>22894</td>  <td>25957</td>  <td>31190</td>  <td>44148</td> </tr>\r
- <tr>  <td>Myanmar</td>  <td>17158</td>  <td>50020</td>  <td>53087</td>  <td>57585</td>  <td>63373</td> </tr>\r
- <tr>  <td>Namibia</td>  <td>485</td>  <td>2171</td>  <td>2412</td>  <td>2810</td>  <td>3588</td> </tr>\r
- <tr>  <td>Nauru</td>  <td>3</td>  <td>10</td>  <td>11</td>  <td>11</td>  <td>11</td> </tr>\r
- <tr>  <td>Nepal</td>  <td>8126</td>  <td>29331</td>  <td>32503</td>  <td>38031</td>  <td>49028</td> </tr>\r
- <tr>  <td>Netherlands</td>  <td>10114</td>  <td>16592</td>  <td>16915</td>  <td>17348</td>  <td>17399</td> </tr>\r
- <tr>  <td>Netherlands Antilles</td>  <td>112</td>  <td>198</td>  <td>207</td>  <td>210</td>  <td>192</td> </tr>\r
- <tr>  <td>New Caledonia</td>  <td>65</td>  <td>250</td>  <td>271</td>  <td>304</td>  <td>362</td> </tr>\r
- <tr>  <td>New Zealand</td>  <td>1908</td>  <td>4266</td>  <td>4492</td>  <td>4831</td>  <td>5349</td> </tr>\r
- <tr>  <td>Nicaragua</td>  <td>1295</td>  <td>5743</td>  <td>6265</td>  <td>7058</td>  <td>8143</td> </tr>\r
- <tr>  <td>Niger</td>  <td>2462</td>  <td>15290</td>  <td>19150</td>  <td>27388</td>  <td>58216</td> </tr>\r
- <tr>  <td>Nigeria</td>  <td>36680</td>  <td>154729</td>  <td>175928</td>  <td>210057</td>  <td>289083</td> </tr>\r
- <tr>  <td>Niue</td>  <td>5</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td> </tr>\r
- <tr>  <td>Northern Mariana Islands</td>  <td>7</td>  <td>87</td>  <td>96</td>  <td>111</td>  <td>151</td> </tr>\r
- <tr>  <td>Norway</td>  <td>3265</td>  <td>4812</td>  <td>5036</td>  <td>5365</td>  <td>5947</td> </tr>\r
- <tr>  <td>Occupied Palestinian Territory</td>  <td>1005</td>  <td>4277</td>  <td>5090</td>  <td>6553</td>  <td>10265</td> </tr>\r
- <tr>  <td>Oman</td>  <td>456</td>  <td>2845</td>  <td>3198</td>  <td>3782</td>  <td>4878</td> </tr>\r
- <tr>  <td>Pakistan</td>  <td>41177</td>  <td>180808</td>  <td>205504</td>  <td>246286</td>  <td>335195</td> </tr>\r
- <tr>  <td>Palau</td>  <td>7</td>  <td>20</td>  <td>21</td>  <td>23</td>  <td>26</td> </tr>\r
- <tr>  <td>Panama</td>  <td>860</td>  <td>3454</td>  <td>3773</td>  <td>4267</td>  <td>5092</td> </tr>\r
- <tr>  <td>Papua New Guinea</td>  <td>1798</td>  <td>6732</td>  <td>7678</td>  <td>9265</td>  <td>12871</td> </tr>\r
- <tr>  <td>Paraguay</td>  <td>1473</td>  <td>6349</td>  <td>7007</td>  <td>8026</td>  <td>9867</td> </tr>\r
- <tr>  <td>Peru</td>  <td>7632</td>  <td>29165</td>  <td>31197</td>  <td>34528</td>  <td>39776</td> </tr>\r
- <tr>  <td>Philippines</td>  <td>19996</td>  <td>91983</td>  <td>101734</td>  <td>117270</td>  <td>146156</td> </tr>\r
- <tr>  <td>Pitcairn</td>  <td>0</td>  <td>0</td>  <td>0</td>  <td>0</td>  <td>0</td> </tr>\r
- <tr>  <td>Poland</td>  <td>24824</td>  <td>38074</td>  <td>37788</td>  <td>36964</td>  <td>32013</td> </tr>\r
- <tr>  <td>Portugal</td>  <td>8405</td>  <td>10707</td>  <td>10787</td>  <td>10706</td>  <td>10015</td> </tr>\r
- <tr>  <td>Puerto Rico</td>  <td>2218</td>  <td>3982</td>  <td>4074</td>  <td>4176</td>  <td>4103</td> </tr>\r
- <tr>  <td>Qatar</td>  <td>25</td>  <td>1409</td>  <td>1630</td>  <td>1848</td>  <td>2316</td> </tr>\r
- <tr>  <td>Republic of Korea</td>  <td>19211</td>  <td>48333</td>  <td>49153</td>  <td>49484</td>  <td>44077</td> </tr>\r
- <tr>  <td>Réunion</td>  <td>248</td>  <td>827</td>  <td>886</td>  <td>973</td>  <td>1096</td> </tr>\r
- <tr>  <td>Romania</td>  <td>16311</td>  <td>21275</td>  <td>20787</td>  <td>19961</td>  <td>17279</td> </tr>\r
- <tr>  <td>Russian Federation</td>  <td>102702</td>  <td>140874</td>  <td>137983</td>  <td>132345</td>  <td>116097</td> </tr>\r
- <tr>  <td>Rwanda</td>  <td>2162</td>  <td>9998</td>  <td>11743</td>  <td>14676</td>  <td>22082</td> </tr>\r
- <tr>  <td>Saint Helena</td>  <td>5</td>  <td>4</td>  <td>4</td>  <td>5</td>  <td>5</td> </tr>\r
- <tr>  <td>Saint Kitts and Nevis</td>  <td>46</td>  <td>52</td>  <td>56</td>  <td>61</td>  <td>69</td> </tr>\r
- <tr>  <td>Saint Lucia</td>  <td>83</td>  <td>172</td>  <td>182</td>  <td>198</td>  <td>217</td> </tr>\r
- <tr>  <td>Saint Pierre and Miquelon</td>  <td>5</td>  <td>6</td>  <td>6</td>  <td>6</td>  <td>6</td> </tr>\r
- <tr>  <td>St. Vincent and the Grenadines</td>  <td>67</td>  <td>109</td>  <td>110</td>  <td>111</td>  <td>119</td> </tr>\r
- <tr>  <td>Samoa</td>  <td>82</td>  <td>179</td>  <td>181</td>  <td>188</td>  <td>192</td> </tr>\r
- <tr>  <td>San Marino</td>  <td>13</td>  <td>31</td>  <td>32</td>  <td>33</td>  <td>33</td> </tr>\r
- <tr>  <td>Sao Tome and Principe</td>  <td>60</td>  <td>163</td>  <td>180</td>  <td>216</td>  <td>296</td> </tr>\r
- <tr>  <td>Saudi Arabia</td>  <td>3201</td>  <td>25721</td>  <td>28933</td>  <td>34176</td>  <td>43658</td> </tr>\r
- <tr>  <td>Senegal</td>  <td>2416</td>  <td>12534</td>  <td>14526</td>  <td>17861</td>  <td>26102</td> </tr>\r
- <tr>  <td>Serbia</td>  <td>6732</td>  <td>9850</td>  <td>9828</td>  <td>9720</td>  <td>9193</td> </tr>\r
- <tr>  <td>Seychelles</td>  <td>36</td>  <td>84</td>  <td>86</td>  <td>91</td>  <td>97</td> </tr>\r
- <tr>  <td>Sierra Leone</td>  <td>1944</td>  <td>5696</td>  <td>6557</td>  <td>8112</td>  <td>12446</td> </tr>\r
- <tr>  <td>Singapore</td>  <td>1022</td>  <td>4737</td>  <td>5059</td>  <td>5362</td>  <td>5221</td> </tr>\r
- <tr>  <td>Slovakia</td>  <td>3463</td>  <td>5406</td>  <td>5437</td>  <td>5413</td>  <td>4917</td> </tr>\r
- <tr>  <td>Slovenia</td>  <td>1473</td>  <td>2020</td>  <td>2044</td>  <td>2050</td>  <td>1954</td> </tr>\r
- <tr>  <td>Solomon Islands</td>  <td>90</td>  <td>523</td>  <td>599</td>  <td>725</td>  <td>1007</td> </tr>\r
- <tr>  <td>Somalia</td>  <td>2264</td>  <td>9133</td>  <td>10731</td>  <td>13922</td>  <td>23522</td> </tr>\r
- <tr>  <td>South Africa</td>  <td>13683</td>  <td>50110</td>  <td>51684</td>  <td>53766</td>  <td>56802</td> </tr>\r
- <tr>  <td>Spain</td>  <td>28009</td>  <td>44904</td>  <td>47203</td>  <td>49265</td>  <td>51260</td> </tr>\r
- <tr>  <td>Sri Lanka</td>  <td>8241</td>  <td>20238</td>  <td>21167</td>  <td>22033</td>  <td>21705</td> </tr>\r
- <tr>  <td>Sudan</td>  <td>9190</td>  <td>42272</td>  <td>47730</td>  <td>56688</td>  <td>75884</td> </tr>\r
- <tr>  <td>Suriname</td>  <td>215</td>  <td>520</td>  <td>547</td>  <td>586</td>  <td>619</td> </tr>\r
- <tr>  <td>Swaziland</td>  <td>273</td>  <td>1185</td>  <td>1287</td>  <td>1455</td>  <td>1749</td> </tr>\r
- <tr>  <td>Sweden</td>  <td>7014</td>  <td>9249</td>  <td>9498</td>  <td>9915</td>  <td>10571</td> </tr>\r
- <tr>  <td>Switzerland</td>  <td>4693</td>  <td>7568</td>  <td>7736</td>  <td>8020</td>  <td>8514</td> </tr>\r
- <tr>  <td>Syrian Arab Republic</td>  <td>3536</td>  <td>21906</td>  <td>24494</td>  <td>28592</td>  <td>36911</td> </tr>\r
- <tr>  <td>Tajikistan</td>  <td>1532</td>  <td>6952</td>  <td>7761</td>  <td>9075</td>  <td>11111</td> </tr>\r
- <tr>  <td>TFYR Macedonia</td>  <td>1230</td>  <td>2042</td>  <td>2045</td>  <td>2037</td>  <td>1857</td> </tr>\r
- <tr>  <td>Thailand</td>  <td>20607</td>  <td>67764</td>  <td>69939</td>  <td>72628</td>  <td>73361</td> </tr>\r
- <tr>  <td>Timor-Leste</td>  <td>433</td>  <td>1134</td>  <td>1385</td>  <td>1869</td>  <td>3217</td> </tr>\r
- <tr>  <td>Togo</td>  <td>1329</td>  <td>6619</td>  <td>7607</td>  <td>9282</td>  <td>13196</td> </tr>\r
- <tr>  <td>Tokelau</td>  <td>2</td>  <td>1</td>  <td>1</td>  <td>1</td>  <td>1</td> </tr>\r
- <tr>  <td>Tonga</td>  <td>47</td>  <td>104</td>  <td>105</td>  <td>112</td>  <td>123</td> </tr>\r
- <tr>  <td>Trinidad and Tobago</td>  <td>636</td>  <td>1339</td>  <td>1368</td>  <td>1388</td>  <td>1278</td> </tr>\r
- <tr>  <td>Tunisia</td>  <td>3530</td>  <td>10272</td>  <td>10884</td>  <td>11797</td>  <td>12711</td> </tr>\r
- <tr>  <td>Turkey</td>  <td>21484</td>  <td>74816</td>  <td>79966</td>  <td>87364</td>  <td>97389</td> </tr>\r
- <tr>  <td>Turkmenistan</td>  <td>1211</td>  <td>5110</td>  <td>5509</td>  <td>6072</td>  <td>6796</td> </tr>\r
- <tr>  <td>Turks and Caicos Islands</td>  <td>5</td>  <td>33</td>  <td>35</td>  <td>38</td>  <td>40</td> </tr>\r
- <tr>  <td>Tuvalu</td>  <td>5</td>  <td>10</td>  <td>10</td>  <td>11</td>  <td>11</td> </tr>\r
- <tr>  <td>Uganda</td>  <td>5158</td>  <td>32710</td>  <td>39710</td>  <td>53406</td>  <td>91271</td> </tr>\r
- <tr>  <td>Ukraine</td>  <td>37298</td>  <td>45708</td>  <td>44165</td>  <td>41617</td>  <td>35026</td> </tr>\r
- <tr>  <td>United Arab Emirates</td>  <td>70</td>  <td>4599</td>  <td>5193</td>  <td>6109</td>  <td>8253</td> </tr>\r
- <tr>  <td>United Kingdom</td>  <td>50616</td>  <td>61565</td>  <td>63528</td>  <td>66601</td>  <td>72365</td> </tr>\r
- <tr>  <td>United Republic of Tanzania</td>  <td>7650</td>  <td>43739</td>  <td>52109</td>  <td>67394</td>  <td>109450</td> </tr>\r
- <tr>  <td>United States of America</td>  <td>157813</td>  <td>314659</td>  <td>332334</td>  <td>358735</td>  <td>403932</td> </tr>\r
- <tr>  <td>United States Virgin Islands</td>  <td>27</td>  <td>110</td>  <td>108</td>  <td>103</td>  <td>75</td> </tr>\r
- <tr>  <td>Uruguay</td>  <td>2239</td>  <td>3361</td>  <td>3430</td>  <td>3546</td>  <td>3637</td> </tr>\r
- <tr>  <td>Uzbekistan</td>  <td>6314</td>  <td>27488</td>  <td>29456</td>  <td>32715</td>  <td>36439</td> </tr>\r
- <tr>  <td>Vanuatu</td>  <td>48</td>  <td>240</td>  <td>276</td>  <td>338</td>  <td>482</td> </tr>\r
- <tr>  <td>Venezuela (Bolivarian Republic of)</td>  <td>5094</td>  <td>28583</td>  <td>31292</td>  <td>35370</td>  <td>42042</td> </tr>\r
- <tr>  <td>Viet Nam</td>  <td>27367</td>  <td>88069</td>  <td>93647</td>  <td>102054</td>  <td>111666</td> </tr>\r
- <tr>  <td>Wallis and Futuna Islands</td>  <td>7</td>  <td>15</td>  <td>16</td>  <td>17</td>  <td>17</td> </tr>\r
- <tr>  <td>Western Sahara</td>  <td>14</td>  <td>513</td>  <td>625</td>  <td>775</td>  <td>938</td> </tr>\r
- <tr>  <td>Yemen</td>  <td>4316</td>  <td>23580</td>  <td>27819</td>  <td>35509</td>  <td>53689</td> </tr>\r
- <tr>  <td>Zambia</td>  <td>2340</td>  <td>12935</td>  <td>14980</td>  <td>18890</td>  <td>28957</td> </tr>\r
- <tr>  <td>Zimbabwe</td>  <td>2747</td>  <td>12523</td>  <td>14029</td>  <td>16780</td>  <td>22178</td> </tr>\r
-</tbody>\r
 </table>\r
 \r
 <p style='font-size:smaller;'>Data source: <a href="http://www.un.org/esa/population/unpop.htm">Population Division of the \r
index 2141daf..de7641f 100644 (file)
@@ -173,9 +173,9 @@ Double-click on an order to see the line items for that order.
   <Rico:Table runat='server' TblName='order_details' TblAlias='t' />\r
   <Rico:Table runat='server' TblName='products' TblAlias='p' JoinCondition='t.ProductId=p.ProductId' />\r
   <Rico:TableCol runat='server' heading='Order#'        colname='OrderID' width='60' canSort='false' visible='false' />\r
-  <Rico:TableCol runat='server' heading='Description'   colname='ProductName' width='150' AltTable='products' />\r
-  <Rico:TableCol runat='server' heading='Unit Quantity' colname='QuantityPerUnit' width='125' AltTable='products' />\r
-  <Rico:TableCol runat='server' heading='Unit Price'    colname='UnitPrice' width='80' datatype='Dollar' AltTable='products' />\r
+  <Rico:TableCol runat='server' heading='Description'   colname='ProductName' width='150' TblAlias='p' />\r
+  <Rico:TableCol runat='server' heading='Unit Quantity' colname='QuantityPerUnit' width='125' TblAlias='p' />\r
+  <Rico:TableCol runat='server' heading='Unit Price'    colname='UnitPrice' width='80' datatype='Dollar' TblAlias='p' />\r
   <Rico:TableCol runat='server' heading='Qty'           colname='Quantity' width='50' datatype='number' />\r
   <Rico:FormulaCol runat='server' heading='Total'       formula='t.UnitPrice*t.Quantity' width='80' datatype='Dollar' />\r
   <Rico:TableCol runat='server' heading='Discount'      colname='Discount' width='80' datatype='Percent' />\r
index 620a1b4..8931c25 100644 (file)
@@ -26,7 +26,7 @@ When the data source is a SQL database, then filtering and sorting are done by t
 Click on a cell to see the available actions.\r
 </div>\r
 \r
-<Rico:LiveGrid runat='server' id='derby' menuEvent='click' frozenColumns='1' highlightElem='cursorRow' defaultWidth='90' HtmlSourceId='derby_data'>\r
+<Rico:LiveGrid runat='server' id='derby' menuEvent='click' frozenColumns='1' highlightElem='cursorRow' HtmlSourceId='derby_data'>\r
   <Rico:Column runat='server' heading='Year'   width='70' />\r
   <Rico:Column runat='server' heading='Horse'  width='120' />\r
   <Rico:Column runat='server' heading='Jockey' width='120' />\r
index 72e4d8b..881a85d 100644 (file)
@@ -34,7 +34,8 @@ ul li {
 <li>Theme: <span id='themespan'></span><input type='hidden' name='theme' id='theme' value=''>\r
 <li>Base Lib: <span id='libspan'></span><input type='hidden' name='lib' id='lib' value=''>\r
 <li>Locale: <span id='langspan'>Automatic</span><input type='hidden' name='lang' id='lang' value=''>\r
-<li><input type='checkbox' name='log'>&nbsp; Enable logging\r
+<li><input type='checkbox' name='log'>&nbsp; Enable console logging\r
+<li><input type='checkbox' name='html5'>&nbsp; Enable HTML5 web form inputs\r
 </ul>\r
 </form>\r
 </div>\r
index 6d7efc5..90bd1ea 100644 (file)
@@ -3,10 +3,8 @@
 <head>\r
 <title>Rico 3.0</title>\r
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\r
-<base target="content">\r
 \r
 <script src="../../ricoClient/js/proto_min.js" type="text/javascript"></script>\r
-<script src="../../ricoClient/js/rico.js" type="text/javascript"></script>\r
 <script src="../../ricoClient/js/rico2pro.js" type="text/javascript"></script>\r
 <script src="../../ricoClient/js/rico_min.js" type="text/javascript"></script>\r
 <link href="../../ricoClient/css/rico.css" type="text/css" rel="stylesheet" />\r
@@ -31,7 +29,7 @@ ul li {
 </div>
 \r
 <div class='top'>\r
-<form action='' method='get' id='form1'>\r
+<form action='' method='get' id='form1' target="content">\r
 <ul>\r
 <li id='demolist'>Example: <span id='demospan'></span>\r
 <li>Theme: <span id='themespan'></span><input type='hidden' name='theme' id='theme' value=''>\r
index f8b990b..76dc683 100644 (file)
@@ -49,7 +49,6 @@ function LoadLib($baseLib, $baseLoadFlag) {
       echo "<script src='http://ajax.googleapis.com/ajax/libs/".$baseLib."' type='text/javascript'></script>\n";\r
     }\r
   }\r
-  requireRicoJS("");\r
   requireRicoJS("2" . substr($baseLib,0,3));\r
   requireRicoJS("_min");\r
   requireRicoCSS("rico");\r
index 3d0da6c..bcce0c7 100644 (file)
@@ -3,10 +3,8 @@
 <head>\r
 <title>Rico 3.0</title>\r
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\r
-<base target="content">\r
 \r
 <script src="../../ricoClient/js/proto_min.js" type="text/javascript"></script>\r
-<script src="../../ricoClient/js/rico.js" type="text/javascript"></script>\r
 <script src="../../ricoClient/js/rico2pro.js" type="text/javascript"></script>\r
 <script src="../../ricoClient/js/rico_min.js" type="text/javascript"></script>\r
 <link href="../../ricoClient/css/rico.css" type="text/css" rel="stylesheet" />\r
@@ -31,7 +29,7 @@ ul li {
 </div>
 \r
 <div class='top'>\r
-<form action='' method='get' id='form1'>\r
+<form action='' method='get' id='form1' target="content">\r
 <ul>\r
 <li id='demolist'>Example: <span id='demospan'></span>\r
 <li>Theme: <span id='themespan'></span><input type='hidden' name='theme' id='theme' value=''>\r
index cc53522..0f3b086 100644 (file)
@@ -12,21 +12,20 @@ require "LoadRicoClient.php";
 var dialog;\r
 \r
 Rico.onLoad( function() {\r
-  var opts = {\r
+  var grid_options = {\r
     defaultWidth : 90,\r
     useUnformattedColWidth: false,\r
     menuEvent     : 'click',\r
     frozenColumns : 1,\r
     visibleRows   : 6,\r
     highlightElem: 'cursorRow',\r
-    columnSpecs  : [{width:200},'specQty','specQty','specQty','specQty','specQty']\r
+    columnSpecs  : [{width:200},{type: 'number'},{type: 'number'},{type: 'number'},{type: 'number'},{type: 'number'}]\r
   };\r
-  var ex1=new Rico.LiveGrid ('population', new Rico.Buffer.Base(document.getElementById('population').tBodies[0]), opts);\r
-  ex1.menu=new Rico.GridMenu();\r
+  var grid=new Rico.LiveGrid ('population', new Rico.Buffer.AjaxLoadOnce('../data/population.xml'), grid_options);\r
+  grid.menu=new Rico.GridMenu();\r
   new Rico.Accordion( 'accExample', {panelHeight:160});\r
   new Rico.TabbedPanel( 'tabsExample', {panelHeight:160});\r
   var cal=new Rico.CalendarControl("ricoCal",{position:'auto'});\r
-  cal.atLoad();\r
   cal.selectNow();\r
   cal.openPopup();\r
   var links=Rico.select('#themeGallery a');\r
@@ -45,10 +44,10 @@ function openWindow(btn) {
 <link href="../demo.css" type="text/css" rel="stylesheet" />\r
 <style type="text/css">\r
 #accExample {\r
-  width: 400px;\r
+  width: 27em;\r
 }\r
 #tabsExample {\r
-  width: 450px;\r
+  width: 30em;\r
 }\r
 div.ricoLG_cell {\r
   white-space:nowrap;\r
@@ -58,7 +57,7 @@ div.ricoLG_cell {
 </head>\r
 \r
 \r
-<body style="font-size:80%;">\r
+<body>\r
   \r
 <table id='explanation' border='0' cellpadding='5' cellspacing='0' style='clear:both'><tr valign='top'><td>\r
 Base Library: \r
@@ -85,1861 +84,9 @@ require "info.php";
 <p class="ricoBookmark"><span id="population_bookmark">&nbsp;</span></p>\r
 <table class="ricoLiveGrid" id="population">\r
 <thead>\r
- <tr>\r
-  <td class='ricoFrozen'></td>\r
-  <td colspan=5>Population (thousands)</td>\r
- </tr>\r
- <tr>\r
-  <td class='ricoFrozen'>Country or area</td>\r
-  <td>1950</td>\r
-  <td>2009</td>\r
-  <td>2015</td>\r
-  <td>2025</td>\r
-  <td>2050</td>\r
- </tr>\r
+ <tr>  <td class='ricoFrozen'></td>  <td colspan=5>Population (thousands)</td> </tr>\r
+ <tr>  <td class='ricoFrozen'>Country or area</td>  <td>1950</td>  <td>2009</td>  <td>2015</td>  <td>2025</td>  <td>2050</td> </tr>\r
 </thead>\r
-<tbody>\r
- <tr>\r
-  <td>Afghanistan</td>\r
-  <td>8151</td>\r
-  <td>28150</td>\r
-  <td>34246</td>\r
-  <td>44970</td>\r
-  <td>73938</td>\r
- </tr>\r
- <tr>\r
-  <td>Albania</td>\r
-  <td>1215</td>\r
-  <td>3155</td>\r
-  <td>3256</td>\r
-  <td>3395</td>\r
-  <td>3303</td>\r
- </tr>\r
- <tr>\r
-  <td>Algeria</td>\r
-  <td>8753</td>\r
-  <td>34895</td>\r
-  <td>38088</td>\r
-  <td>42882</td>\r
-  <td>49610</td>\r
- </tr>\r
- <tr>\r
-  <td>American Samoa</td>\r
-  <td>19</td>\r
-  <td>67</td>\r
-  <td>74</td>\r
-  <td>86</td>\r
-  <td>107</td>\r
- </tr>\r
- <tr>\r
-  <td>Andorra</td>\r
-  <td>6</td>\r
-  <td>86</td>\r
-  <td>93</td>\r
-  <td>107</td>\r
-  <td>137</td>\r
- </tr>\r
- <tr>\r
-  <td>Angola</td>\r
-  <td>4148</td>\r
-  <td>18498</td>\r
-  <td>21690</td>\r
-  <td>27441</td>\r
-  <td>42267</td>\r
- </tr>\r
- <tr>\r
-  <td>Anguilla</td>\r
-  <td>5</td>\r
-  <td>15</td>\r
-  <td>17</td>\r
-  <td>18</td>\r
-  <td>20</td>\r
- </tr>\r
- <tr>\r
-  <td>Antigua and Barbuda</td>\r
-  <td>46</td>\r
-  <td>88</td>\r
-  <td>93</td>\r
-  <td>101</td>\r
-  <td>112</td>\r
- </tr>\r
- <tr>\r
-  <td>Argentina</td>\r
-  <td>17150</td>\r
-  <td>40276</td>\r
-  <td>42548</td>\r
-  <td>45883</td>\r
-  <td>50943</td>\r
- </tr>\r
- <tr>\r
-  <td>Armenia</td>\r
-  <td>1354</td>\r
-  <td>3083</td>\r
-  <td>3139</td>\r
-  <td>3181</td>\r
-  <td>3018</td>\r
- </tr>\r
- <tr>\r
-  <td>Aruba</td>\r
-  <td>38</td>\r
-  <td>107</td>\r
-  <td>109</td>\r
-  <td>112</td>\r
-  <td>106</td>\r
- </tr>\r
- <tr>\r
-  <td>Australia</td>\r
-  <td>8219</td>\r
-  <td>21293</td>\r
-  <td>22607</td>\r
-  <td>24703</td>\r
-  <td>28724</td>\r
- </tr>\r
- <tr>\r
-  <td>Austria</td>\r
-  <td>6936</td>\r
-  <td>8364</td>\r
-  <td>8467</td>\r
-  <td>8600</td>\r
-  <td>8515</td>\r
- </tr>\r
- <tr>\r
-  <td>Azerbaijan</td>\r
-  <td>2896</td>\r
-  <td>8832</td>\r
-  <td>9426</td>\r
-  <td>10128</td>\r
-  <td>10579</td>\r
- </tr>\r
- <tr>\r
-  <td>Bahamas</td>\r
-  <td>79</td>\r
-  <td>342</td>\r
-  <td>366</td>\r
-  <td>402</td>\r
-  <td>455</td>\r
- </tr>\r
- <tr>\r
-  <td>Bahrain</td>\r
-  <td>116</td>\r
-  <td>791</td>\r
-  <td>882</td>\r
-  <td>1021</td>\r
-  <td>1277</td>\r
- </tr>\r
- <tr>\r
-  <td>Bangladesh</td>\r
-  <td>43595</td>\r
-  <td>162221</td>\r
-  <td>175217</td>\r
-  <td>195012</td>\r
-  <td>222495</td>\r
- </tr>\r
- <tr>\r
-  <td>Barbados</td>\r
-  <td>211</td>\r
-  <td>256</td>\r
-  <td>260</td>\r
-  <td>262</td>\r
-  <td>237</td>\r
- </tr>\r
- <tr>\r
-  <td>Belarus</td>\r
-  <td>7745</td>\r
-  <td>9634</td>\r
-  <td>9355</td>\r
-  <td>8851</td>\r
-  <td>7275</td>\r
- </tr>\r
- <tr>\r
-  <td>Belgium</td>\r
-  <td>8628</td>\r
-  <td>10647</td>\r
-  <td>10878</td>\r
-  <td>11191</td>\r
-  <td>11493</td>\r
- </tr>\r
- <tr>\r
-  <td>Belize</td>\r
-  <td>69</td>\r
-  <td>307</td>\r
-  <td>344</td>\r
-  <td>404</td>\r
-  <td>506</td>\r
- </tr>\r
- <tr>\r
-  <td>Benin</td>\r
-  <td>2050</td>\r
-  <td>8935</td>\r
-  <td>10647</td>\r
-  <td>13767</td>\r
-  <td>21982</td>\r
- </tr>\r
- <tr>\r
-  <td>Bermuda</td>\r
-  <td>37</td>\r
-  <td>65</td>\r
-  <td>65</td>\r
-  <td>66</td>\r
-  <td>63</td>\r
- </tr>\r
- <tr>\r
-  <td>Bhutan</td>\r
-  <td>168</td>\r
-  <td>697</td>\r
-  <td>770</td>\r
-  <td>865</td>\r
-  <td>1013</td>\r
- </tr>\r
- <tr>\r
-  <td>Bolivia</td>\r
-  <td>2714</td>\r
-  <td>9863</td>\r
-  <td>10854</td>\r
-  <td>12368</td>\r
-  <td>14908</td>\r
- </tr>\r
- <tr>\r
-  <td>Bosnia and Herzegovina</td>\r
-  <td>2661</td>\r
-  <td>3767</td>\r
-  <td>3727</td>\r
-  <td>3608</td>\r
-  <td>3008</td>\r
- </tr>\r
- <tr>\r
-  <td>Botswana</td>\r
-  <td>413</td>\r
-  <td>1950</td>\r
-  <td>2106</td>\r
-  <td>2337</td>\r
-  <td>2758</td>\r
- </tr>\r
- <tr>\r
-  <td>Brazil</td>\r
-  <td>53975</td>\r
-  <td>193734</td>\r
-  <td>202866</td>\r
-  <td>213802</td>\r
-  <td>218512</td>\r
- </tr>\r
- <tr>\r
-  <td>British Virgin Islands</td>\r
-  <td>7</td>\r
-  <td>23</td>\r
-  <td>24</td>\r
-  <td>26</td>\r
-  <td>28</td>\r
- </tr>\r
- <tr>\r
-  <td>Brunei Darussalam</td>\r
-  <td>48</td>\r
-  <td>400</td>\r
-  <td>443</td>\r
-  <td>513</td>\r
-  <td>658</td>\r
- </tr>\r
- <tr>\r
-  <td>Bulgaria</td>\r
-  <td>7251</td>\r
-  <td>7545</td>\r
-  <td>7263</td>\r
-  <td>6752</td>\r
-  <td>5392</td>\r
- </tr>\r
- <tr>\r
-  <td>Burkina Faso</td>\r
-  <td>4080</td>\r
-  <td>15757</td>\r
-  <td>19013</td>\r
-  <td>24837</td>\r
-  <td>40830</td>\r
- </tr>\r
- <tr>\r
-  <td>Burundi</td>\r
-  <td>2456</td>\r
-  <td>8303</td>\r
-  <td>9413</td>\r
-  <td>11161</td>\r
-  <td>14846</td>\r
- </tr>\r
- <tr>\r
-  <td>Cambodia</td>\r
-  <td>4346</td>\r
-  <td>14805</td>\r
-  <td>16357</td>\r
-  <td>18973</td>\r
-  <td>23795</td>\r
- </tr>\r
- <tr>\r
-  <td>Cameroon</td>\r
-  <td>4466</td>\r
-  <td>19522</td>\r
-  <td>22169</td>\r
-  <td>26478</td>\r
-  <td>36736</td>\r
- </tr>\r
- <tr>\r
-  <td>Canada</td>\r
-  <td>13737</td>\r
-  <td>33573</td>\r
-  <td>35493</td>\r
-  <td>38659</td>\r
-  <td>44414</td>\r
- </tr>\r
- <tr>\r
-  <td>Cape Verde</td>\r
-  <td>146</td>\r
-  <td>506</td>\r
-  <td>548</td>\r
-  <td>616</td>\r
-  <td>703</td>\r
- </tr>\r
- <tr>\r
-  <td>Cayman Islands</td>\r
-  <td>7</td>\r
-  <td>56</td>\r
-  <td>59</td>\r
-  <td>63</td>\r
-  <td>66</td>\r
- </tr>\r
- <tr>\r
-  <td>Central African Republic</td>\r
-  <td>1327</td>\r
-  <td>4422</td>\r
-  <td>4927</td>\r
-  <td>5747</td>\r
-  <td>7603</td>\r
- </tr>\r
- <tr>\r
-  <td>Chad</td>\r
-  <td>2429</td>\r
-  <td>11206</td>\r
-  <td>13120</td>\r
-  <td>16906</td>\r
-  <td>27776</td>\r
- </tr>\r
- <tr>\r
-  <td>Channel Islands</td>\r
-  <td>102</td>\r
-  <td>150</td>\r
-  <td>151</td>\r
-  <td>152</td>\r
-  <td>144</td>\r
- </tr>\r
- <tr>\r
-  <td>Chile</td>\r
-  <td>6082</td>\r
-  <td>16970</td>\r
-  <td>17926</td>\r
-  <td>19266</td>\r
-  <td>20657</td>\r
- </tr>\r
- <tr>\r
-  <td>China</td>\r
-  <td>544951</td>\r
-  <td>1345751</td>\r
-  <td>1395998</td>\r
-  <td>1453140</td>\r
-  <td>1417045</td>\r
- </tr>\r
- <tr>\r
-  <td>China, Hong Kong SAR</td>\r
-  <td>1974</td>\r
-  <td>7022</td>\r
-  <td>7398</td>\r
-  <td>7969</td>\r
-  <td>8623</td>\r
- </tr>\r
- <tr>\r
-  <td>China, Macao SAR</td>\r
-  <td>190</td>\r
-  <td>538</td>\r
-  <td>568</td>\r
-  <td>603</td>\r
-  <td>593</td>\r
- </tr>\r
- <tr>\r
-  <td>Colombia</td>\r
-  <td>12000</td>\r
-  <td>45660</td>\r
-  <td>49385</td>\r
-  <td>54920</td>\r
-  <td>62877</td>\r
- </tr>\r
- <tr>\r
-  <td>Comoros</td>\r
-  <td>156</td>\r
-  <td>676</td>\r
-  <td>767</td>\r
-  <td>907</td>\r
-  <td>1226</td>\r
- </tr>\r
- <tr>\r
-  <td>Congo</td>\r
-  <td>808</td>\r
-  <td>3683</td>\r
-  <td>4225</td>\r
-  <td>5094</td>\r
-  <td>6863</td>\r
- </tr>\r
- <tr>\r
-  <td>Cook Islands</td>\r
-  <td>15</td>\r
-  <td>20</td>\r
-  <td>20</td>\r
-  <td>21</td>\r
-  <td>24</td>\r
- </tr>\r
- <tr>\r
-  <td>Costa Rica</td>\r
-  <td>966</td>\r
-  <td>4579</td>\r
-  <td>4957</td>\r
-  <td>5521</td>\r
-  <td>6373</td>\r
- </tr>\r
- <tr>\r
-  <td>Côte d'Ivoire</td>\r
-  <td>2505</td>\r
-  <td>21075</td>\r
-  <td>24210</td>\r
-  <td>29738</td>\r
-  <td>43373</td>\r
- </tr>\r
- <tr>\r
-  <td>Croatia</td>\r
-  <td>3850</td>\r
-  <td>4416</td>\r
-  <td>4370</td>\r
-  <td>4254</td>\r
-  <td>3825</td>\r
- </tr>\r
- <tr>\r
-  <td>Cuba</td>\r
-  <td>5920</td>\r
-  <td>11204</td>\r
-  <td>11213</td>\r
-  <td>11148</td>\r
-  <td>9725</td>\r
- </tr>\r
- <tr>\r
-  <td>Cyprus</td>\r
-  <td>494</td>\r
-  <td>871</td>\r
-  <td>925</td>\r
-  <td>1014</td>\r
-  <td>1175</td>\r
- </tr>\r
- <tr>\r
-  <td>Czech Republic</td>\r
-  <td>8925</td>\r
-  <td>10369</td>\r
-  <td>10510</td>\r
-  <td>10573</td>\r
-  <td>10294</td>\r
- </tr>\r
- <tr>\r
-  <td>Dem. People's Rep. of Korea</td>\r
-  <td>9737</td>\r
-  <td>23906</td>\r
-  <td>24399</td>\r
-  <td>25128</td>\r
-  <td>24562</td>\r
- </tr>\r
- <tr>\r
-  <td>Dem. Republic of the Congo</td>\r
-  <td>12184</td>\r
-  <td>66020</td>\r
-  <td>77419</td>\r
-  <td>98123</td>\r
-  <td>147512</td>\r
- </tr>\r
- <tr>\r
-  <td>Denmark</td>\r
-  <td>4271</td>\r
-  <td>5470</td>\r
-  <td>5523</td>\r
-  <td>5590</td>\r
-  <td>5551</td>\r
- </tr>\r
- <tr>\r
-  <td>Djibouti</td>\r
-  <td>62</td>\r
-  <td>864</td>\r
-  <td>953</td>\r
-  <td>1111</td>\r
-  <td>1469</td>\r
- </tr>\r
- <tr>\r
-  <td>Dominica</td>\r
-  <td>51</td>\r
-  <td>67</td>\r
-  <td>67</td>\r
-  <td>68</td>\r
-  <td>66</td>\r
- </tr>\r
- <tr>\r
-  <td>Dominican Republic</td>\r
-  <td>2427</td>\r
-  <td>10090</td>\r
-  <td>10867</td>\r
-  <td>11973</td>\r
-  <td>13441</td>\r
- </tr>\r
- <tr>\r
-  <td>Ecuador</td>\r
-  <td>3387</td>\r
-  <td>13625</td>\r
-  <td>14596</td>\r
-  <td>16074</td>\r
-  <td>17989</td>\r
- </tr>\r
- <tr>\r
-  <td>Egypt</td>\r
-  <td>21514</td>\r
-  <td>82999</td>\r
-  <td>91778</td>\r
-  <td>104970</td>\r
-  <td>129533</td>\r
- </tr>\r
- <tr>\r
-  <td>El Salvador</td>\r
-  <td>2200</td>\r
-  <td>6163</td>\r
-  <td>6383</td>\r
-  <td>6895</td>\r
-  <td>7882</td>\r
- </tr>\r
- <tr>\r
-  <td>Equatorial Guinea</td>\r
-  <td>226</td>\r
-  <td>676</td>\r
-  <td>781</td>\r
-  <td>971</td>\r
-  <td>1445</td>\r
- </tr>\r
- <tr>\r
-  <td>Eritrea</td>\r
-  <td>1141</td>\r
-  <td>5073</td>\r
-  <td>6009</td>\r
-  <td>7404</td>\r
-  <td>10787</td>\r
- </tr>\r
- <tr>\r
-  <td>Estonia</td>\r
-  <td>1101</td>\r
-  <td>1340</td>\r
-  <td>1337</td>\r
-  <td>1321</td>\r
-  <td>1233</td>\r
- </tr>\r
- <tr>\r
-  <td>Ethiopia</td>\r
-  <td>18434</td>\r
-  <td>82825</td>\r
-  <td>96237</td>\r
-  <td>119822</td>\r
-  <td>173811</td>\r
- </tr>\r
- <tr>\r
-  <td>Faeroe Islands</td>\r
-  <td>32</td>\r
-  <td>50</td>\r
-  <td>52</td>\r
-  <td>55</td>\r
-  <td>58</td>\r
- </tr>\r
- <tr>\r
-  <td>Falkland Islands (Malvinas)</td>\r
-  <td>2</td>\r
-  <td>3</td>\r
-  <td>3</td>\r
-  <td>3</td>\r
-  <td>3</td>\r
- </tr>\r
- <tr>\r
-  <td>Fiji</td>\r
-  <td>289</td>\r
-  <td>849</td>\r
-  <td>874</td>\r
-  <td>905</td>\r
-  <td>910</td>\r
- </tr>\r
- <tr>\r
-  <td>Finland</td>\r
-  <td>4009</td>\r
-  <td>5326</td>\r
-  <td>5432</td>\r
-  <td>5533</td>\r
-  <td>5445</td>\r
- </tr>\r
- <tr>\r
-  <td>France</td>\r
-  <td>41832</td>\r
-  <td>62343</td>\r
-  <td>63900</td>\r
-  <td>65769</td>\r
-  <td>67668</td>\r
- </tr>\r
- <tr>\r
-  <td>French Guiana</td>\r
-  <td>25</td>\r
-  <td>226</td>\r
-  <td>261</td>\r
-  <td>323</td>\r
-  <td>462</td>\r
- </tr>\r
- <tr>\r
-  <td>French Polynesia</td>\r
-  <td>61</td>\r
-  <td>269</td>\r
-  <td>289</td>\r
-  <td>318</td>\r
-  <td>354</td>\r
- </tr>\r
- <tr>\r
-  <td>Gabon</td>\r
-  <td>469</td>\r
-  <td>1475</td>\r
-  <td>1639</td>\r
-  <td>1915</td>\r
-  <td>2471</td>\r
- </tr>\r
- <tr>\r
-  <td>Gambia</td>\r
-  <td>258</td>\r
-  <td>1705</td>\r
-  <td>1985</td>\r
-  <td>2478</td>\r
-  <td>3763</td>\r
- </tr>\r
- <tr>\r
-  <td>Georgia</td>\r
-  <td>3527</td>\r
-  <td>4260</td>\r
-  <td>4084</td>\r
-  <td>3888</td>\r
-  <td>3267</td>\r
- </tr>\r
- <tr>\r
-  <td>Germany</td>\r
-  <td>68376</td>\r
-  <td>82167</td>\r
-  <td>81346</td>\r
-  <td>79258</td>\r
-  <td>70504</td>\r
- </tr>\r
- <tr>\r
-  <td>Ghana</td>\r
-  <td>4981</td>\r
-  <td>23837</td>\r
-  <td>26925</td>\r
-  <td>32233</td>\r
-  <td>45213</td>\r
- </tr>\r
- <tr>\r
-  <td>Gibraltar</td>\r
-  <td>20</td>\r
-  <td>31</td>\r
-  <td>31</td>\r
-  <td>32</td>\r
-  <td>30</td>\r
- </tr>\r
- <tr>\r
-  <td>Greece</td>\r
-  <td>7566</td>\r
-  <td>11161</td>\r
-  <td>11261</td>\r
-  <td>11274</td>\r
-  <td>10939</td>\r
- </tr>\r
- <tr>\r
-  <td>Greenland</td>\r
-  <td>23</td>\r
-  <td>57</td>\r
-  <td>57</td>\r
-  <td>56</td>\r
-  <td>50</td>\r
- </tr>\r
- <tr>\r
-  <td>Grenada</td>\r
-  <td>77</td>\r
-  <td>104</td>\r
-  <td>107</td>\r
-  <td>109</td>\r
-  <td>97</td>\r
- </tr>\r
- <tr>\r
-  <td>Guadeloupe</td>\r
-  <td>210</td>\r
-  <td>465</td>\r
-  <td>476</td>\r
-  <td>489</td>\r
-  <td>477</td>\r
- </tr>\r
- <tr>\r
-  <td>Guam</td>\r
-  <td>60</td>\r
-  <td>178</td>\r
-  <td>191</td>\r
-  <td>211</td>\r
-  <td>242</td>\r
- </tr>\r
- <tr>\r
-  <td>Guatemala</td>\r
-  <td>3146</td>\r
-  <td>14027</td>\r
-  <td>16227</td>\r
-  <td>19927</td>\r
-  <td>27480</td>\r
- </tr>\r
- <tr>\r
-  <td>Guinea</td>\r
-  <td>2619</td>\r
-  <td>10069</td>\r
-  <td>11844</td>\r
-  <td>15158</td>\r
-  <td>23975</td>\r
- </tr>\r
- <tr>\r
-  <td>Guinea-Bissau</td>\r
-  <td>518</td>\r
-  <td>1611</td>\r
-  <td>1848</td>\r
-  <td>2296</td>\r
-  <td>3555</td>\r
- </tr>\r
- <tr>\r
-  <td>Guyana</td>\r
-  <td>423</td>\r
-  <td>762</td>\r
-  <td>754</td>\r
-  <td>732</td>\r
-  <td>558</td>\r
- </tr>\r
- <tr>\r
-  <td>Haiti</td>\r
-  <td>3221</td>\r
-  <td>10033</td>\r
-  <td>10957</td>\r
-  <td>12476</td>\r
-  <td>15485</td>\r
- </tr>\r
- <tr>\r
-  <td>Holy See</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
- </tr>\r
- <tr>\r
-  <td>Honduras</td>\r
-  <td>1487</td>\r
-  <td>7466</td>\r
-  <td>8386</td>\r
-  <td>9844</td>\r
-  <td>12402</td>\r
- </tr>\r
- <tr>\r
-  <td>Hungary</td>\r
-  <td>9338</td>\r
-  <td>9993</td>\r
-  <td>9874</td>\r
-  <td>9647</td>\r
-  <td>8934</td>\r
- </tr>\r
- <tr>\r
-  <td>Iceland</td>\r
-  <td>143</td>\r
-  <td>323</td>\r
-  <td>353</td>\r
-  <td>384</td>\r
-  <td>407</td>\r
- </tr>\r
- <tr>\r
-  <td>India</td>\r
-  <td>371857</td>\r
-  <td>1198003</td>\r
-  <td>1294192</td>\r
-  <td>1431272</td>\r
-  <td>1613800</td>\r
- </tr>\r
- <tr>\r
-  <td>Indonesia</td>\r
-  <td>77152</td>\r
-  <td>229965</td>\r
-  <td>244191</td>\r
-  <td>263287</td>\r
-  <td>288110</td>\r
- </tr>\r
- <tr>\r
-  <td>Iran (Islamic Republic of)</td>\r
-  <td>16913</td>\r
-  <td>74196</td>\r
-  <td>79454</td>\r
-  <td>87134</td>\r
-  <td>96975</td>\r
- </tr>\r
- <tr>\r
-  <td>Iraq</td>\r
-  <td>5719</td>\r
-  <td>30747</td>\r
-  <td>35884</td>\r
-  <td>44692</td>\r
-  <td>63995</td>\r
- </tr>\r
- <tr>\r
-  <td>Ireland</td>\r
-  <td>2969</td>\r
-  <td>4515</td>\r
-  <td>4886</td>\r
-  <td>5370</td>\r
-  <td>6295</td>\r
- </tr>\r
- <tr>\r
-  <td>Isle of Man</td>\r
-  <td>55</td>\r
-  <td>80</td>\r
-  <td>81</td>\r
-  <td>80</td>\r
-  <td>75</td>\r
- </tr>\r
- <tr>\r
-  <td>Israel</td>\r
-  <td>1258</td>\r
-  <td>7170</td>\r
-  <td>7823</td>\r
-  <td>8769</td>\r
-  <td>10649</td>\r
- </tr>\r
- <tr>\r
-  <td>Italy</td>\r
-  <td>46367</td>\r
-  <td>59870</td>\r
-  <td>60604</td>\r
-  <td>60018</td>\r
-  <td>57066</td>\r
- </tr>\r
- <tr>\r
-  <td>Jamaica</td>\r
-  <td>1403</td>\r
-  <td>2719</td>\r
-  <td>2786</td>\r
-  <td>2866</td>\r
-  <td>2683</td>\r
- </tr>\r
- <tr>\r
-  <td>Japan</td>\r
-  <td>82824</td>\r
-  <td>127156</td>\r
-  <td>125791</td>\r
-  <td>120793</td>\r
-  <td>101659</td>\r
- </tr>\r
- <tr>\r
-  <td>Jordan</td>\r
-  <td>472</td>\r
-  <td>6316</td>\r
-  <td>6957</td>\r
-  <td>8088</td>\r
-  <td>10241</td>\r
- </tr>\r
- <tr>\r
-  <td>Kazakhstan</td>\r
-  <td>6703</td>\r
-  <td>15637</td>\r
-  <td>16289</td>\r
-  <td>17025</td>\r
-  <td>17848</td>\r
- </tr>\r
- <tr>\r
-  <td>Kenya</td>\r
-  <td>6077</td>\r
-  <td>39802</td>\r
-  <td>46433</td>\r
-  <td>57573</td>\r
-  <td>85410</td>\r
- </tr>\r
- <tr>\r
-  <td>Kiribati</td>\r
-  <td>26</td>\r
-  <td>98</td>\r
-  <td>107</td>\r
-  <td>123</td>\r
-  <td>151</td>\r
- </tr>\r
- <tr>\r
-  <td>Kuwait</td>\r
-  <td>152</td>\r
-  <td>2985</td>\r
-  <td>3378</td>\r
-  <td>3988</td>\r
-  <td>5240</td>\r
- </tr>\r
- <tr>\r
-  <td>Kyrgyzstan</td>\r
-  <td>1740</td>\r
-  <td>5482</td>\r
-  <td>5877</td>\r
-  <td>6378</td>\r
-  <td>6882</td>\r
- </tr>\r
- <tr>\r
-  <td>Lao People's Dem. Republic</td>\r
-  <td>1666</td>\r
-  <td>6320</td>\r
-  <td>7028</td>\r
-  <td>8273</td>\r
-  <td>10744</td>\r
- </tr>\r
- <tr>\r
-  <td>Latvia</td>\r
-  <td>1949</td>\r
-  <td>2249</td>\r
-  <td>2197</td>\r
-  <td>2101</td>\r
-  <td>1854</td>\r
- </tr>\r
- <tr>\r
-  <td>Lebanon</td>\r
-  <td>1443</td>\r
-  <td>4224</td>\r
-  <td>4426</td>\r
-  <td>4736</td>\r
-  <td>5033</td>\r
- </tr>\r
- <tr>\r
-  <td>Lesotho</td>\r
-  <td>734</td>\r
-  <td>2067</td>\r
-  <td>2168</td>\r
-  <td>2306</td>\r
-  <td>2491</td>\r
- </tr>\r
- <tr>\r
-  <td>Liberia</td>\r
-  <td>824</td>\r
-  <td>3955</td>\r
-  <td>4665</td>\r
-  <td>5858</td>\r
-  <td>8841</td>\r
- </tr>\r
- <tr>\r
-  <td>Libyan Arab Jamahiriya</td>\r
-  <td>1029</td>\r
-  <td>6420</td>\r
-  <td>7158</td>\r
-  <td>8144</td>\r
-  <td>9819</td>\r
- </tr>\r
- <tr>\r
-  <td>Liechtenstein</td>\r
-  <td>14</td>\r
-  <td>36</td>\r
-  <td>38</td>\r
-  <td>40</td>\r
-  <td>45</td>\r
- </tr>\r
- <tr>\r
-  <td>Lithuania</td>\r
-  <td>2567</td>\r
-  <td>3287</td>\r
-  <td>3143</td>\r
-  <td>2985</td>\r
-  <td>2579</td>\r
- </tr>\r
- <tr>\r
-  <td>Luxembourg</td>\r
-  <td>296</td>\r
-  <td>486</td>\r
-  <td>520</td>\r
-  <td>582</td>\r
-  <td>733</td>\r
- </tr>\r
- <tr>\r
-  <td>Madagascar</td>\r
-  <td>4084</td>\r
-  <td>19625</td>\r
-  <td>22853</td>\r
-  <td>28595</td>\r
-  <td>42693</td>\r
- </tr>\r
- <tr>\r
-  <td>Malawi</td>\r
-  <td>2881</td>\r
-  <td>15263</td>\r
-  <td>17998</td>\r
-  <td>23194</td>\r
-  <td>36575</td>\r
- </tr>\r
- <tr>\r
-  <td>Malaysia</td>\r
-  <td>6110</td>\r
-  <td>27468</td>\r
-  <td>30041</td>\r
-  <td>33770</td>\r
-  <td>39664</td>\r
- </tr>\r
- <tr>\r
-  <td>Maldives</td>\r
-  <td>82</td>\r
-  <td>309</td>\r
-  <td>338</td>\r
-  <td>384</td>\r
-  <td>455</td>\r
- </tr>\r
- <tr>\r
-  <td>Mali</td>\r
-  <td>4268</td>\r
-  <td>13010</td>\r
-  <td>14993</td>\r
-  <td>18603</td>\r
-  <td>28260</td>\r
- </tr>\r
- <tr>\r
-  <td>Malta</td>\r
-  <td>312</td>\r
-  <td>409</td>\r
-  <td>417</td>\r
-  <td>426</td>\r
-  <td>413</td>\r
- </tr>\r
- <tr>\r
-  <td>Marshall Islands</td>\r
-  <td>13</td>\r
-  <td>62</td>\r
-  <td>70</td>\r
-  <td>79</td>\r
-  <td>92</td>\r
- </tr>\r
- <tr>\r
-  <td>Martinique</td>\r
-  <td>222</td>\r
-  <td>405</td>\r
-  <td>411</td>\r
-  <td>418</td>\r
-  <td>393</td>\r
- </tr>\r
- <tr>\r
-  <td>Mauritania</td>\r
-  <td>651</td>\r
-  <td>3291</td>\r
-  <td>3732</td>\r
-  <td>4443</td>\r
-  <td>6061</td>\r
- </tr>\r
- <tr>\r
-  <td>Mauritius</td>\r
-  <td>493</td>\r
-  <td>1288</td>\r
-  <td>1337</td>\r
-  <td>1400</td>\r
-  <td>1426</td>\r
- </tr>\r
- <tr>\r
-  <td>Mayotte</td>\r
-  <td>15</td>\r
-  <td>194</td>\r
-  <td>224</td>\r
-  <td>277</td>\r
-  <td>386</td>\r
- </tr>\r
- <tr>\r
-  <td>Mexico</td>\r
-  <td>27741</td>\r
-  <td>109610</td>\r
-  <td>115528</td>\r
-  <td>123366</td>\r
-  <td>128964</td>\r
- </tr>\r
- <tr>\r
-  <td>Micronesia (Fed. States of)</td>\r
-  <td>32</td>\r
-  <td>111</td>\r
-  <td>114</td>\r
-  <td>122</td>\r
-  <td>128</td>\r
- </tr>\r
- <tr>\r
-  <td>Moldova (Republic of)</td>\r
-  <td>2341</td>\r
-  <td>3604</td>\r
-  <td>3462</td>\r
-  <td>3291</td>\r
-  <td>2734</td>\r
- </tr>\r
- <tr>\r
-  <td>Monaco</td>\r
-  <td>20</td>\r
-  <td>33</td>\r
-  <td>33</td>\r
-  <td>35</td>\r
-  <td>38</td>\r
- </tr>\r
- <tr>\r
-  <td>Mongolia</td>\r
-  <td>761</td>\r
-  <td>2671</td>\r
-  <td>2855</td>\r
-  <td>3134</td>\r
-  <td>3446</td>\r
- </tr>\r
- <tr>\r
-  <td>Montenegro</td>\r
-  <td>399</td>\r
-  <td>624</td>\r
-  <td>627</td>\r
-  <td>633</td>\r
-  <td>618</td>\r
- </tr>\r
- <tr>\r
-  <td>Montserrat</td>\r
-  <td>14</td>\r
-  <td>6</td>\r
-  <td>6</td>\r
-  <td>7</td>\r
-  <td>7</td>\r
- </tr>\r
- <tr>\r
-  <td>Morocco</td>\r
-  <td>8953</td>\r
-  <td>31993</td>\r
-  <td>34330</td>\r
-  <td>37865</td>\r
-  <td>42583</td>\r
- </tr>\r
- <tr>\r
-  <td>Mozambique</td>\r
-  <td>6442</td>\r
-  <td>22894</td>\r
-  <td>25957</td>\r
-  <td>31190</td>\r
-  <td>44148</td>\r
- </tr>\r
- <tr>\r
-  <td>Myanmar</td>\r
-  <td>17158</td>\r
-  <td>50020</td>\r
-  <td>53087</td>\r
-  <td>57585</td>\r
-  <td>63373</td>\r
- </tr>\r
- <tr>\r
-  <td>Namibia</td>\r
-  <td>485</td>\r
-  <td>2171</td>\r
-  <td>2412</td>\r
-  <td>2810</td>\r
-  <td>3588</td>\r
- </tr>\r
- <tr>\r
-  <td>Nauru</td>\r
-  <td>3</td>\r
-  <td>10</td>\r
-  <td>11</td>\r
-  <td>11</td>\r
-  <td>11</td>\r
- </tr>\r
- <tr>\r
-  <td>Nepal</td>\r
-  <td>8126</td>\r
-  <td>29331</td>\r
-  <td>32503</td>\r
-  <td>38031</td>\r
-  <td>49028</td>\r
- </tr>\r
- <tr>\r
-  <td>Netherlands</td>\r
-  <td>10114</td>\r
-  <td>16592</td>\r
-  <td>16915</td>\r
-  <td>17348</td>\r
-  <td>17399</td>\r
- </tr>\r
- <tr>\r
-  <td>Netherlands Antilles</td>\r
-  <td>112</td>\r
-  <td>198</td>\r
-  <td>207</td>\r
-  <td>210</td>\r
-  <td>192</td>\r
- </tr>\r
- <tr>\r
-  <td>New Caledonia</td>\r
-  <td>65</td>\r
-  <td>250</td>\r
-  <td>271</td>\r
-  <td>304</td>\r
-  <td>362</td>\r
- </tr>\r
- <tr>\r
-  <td>New Zealand</td>\r
-  <td>1908</td>\r
-  <td>4266</td>\r
-  <td>4492</td>\r
-  <td>4831</td>\r
-  <td>5349</td>\r
- </tr>\r
- <tr>\r
-  <td>Nicaragua</td>\r
-  <td>1295</td>\r
-  <td>5743</td>\r
-  <td>6265</td>\r
-  <td>7058</td>\r
-  <td>8143</td>\r
- </tr>\r
- <tr>\r
-  <td>Niger</td>\r
-  <td>2462</td>\r
-  <td>15290</td>\r
-  <td>19150</td>\r
-  <td>27388</td>\r
-  <td>58216</td>\r
- </tr>\r
- <tr>\r
-  <td>Nigeria</td>\r
-  <td>36680</td>\r
-  <td>154729</td>\r
-  <td>175928</td>\r
-  <td>210057</td>\r
-  <td>289083</td>\r
- </tr>\r
- <tr>\r
-  <td>Niue</td>\r
-  <td>5</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
- </tr>\r
- <tr>\r
-  <td>Northern Mariana Islands</td>\r
-  <td>7</td>\r
-  <td>87</td>\r
-  <td>96</td>\r
-  <td>111</td>\r
-  <td>151</td>\r
- </tr>\r
- <tr>\r
-  <td>Norway</td>\r
-  <td>3265</td>\r
-  <td>4812</td>\r
-  <td>5036</td>\r
-  <td>5365</td>\r
-  <td>5947</td>\r
- </tr>\r
- <tr>\r
-  <td>Occupied Palestinian Territory</td>\r
-  <td>1005</td>\r
-  <td>4277</td>\r
-  <td>5090</td>\r
-  <td>6553</td>\r
-  <td>10265</td>\r
- </tr>\r
- <tr>\r
-  <td>Oman</td>\r
-  <td>456</td>\r
-  <td>2845</td>\r
-  <td>3198</td>\r
-  <td>3782</td>\r
-  <td>4878</td>\r
- </tr>\r
- <tr>\r
-  <td>Pakistan</td>\r
-  <td>41177</td>\r
-  <td>180808</td>\r
-  <td>205504</td>\r
-  <td>246286</td>\r
-  <td>335195</td>\r
- </tr>\r
- <tr>\r
-  <td>Palau</td>\r
-  <td>7</td>\r
-  <td>20</td>\r
-  <td>21</td>\r
-  <td>23</td>\r
-  <td>26</td>\r
- </tr>\r
- <tr>\r
-  <td>Panama</td>\r
-  <td>860</td>\r
-  <td>3454</td>\r
-  <td>3773</td>\r
-  <td>4267</td>\r
-  <td>5092</td>\r
- </tr>\r
- <tr>\r
-  <td>Papua New Guinea</td>\r
-  <td>1798</td>\r
-  <td>6732</td>\r
-  <td>7678</td>\r
-  <td>9265</td>\r
-  <td>12871</td>\r
- </tr>\r
- <tr>\r
-  <td>Paraguay</td>\r
-  <td>1473</td>\r
-  <td>6349</td>\r
-  <td>7007</td>\r
-  <td>8026</td>\r
-  <td>9867</td>\r
- </tr>\r
- <tr>\r
-  <td>Peru</td>\r
-  <td>7632</td>\r
-  <td>29165</td>\r
-  <td>31197</td>\r
-  <td>34528</td>\r
-  <td>39776</td>\r
- </tr>\r
- <tr>\r
-  <td>Philippines</td>\r
-  <td>19996</td>\r
-  <td>91983</td>\r
-  <td>101734</td>\r
-  <td>117270</td>\r
-  <td>146156</td>\r
- </tr>\r
- <tr>\r
-  <td>Pitcairn</td>\r
-  <td>0</td>\r
-  <td>0</td>\r
-  <td>0</td>\r
-  <td>0</td>\r
-  <td>0</td>\r
- </tr>\r
- <tr>\r
-  <td>Poland</td>\r
-  <td>24824</td>\r
-  <td>38074</td>\r
-  <td>37788</td>\r
-  <td>36964</td>\r
-  <td>32013</td>\r
- </tr>\r
- <tr>\r
-  <td>Portugal</td>\r
-  <td>8405</td>\r
-  <td>10707</td>\r
-  <td>10787</td>\r
-  <td>10706</td>\r
-  <td>10015</td>\r
- </tr>\r
- <tr>\r
-  <td>Puerto Rico</td>\r
-  <td>2218</td>\r
-  <td>3982</td>\r
-  <td>4074</td>\r
-  <td>4176</td>\r
-  <td>4103</td>\r
- </tr>\r
- <tr>\r
-  <td>Qatar</td>\r
-  <td>25</td>\r
-  <td>1409</td>\r
-  <td>1630</td>\r
-  <td>1848</td>\r
-  <td>2316</td>\r
- </tr>\r
- <tr>\r
-  <td>Republic of Korea</td>\r
-  <td>19211</td>\r
-  <td>48333</td>\r
-  <td>49153</td>\r
-  <td>49484</td>\r
-  <td>44077</td>\r
- </tr>\r
- <tr>\r
-  <td>Réunion</td>\r
-  <td>248</td>\r
-  <td>827</td>\r
-  <td>886</td>\r
-  <td>973</td>\r
-  <td>1096</td>\r
- </tr>\r
- <tr>\r
-  <td>Romania</td>\r
-  <td>16311</td>\r
-  <td>21275</td>\r
-  <td>20787</td>\r
-  <td>19961</td>\r
-  <td>17279</td>\r
- </tr>\r
- <tr>\r
-  <td>Russian Federation</td>\r
-  <td>102702</td>\r
-  <td>140874</td>\r
-  <td>137983</td>\r
-  <td>132345</td>\r
-  <td>116097</td>\r
- </tr>\r
- <tr>\r
-  <td>Rwanda</td>\r
-  <td>2162</td>\r
-  <td>9998</td>\r
-  <td>11743</td>\r
-  <td>14676</td>\r
-  <td>22082</td>\r
- </tr>\r
- <tr>\r
-  <td>Saint Helena</td>\r
-  <td>5</td>\r
-  <td>4</td>\r
-  <td>4</td>\r
-  <td>5</td>\r
-  <td>5</td>\r
- </tr>\r
- <tr>\r
-  <td>Saint Kitts and Nevis</td>\r
-  <td>46</td>\r
-  <td>52</td>\r
-  <td>56</td>\r
-  <td>61</td>\r
-  <td>69</td>\r
- </tr>\r
- <tr>\r
-  <td>Saint Lucia</td>\r
-  <td>83</td>\r
-  <td>172</td>\r
-  <td>182</td>\r
-  <td>198</td>\r
-  <td>217</td>\r
- </tr>\r
- <tr>\r
-  <td>Saint Pierre and Miquelon</td>\r
-  <td>5</td>\r
-  <td>6</td>\r
-  <td>6</td>\r
-  <td>6</td>\r
-  <td>6</td>\r
- </tr>\r
- <tr>\r
-  <td>St. Vincent and the Grenadines</td>\r
-  <td>67</td>\r
-  <td>109</td>\r
-  <td>110</td>\r
-  <td>111</td>\r
-  <td>119</td>\r
- </tr>\r
- <tr>\r
-  <td>Samoa</td>\r
-  <td>82</td>\r
-  <td>179</td>\r
-  <td>181</td>\r
-  <td>188</td>\r
-  <td>192</td>\r
- </tr>\r
- <tr>\r
-  <td>San Marino</td>\r
-  <td>13</td>\r
-  <td>31</td>\r
-  <td>32</td>\r
-  <td>33</td>\r
-  <td>33</td>\r
- </tr>\r
- <tr>\r
-  <td>Sao Tome and Principe</td>\r
-  <td>60</td>\r
-  <td>163</td>\r
-  <td>180</td>\r
-  <td>216</td>\r
-  <td>296</td>\r
- </tr>\r
- <tr>\r
-  <td>Saudi Arabia</td>\r
-  <td>3201</td>\r
-  <td>25721</td>\r
-  <td>28933</td>\r
-  <td>34176</td>\r
-  <td>43658</td>\r
- </tr>\r
- <tr>\r
-  <td>Senegal</td>\r
-  <td>2416</td>\r
-  <td>12534</td>\r
-  <td>14526</td>\r
-  <td>17861</td>\r
-  <td>26102</td>\r
- </tr>\r
- <tr>\r
-  <td>Serbia</td>\r
-  <td>6732</td>\r
-  <td>9850</td>\r
-  <td>9828</td>\r
-  <td>9720</td>\r
-  <td>9193</td>\r
- </tr>\r
- <tr>\r
-  <td>Seychelles</td>\r
-  <td>36</td>\r
-  <td>84</td>\r
-  <td>86</td>\r
-  <td>91</td>\r
-  <td>97</td>\r
- </tr>\r
- <tr>\r
-  <td>Sierra Leone</td>\r
-  <td>1944</td>\r
-  <td>5696</td>\r
-  <td>6557</td>\r
-  <td>8112</td>\r
-  <td>12446</td>\r
- </tr>\r
- <tr>\r
-  <td>Singapore</td>\r
-  <td>1022</td>\r
-  <td>4737</td>\r
-  <td>5059</td>\r
-  <td>5362</td>\r
-  <td>5221</td>\r
- </tr>\r
- <tr>\r
-  <td>Slovakia</td>\r
-  <td>3463</td>\r
-  <td>5406</td>\r
-  <td>5437</td>\r
-  <td>5413</td>\r
-  <td>4917</td>\r
- </tr>\r
- <tr>\r
-  <td>Slovenia</td>\r
-  <td>1473</td>\r
-  <td>2020</td>\r
-  <td>2044</td>\r
-  <td>2050</td>\r
-  <td>1954</td>\r
- </tr>\r
- <tr>\r
-  <td>Solomon Islands</td>\r
-  <td>90</td>\r
-  <td>523</td>\r
-  <td>599</td>\r
-  <td>725</td>\r
-  <td>1007</td>\r
- </tr>\r
- <tr>\r
-  <td>Somalia</td>\r
-  <td>2264</td>\r
-  <td>9133</td>\r
-  <td>10731</td>\r
-  <td>13922</td>\r
-  <td>23522</td>\r
- </tr>\r
- <tr>\r
-  <td>South Africa</td>\r
-  <td>13683</td>\r
-  <td>50110</td>\r
-  <td>51684</td>\r
-  <td>53766</td>\r
-  <td>56802</td>\r
- </tr>\r
- <tr>\r
-  <td>Spain</td>\r
-  <td>28009</td>\r
-  <td>44904</td>\r
-  <td>47203</td>\r
-  <td>49265</td>\r
-  <td>51260</td>\r
- </tr>\r
- <tr>\r
-  <td>Sri Lanka</td>\r
-  <td>8241</td>\r
-  <td>20238</td>\r
-  <td>21167</td>\r
-  <td>22033</td>\r
-  <td>21705</td>\r
- </tr>\r
- <tr>\r
-  <td>Sudan</td>\r
-  <td>9190</td>\r
-  <td>42272</td>\r
-  <td>47730</td>\r
-  <td>56688</td>\r
-  <td>75884</td>\r
- </tr>\r
- <tr>\r
-  <td>Suriname</td>\r
-  <td>215</td>\r
-  <td>520</td>\r
-  <td>547</td>\r
-  <td>586</td>\r
-  <td>619</td>\r
- </tr>\r
- <tr>\r
-  <td>Swaziland</td>\r
-  <td>273</td>\r
-  <td>1185</td>\r
-  <td>1287</td>\r
-  <td>1455</td>\r
-  <td>1749</td>\r
- </tr>\r
- <tr>\r
-  <td>Sweden</td>\r
-  <td>7014</td>\r
-  <td>9249</td>\r
-  <td>9498</td>\r
-  <td>9915</td>\r
-  <td>10571</td>\r
- </tr>\r
- <tr>\r
-  <td>Switzerland</td>\r
-  <td>4693</td>\r
-  <td>7568</td>\r
-  <td>7736</td>\r
-  <td>8020</td>\r
-  <td>8514</td>\r
- </tr>\r
- <tr>\r
-  <td>Syrian Arab Republic</td>\r
-  <td>3536</td>\r
-  <td>21906</td>\r
-  <td>24494</td>\r
-  <td>28592</td>\r
-  <td>36911</td>\r
- </tr>\r
- <tr>\r
-  <td>Tajikistan</td>\r
-  <td>1532</td>\r
-  <td>6952</td>\r
-  <td>7761</td>\r
-  <td>9075</td>\r
-  <td>11111</td>\r
- </tr>\r
- <tr>\r
-  <td>TFYR Macedonia</td>\r
-  <td>1230</td>\r
-  <td>2042</td>\r
-  <td>2045</td>\r
-  <td>2037</td>\r
-  <td>1857</td>\r
- </tr>\r
- <tr>\r
-  <td>Thailand</td>\r
-  <td>20607</td>\r
-  <td>67764</td>\r
-  <td>69939</td>\r
-  <td>72628</td>\r
-  <td>73361</td>\r
- </tr>\r
- <tr>\r
-  <td>Timor-Leste</td>\r
-  <td>433</td>\r
-  <td>1134</td>\r
-  <td>1385</td>\r
-  <td>1869</td>\r
-  <td>3217</td>\r
- </tr>\r
- <tr>\r
-  <td>Togo</td>\r
-  <td>1329</td>\r
-  <td>6619</td>\r
-  <td>7607</td>\r
-  <td>9282</td>\r
-  <td>13196</td>\r
- </tr>\r
- <tr>\r
-  <td>Tokelau</td>\r
-  <td>2</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
-  <td>1</td>\r
- </tr>\r
- <tr>\r
-  <td>Tonga</td>\r
-  <td>47</td>\r
-  <td>104</td>\r
-  <td>105</td>\r
-  <td>112</td>\r
-  <td>123</td>\r
- </tr>\r
- <tr>\r
-  <td>Trinidad and Tobago</td>\r
-  <td>636</td>\r
-  <td>1339</td>\r
-  <td>1368</td>\r
-  <td>1388</td>\r
-  <td>1278</td>\r
- </tr>\r
- <tr>\r
-  <td>Tunisia</td>\r
-  <td>3530</td>\r
-  <td>10272</td>\r
-  <td>10884</td>\r
-  <td>11797</td>\r
-  <td>12711</td>\r
- </tr>\r
- <tr>\r
-  <td>Turkey</td>\r
-  <td>21484</td>\r
-  <td>74816</td>\r
-  <td>79966</td>\r
-  <td>87364</td>\r
-  <td>97389</td>\r
- </tr>\r
- <tr>\r
-  <td>Turkmenistan</td>\r
-  <td>1211</td>\r
-  <td>5110</td>\r
-  <td>5509</td>\r
-  <td>6072</td>\r
-  <td>6796</td>\r
- </tr>\r
- <tr>\r
-  <td>Turks and Caicos Islands</td>\r
-  <td>5</td>\r
-  <td>33</td>\r
-  <td>35</td>\r
-  <td>38</td>\r
-  <td>40</td>\r
- </tr>\r
- <tr>\r
-  <td>Tuvalu</td>\r
-  <td>5</td>\r
-  <td>10</td>\r
-  <td>10</td>\r
-  <td>11</td>\r
-  <td>11</td>\r
- </tr>\r
- <tr>\r
-  <td>Uganda</td>\r
-  <td>5158</td>\r
-  <td>32710</td>\r
-  <td>39710</td>\r
-  <td>53406</td>\r
-  <td>91271</td>\r
- </tr>\r
- <tr>\r
-  <td>Ukraine</td>\r
-  <td>37298</td>\r
-  <td>45708</td>\r
-  <td>44165</td>\r
-  <td>41617</td>\r
-  <td>35026</td>\r
- </tr>\r
- <tr>\r
-  <td>United Arab Emirates</td>\r
-  <td>70</td>\r
-  <td>4599</td>\r
-  <td>5193</td>\r
-  <td>6109</td>\r
-  <td>8253</td>\r
- </tr>\r
- <tr>\r
-  <td>United Kingdom</td>\r
-  <td>50616</td>\r
-  <td>61565</td>\r
-  <td>63528</td>\r
-  <td>66601</td>\r
-  <td>72365</td>\r
- </tr>\r
- <tr>\r
-  <td>United Republic of Tanzania</td>\r
-  <td>7650</td>\r
-  <td>43739</td>\r
-  <td>52109</td>\r
-  <td>67394</td>\r
-  <td>109450</td>\r
- </tr>\r
- <tr>\r
-  <td>United States of America</td>\r
-  <td>157813</td>\r
-  <td>314659</td>\r
-  <td>332334</td>\r
-  <td>358735</td>\r
-  <td>403932</td>\r
- </tr>\r
- <tr>\r
-  <td>United States Virgin Islands</td>\r
-  <td>27</td>\r
-  <td>110</td>\r
-  <td>108</td>\r
-  <td>103</td>\r
-  <td>75</td>\r
- </tr>\r
- <tr>\r
-  <td>Uruguay</td>\r
-  <td>2239</td>\r
-  <td>3361</td>\r
-  <td>3430</td>\r
-  <td>3546</td>\r
-  <td>3637</td>\r
- </tr>\r
- <tr>\r
-  <td>Uzbekistan</td>\r
-  <td>6314</td>\r
-  <td>27488</td>\r
-  <td>29456</td>\r
-  <td>32715</td>\r
-  <td>36439</td>\r
- </tr>\r
- <tr>\r
-  <td>Vanuatu</td>\r
-  <td>48</td>\r
-  <td>240</td>\r
-  <td>276</td>\r
-  <td>338</td>\r
-  <td>482</td>\r
- </tr>\r
- <tr>\r
-  <td>Venezuela (Bolivarian Republic of)</td>\r
-  <td>5094</td>\r
-  <td>28583</td>\r
-  <td>31292</td>\r
-  <td>35370</td>\r
-  <td>42042</td>\r
- </tr>\r
- <tr>\r
-  <td>Viet Nam</td>\r
-  <td>27367</td>\r
-  <td>88069</td>\r
-  <td>93647</td>\r
-  <td>102054</td>\r
-  <td>111666</td>\r
- </tr>\r
- <tr>\r
-  <td>Wallis and Futuna Islands</td>\r
-  <td>7</td>\r
-  <td>15</td>\r
-  <td>16</td>\r
-  <td>17</td>\r
-  <td>17</td>\r
- </tr>\r
- <tr>\r
-  <td>Western Sahara</td>\r
-  <td>14</td>\r
-  <td>513</td>\r
-  <td>625</td>\r
-  <td>775</td>\r
-  <td>938</td>\r
- </tr>\r
- <tr>\r
-  <td>Yemen</td>\r
-  <td>4316</td>\r
-  <td>23580</td>\r
-  <td>27819</td>\r
-  <td>35509</td>\r
-  <td>53689</td>\r
- </tr>\r
- <tr>\r
-  <td>Zambia</td>\r
-  <td>2340</td>\r
-  <td>12935</td>\r
-  <td>14980</td>\r
-  <td>18890</td>\r
-  <td>28957</td>\r
- </tr>\r
- <tr>\r
-  <td>Zimbabwe</td>\r
-  <td>2747</td>\r
-  <td>12523</td>\r
-  <td>14029</td>\r
-  <td>16780</td>\r
-  <td>22178</td>\r
- </tr>\r
-</tbody>\r
 </table>\r
 \r
 <p style='font-size:smaller;'>Data source: <a href="http://www.un.org/esa/population/unpop.htm">Population Division of the \r
index 5116aca..c8f848b 100644 (file)
@@ -23,25 +23,6 @@ Rico.inputtypes={search: 0, number: 0, range: 0, color: 0, tel: 0, url: 0, email
 Rico.windowLoaded=function() {
   this.windowIsLoaded=true;
   if (typeof Rico_CONFIG == 'object') {
-    var el = document.createElement('style');
-    document.getElementsByTagName('head')[0].appendChild(el);
-    if (!window.createPopup) { /* For Safari */
-      el.appendChild(document.createTextNode(''));
-    }
-    var s = document.styleSheets[document.styleSheets.length - 1];
-    this.addCssBackgroundRule(s,'.rico-icon',Rico_CONFIG.imgIcons,'no-repeat');
-    this.addCssBackgroundRule(s,'.ricoLG_Resize',Rico_CONFIG.imgResize,'repeat');
-    if (Rico_CONFIG.imgHeading) {
-      var repeat='repeat-x';
-      var pos='left center';
-      this.addCssBackgroundRule(s,'tr.ricoLG_hdg th',Rico_CONFIG.imgHeading,repeat,pos);
-      this.addCssBackgroundRule(s,'tr.ricoLG_hdg td',Rico_CONFIG.imgHeading,repeat,pos);
-      this.addCssBackgroundRule(s,'table.ricoLiveGrid thead td',Rico_CONFIG.imgHeading,repeat,pos);
-      this.addCssBackgroundRule(s,'table.ricoLiveGrid thead th',Rico_CONFIG.imgHeading,repeat,pos);
-      this.addCssBackgroundRule(s,'.ricoTitle',Rico_CONFIG.imgHeading,repeat,pos);
-      this.addCssBackgroundRule(s,'.Rico_accTitle',Rico_CONFIG.imgHeading,repeat,pos);
-    }
-
     if (Rico_CONFIG.enableLogging) this.enableLogging();
     if (Rico_CONFIG.enableHTML5) this._CheckInputTypes();
   }
@@ -53,23 +34,6 @@ Rico.windowLoaded=function() {
   }
 };
 
-Rico.addCssBackgroundRule=function(sheet,selector,imageUrl,repeat,position) {
-  if (!imageUrl) return;
-  this.addCssRule(sheet,selector,"background-image:url('"+imageUrl+"')");
-  this.addCssRule(sheet,selector,"background-repeat:"+repeat);
-  if (position) this.addCssRule(sheet,selector,"background-position:"+position);
-};
-
-Rico.addCssRule=function(sheet,selector,rule) {
-  if (sheet.addRule) {
-    sheet.addRule(selector, rule);
-  } else if (sheet.insertRule) {
-    sheet.insertRule (selector+" { "+rule+" }", 0);
-  } else {
-    alert('unable to add rule: '+rule);
-  }
-};
-
 // check for availability of HTML5 input types
 Rico._CheckInputTypes=function() {
   var i = document.createElement("input");
index b801bca..265ff23 100644 (file)
@@ -39,6 +39,8 @@ Rico.CalendarControl.prototype = {
   initialize: function(id,options) {
     this.id=id;
     var today=new Date();
+    this.defaultMin = new Date(today.getFullYear()-50,0,1);
+    this.defaultMax = new Date(today.getFullYear()+50,11,31);
     Rico.extend(this, new Rico.Popup());
     Rico.extend(this.options, {
       ignoreClicks:true,
@@ -46,8 +48,8 @@ Rico.CalendarControl.prototype = {
       showWeekNumber : 0,
       showToday : 1,
       dateFmt : 'ISO8601',
-      minDate : new Date(today.getFullYear()-50,0,1),
-      maxDate : new Date(today.getFullYear()+50,11,31)
+      minDate : this.defaultMin,
+      maxDate : this.defaultMax
     });
     Rico.extend(this.options, options || {});
     /**
@@ -215,8 +217,8 @@ Rico.CalendarControl.prototype = {
     this.yearPopup=new Rico.Popup(document.createElement("div"),{shim:false,zIndex:10});
     this.yearPopup.content.className='ricoCalYearPrompt';
     if (Rico.theme.calendarPopdown) Rico.addClass(this.yearPopup.content,Rico.theme.calendarPopdown);
-    var p1=document.createElement("p");
-    p1.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
+    this.yearPrompt=document.createElement("p");
+    this.yearPrompt.innerHTML="&nbsp;";
     var p2=document.createElement("p");
     this.yearInput=p2.appendChild(document.createElement("input"));
     this.yearInput.maxlength=4;
@@ -226,7 +228,7 @@ Rico.CalendarControl.prototype = {
     p2.appendChild(a);
     a=Rico.floatButton('Cancel', Rico.eventHandle(this,'popDownYear'));
     p2.appendChild(a);
-    this.yearPopup.content.appendChild(p1);
+    this.yearPopup.content.appendChild(this.yearPrompt);
     this.yearPopup.content.appendChild(p2);
     this.container.appendChild(this.yearPopup.container);
     this.yearPopup.closePopup();
@@ -363,6 +365,7 @@ Rico.CalendarControl.prototype = {
       return false;
     }
     this.popDownMonth();
+    this.yearPrompt.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
     this.yearInput.disabled=false;
     this.yearInput.value='';   // this.yearSelected
     this.openYrMo(this.yearPopup,1);
@@ -516,8 +519,13 @@ Rico.CalendarControl.prototype = {
     }
   },
 
-  open : function(curval) {
+  open : function(curval,column) {
     if (!this.bPageLoaded) return;
+    if (column) {
+      this.setDateFmt(column.format.dateFmt);
+      this.options.minDate=column.format.min || this.defaultMin;
+      this.options.maxDate=column.format.max || this.defaultMax;
+    }
     var today = new Date();
     this.dateNow  = today.getDate();
     this.monthNow = today.getMonth();
index 655e62e..eaba5e7 100644 (file)
@@ -793,11 +793,8 @@ Rico.TableColumnBase.prototype = {
  */
   getDisplayName: function(el) {
     var anchors=el.getElementsByTagName("A");
-    //Check the existance of A tags
-    if (anchors.length > 0)
-      return anchors[0].innerHTML;
-    else
-      return Rico.stripTags(el.innerHTML);
+    var s=anchors.length > 0 ? anchors[0].innerHTML : Rico.stripTags(el.innerHTML);
+    return Rico.trim(s);
   },
 
   _clear: function(gridCell) {
index 9b08735..07ab41b 100644 (file)
@@ -13,9 +13,6 @@
  *  and limitations under the License.
  */
 
-if(typeof Rico=='undefined') throw("LiveGrid requires the Rico JavaScript framework");
-
-
 /** @namespace */
 if (!Rico.Buffer) Rico.Buffer = {};
 
index cd2989c..4ada8ee 100644 (file)
@@ -185,71 +185,6 @@ Rico.TableColumn.textbox.prototype = {
 }
 
 
-Rico.TableColumn.HighlightCell = function(chkcol,chkval,highlightColor,highlightBackground,chkop) {
-  this.initialize(chkcol,chkval,highlightColor,highlightBackground,chkop);
-}
-
-Rico.TableColumn.HighlightCell.prototype = {
-/**
- * @class highlight a grid cell when a particular value is present in the specified column
- * @constructs
- */
-  initialize: function(chkcol,chkval,highlightColor,highlightBackground,chkop) {\r
-    this._chkcol=chkcol;\r
-    this._chkval=chkval;
-    this._chkop=chkop;\r
-    this._highlightColor=highlightColor;\r
-    this._highlightBackground=highlightBackground;\r
-  },\r
-\r
-  _clear: function(gridCell,windowRow) {\r
-    gridCell.style.color='';\r
-    gridCell.style.backgroundColor='';\r
-    gridCell.innerHTML='&nbsp;';\r
-  },\r
-\r
-  _display: function(v,gridCell,windowRow) {\r
-    var gridval=this.liveGrid.buffer.getWindowValue(windowRow,this._chkcol);\r
-    var match;\r
-    switch(this._chkop){
-        case '!=':
-          match=(gridval!=this._chkval);
-          break;
-        case '>':
-          match=(gridval>this._chkval);
-          break;
-        case '<':
-          match=(gridval<this._chkval);
-          break;
-        case '>=':
-          match=(gridval>=this._chkval);
-          break;
-        case '<=':
-          match=(gridval<=this._chkval);
-          break;
-        case 'abs>':
-          match=(Math.abs(gridval)>this._chkval);
-          break;
-        case 'abs<':
-          match=(Math.abs(gridval)<this._chkval);
-          break;
-        case 'abs>=':
-          match=(Math.abs(gridval)>=this._chkval);
-          break;
-        case 'abs<=':
-          match=(Math.abs(gridval)<=this._chkval);
-          break;
-        default:
-          match=(gridval==this._chkval);
-          break;
-    }
-    gridCell.style.color=match ? this._highlightColor : '';\r
-    gridCell.style.backgroundColor=match ? this._highlightBackground : '';\r
-    gridCell.innerHTML=this._format(v);\r
-  }\r
-}
-
-
 Rico.TableColumn.bgColor = function() {
 }
 
@@ -286,14 +221,15 @@ Rico.TableColumn.link.prototype = {
   },
 
   _create: function(gridCell,windowRow) {
-    this._anchors[windowRow]=Rico.createFormField(gridCell,'a',null,this.liveGrid.tableId+'_a_'+this.index+'_'+windowRow);
-    if (this._target) this._anchors[windowRow].target=this._target;
-    this._clear(gridCell,windowRow);
+    var a = gridCell.appendChild(document.createElement('a'));
+    if (this._target) a.target=this._target;
+    a.href='';
+    a.innerHTML=Rico.isIE ? '&nbsp;' : '';
+    this._anchors[windowRow] = a;
   },
 
   _clear: function(gridCell,windowRow) {
-    this._anchors[windowRow].href='';
-    this._anchors[windowRow].innerHTML='';
+    this._anchors[windowRow].style.display='none';
   },
 
   _display: function(v,gridCell,windowRow) {
@@ -308,6 +244,7 @@ Rico.TableColumn.link.prototype = {
     if (href && desc) {
       this._anchors[windowRow].href=href;
       this._anchors[windowRow].innerHTML=desc;
+      this._anchors[windowRow].style.display='';
     } else {
       this._clear(gridCell,windowRow);
     }
index 1721038..7a6874c 100644 (file)
@@ -49,6 +49,8 @@ Rico.TableEdit.prototype = {
     this.buttonHover=new Rico.HoverSet();
     this.dateRegExp=/^\s*(\w+)(\W)(\w+)(\W)(\w+)/i;
     this.createKeyArray();
+    if (typeof(this.options.ConfirmDeleteCol) != 'number')
+      this.options.ConfirmDeleteCol=this.keys.length > 0 ? -2 : -1;
     this.createEditDiv();
     this.saveMsg=Rico.$(liveGrid.tableId+'_savemsg');
     Rico.eventBind(document,"click", Rico.eventHandle(this,'clearSaveMsg'));
@@ -329,13 +331,15 @@ Rico.TableEdit.prototype = {
         if (!fmt.Help) fmt.Help=fmt.dateFmt;
         if (typeof fmt.min=='string') fmt.min=Rico.setISO8601(fmt.min) || new Date(fmt.min);
         if (typeof fmt.max=='string') fmt.max=Rico.setISO8601(fmt.max) || new Date(fmt.max);
+        fmt.Length=Math.max(fmt.dateFmt.length,10);
         if (Rico.inputtypes.date) {
+          // use the WebForms calendar
           field=Rico.createFormField(entry,'input','date',name,name);
           field.required=fmt.required;
           if (fmt.min) field.min=Rico.toISO8601String(fmt.min,3);
           if (fmt.max) field.max=Rico.toISO8601String(fmt.max,3);
           field.required=fmt.required;
-          fmt.SelectCtl=null;  // use the WebForms calendar instead of the Rico calendar
+          fmt.SelectCtl=null;  // no need for Rico calendar control
         } else {
           field=Rico.createFormField(entry,'input','text',name,name);
         }
@@ -372,7 +376,7 @@ Rico.TableEdit.prototype = {
         break;
     }
     if (field && fmt.SelectCtl) {
-      Rico.EditControls.applyTo(column,field);
+      Rico.EditControls.applyTo(column,field,fmt.EntryType=='D');
     }
     var hdrSuffix='';
     hdr.className='ricoEditLabel';
@@ -564,12 +568,12 @@ Rico.TableEdit.prototype = {
           elems[i].checked=o[elems[i].value]==1;
         break;
       case 'INPUT':
-        if (fldSpec.EntryType=='D' && fldvalue!=fldSpec.ColData) {
+        if (fldSpec.EntryType=='D') {
           // remove time data if it exists
           a=fldvalue.split(/\s|T/);
           fldvalue=a[0];
           if (this.isTextInput(e)) {
-            var d=Rico.setISO8601(fldvalue);
+            var d=fldvalue.toLowerCase() == 'today' ? new Date() : Rico.setISO8601(fldvalue);
             if (d) fldvalue=Rico.formatDate(d,fldSpec.dateFmt);
           }
         }
@@ -754,7 +758,7 @@ Rico.TableEdit.prototype = {
       if (c.format) {
         this.setField(i,c.format.ColData);
         if (c.format.SelectCtl) {
-          Rico.EditControls.resetValue(c);
+          if (c.format.EntryType != 'D') Rico.EditControls.resetValue(c);
           Rico.EditControls.displayClrImg(c, !c.format.UpdateOnly);
         }
       }
@@ -840,13 +844,14 @@ Rico.TableEdit.prototype = {
         desc=Rico.getPhraseById("thisRecord",this.options.RecordName);
         break;
       case -2 : // Use key/column header to identify the row
+        desc='';
         for (var k=0; k<this.keys.length; k++) {
           var i=this.keys[k].colidx;
           var fmt=this.grid.columns[i].format;
           if (fmt.EntryType.length>1 && fmt.EntryType.charAt(1)=='L') i++;
-          var value=Rico.stripTags(this.grid.cell(rowIdx,i).innerHTML).replace(/&nbsp;/g,' ');
+          var value=Rico.trim(Rico.stripTags(this.grid.cell(this.rowIdx,i).innerHTML).replace(/&nbsp;/g,' '));
           if (desc) desc+=', ';
-          desc+=this.grid.columns[i].displayName+" "+value;
+          desc+=this.grid.columns[i].displayName + ' \"' + value + '\"';
         }
         break;
       default   :
@@ -910,8 +915,7 @@ Rico.TableEdit.prototype = {
       // apply a century to 2-digit years
       yy+=curyr - (curyr % 100);
     }
-    d.setFullYear(yy,mm,dd);
-    return d;
+    return new Date(yy,mm,dd,0,0,0);  // ensure time is midnight
   },
 
   TESubmit: function(e) {
@@ -1028,7 +1032,7 @@ Rico.EditControls = {
     this.zIndex=Math.max(this.zIndex,z+10);
   },
 
-  applyTo: function(column,inputCtl) {
+  applyTo: function(column,inputCtl,showInput) {
     var wInfo=this.widgetList[column.format.SelectCtl];
     if (!wInfo) return;
     Rico.log('Rico.EditControls.applyTo: '+column.displayName+' : '+column.format.SelectCtl);
@@ -1049,7 +1053,11 @@ Rico.EditControls = {
     Rico.eventBind(newimg,"click", Rico.eventHandle(this,'processClick'));
     inputCtl.parentNode.appendChild(descSpan);
     inputCtl.parentNode.appendChild(newimg);
-    inputCtl.style.display='none';    // comment out this line for debugging
+    if (showInput) {
+      descSpan.style.display='none'; 
+    } else {
+      inputCtl.style.display='none';    // comment out this line for debugging
+    }
     var clr;
     if (column.format.isNullable) {
       clr=Rico.clearButton(Rico.eventHandle(this,'processClear'));
index ca022fb..406e7ce 100644 (file)
@@ -13,9 +13,6 @@
  *  and limitations under the License.
  */
 
- if(typeof Rico=='undefined')
-  throw("GridMenu requires the Rico JavaScript framework");
-
 /**
  * Standard menu for LiveGrid
  */
index f9cc20e..0c50591 100644 (file)
@@ -305,7 +305,12 @@ Rico.Window.prototype = {
     this.createContainer(options);
     this.content.appendChild(this.titleDiv);
     contentParam=Rico.$(contentParam);
-    this.contentDiv=contentParam || document.createElement('div');
+    if (contentParam) {
+      this.contentDiv=contentParam
+      contentParam.parentNode.insertBefore(this.container,contentParam);
+    } else {
+      this.contentDiv=document.createElement('div');
+    }
     this.content.appendChild(this.contentDiv);
 
     // create title area
index 67fbd24..13d95d9 100644 (file)
@@ -34,12 +34,12 @@ tr.ricoLG_hdg .ricoLG_cell {
   font-weight: normal;\r
 }\r
 \r
-div.ricoLG_outerDiv a:visited, div.ricoLG_outerDiv a:link {\r
+div.ricoLG_outerDiv .ricoLG_top a:visited, div.ricoLG_outerDiv .ricoLG_top a:link {\r
   color: #009;\r
   text-decoration: none;\r
 }\r
 \r
-div.ricoLG_outerDiv a:hover {\r
+div.ricoLG_outerDiv .ricoLG_top a:hover {\r
   color: #009;\r
   text-decoration: underline;\r
 }\r
index 53dcd32..8f7a357 100644 (file)
@@ -2,8 +2,6 @@
  *Rico stylesheet\r
  */\r
 \r
-body {font-size:100%;}\r
-\r
 /* reset Themeroller font size */ \r
 div.ui-widget {\r
   font-size: 80%;\r
@@ -134,10 +132,7 @@ thead.ricoLG_top th, thead.ricoLG_top td, table.ricoLiveGrid td, table.ricoLiveG
   border-style: solid;\r
   border-color: silver;\r
   border-width: 0px 0px 1px 1px;\r
-}\r
-\r
-* html thead.ricoLG_top th, * html thead.ricoLG_top td, * html table.ricoLiveGrid td, * html table.ricoLiveGrid th {\r
-  position: relative; /* IE6  only */\r
+  *position: relative; /* IE6-7  only */\r
 }\r
 \r
 .ricoLG_bottom th, .ricoLG_bottom td {\r
@@ -248,9 +243,6 @@ div.ricoLG_editResponseDiv {
   z-index:300;\r
   top:0px;\r
   left:0px;\r
-}\r
-\r
-div.ricoLG_editResponseDiv {\r
   font-size: 85%;\r
 }\r
 \r
@@ -279,6 +271,10 @@ form .ricoEditLabel {
   margin:0px;\r
 }\r
 \r
+.ricoLG_editDiv textarea {\r
+  font-size: 100%;\r
+}\r
+\r
 .ricoLG_editDiv .tabContent, div.ricoLG_editDiv .noTabContent {\r
   overflow: hidden;\r
   padding: 4px;\r
@@ -443,7 +439,7 @@ a.RicoButtonAnchorNative:hover {
 \r
 \r
 /* ricoKeywordSearch */\r
-.ricoKeywordSearch {\r
+.ricoKeywordSearch {\r
   font-size: 70%;\r
 }\r
 \r
@@ -552,7 +548,7 @@ td.RicoCalHeading table a {
   padding: 0px !important;\r
 }\r
 \r
-.ricoCalContainer .ricoSelectedDay {\r
+.ricoCalContainer .ricoCalBody  td.ricoSelectedDay {\r
   font-weight:bold;\r
   background-color: #FFFF66 !important;\r
 }\r
@@ -662,8 +658,8 @@ td.ricoCalToday {
   font-weight:bold;\r
 }\r
 \r
-.ricoCalContainer  .ricoCalToday {\r
-  background-color: #33FFFF !important;\r
+.ricoCalContainer  .ricoCalBody  td.ricoCalToday {\r
+  background-color: #33FFFF;\r
 }\r
 \r
 td.ricoCalWeekNum {\r
@@ -940,6 +936,7 @@ a span {
 span.ricoClear {\r
   display:-moz-inline-box;\r
   display:inline-block;\r
+  cursor: pointer;\r
 }\r
 \r
 span.RicoCheckmark {\r
index 47cdac0..70b4965 100644 (file)
@@ -4,35 +4,12 @@ Rico.onLoadCallbacks=[];
 Rico.windowIsLoaded=false;
 Rico.inputtypes={search:0,number:0,range:0,color:0,tel:0,url:0,email:0,date:0,month:0,week:0,time:0,datetime:0,"datetime-local":0};
 Rico.windowLoaded=function(){this.windowIsLoaded=true;
-if(typeof Rico_CONFIG=="object"){var b=document.createElement("style");
-document.getElementsByTagName("head")[0].appendChild(b);
-if(!window.createPopup){b.appendChild(document.createTextNode(""))
-}var a=document.styleSheets[document.styleSheets.length-1];
-this.addCssBackgroundRule(a,".rico-icon",Rico_CONFIG.imgIcons,"no-repeat");
-this.addCssBackgroundRule(a,".ricoLG_Resize",Rico_CONFIG.imgResize,"repeat");
-if(Rico_CONFIG.imgHeading){var c="repeat-x";
-var e="left center";
-this.addCssBackgroundRule(a,"tr.ricoLG_hdg th",Rico_CONFIG.imgHeading,c,e);
-this.addCssBackgroundRule(a,"tr.ricoLG_hdg td",Rico_CONFIG.imgHeading,c,e);
-this.addCssBackgroundRule(a,"table.ricoLiveGrid thead td",Rico_CONFIG.imgHeading,c,e);
-this.addCssBackgroundRule(a,"table.ricoLiveGrid thead th",Rico_CONFIG.imgHeading,c,e);
-this.addCssBackgroundRule(a,".ricoTitle",Rico_CONFIG.imgHeading,c,e);
-this.addCssBackgroundRule(a,".Rico_accTitle",Rico_CONFIG.imgHeading,c,e)
-}if(Rico_CONFIG.enableLogging){this.enableLogging()
+if(typeof Rico_CONFIG=="object"){if(Rico_CONFIG.enableLogging){this.enableLogging()
 }if(Rico_CONFIG.enableHTML5){this._CheckInputTypes()
 }}Rico.writeDebugMsg=Rico.log;
 Rico.log("Processing callbacks");
-while(this.onLoadCallbacks.length>0){var d=this.onLoadCallbacks.shift();
-if(d){d()
-}}};
-Rico.addCssBackgroundRule=function(d,b,c,e,a){if(!c){return
-}this.addCssRule(d,b,"background-image:url('"+c+"')");
-this.addCssRule(d,b,"background-repeat:"+e);
-if(a){this.addCssRule(d,b,"background-position:"+a)
-}};
-Rico.addCssRule=function(b,a,c){if(b.addRule){b.addRule(a,c)
-}else{if(b.insertRule){b.insertRule(a+" { "+c+" }",0)
-}else{alert("unable to add rule: "+c)
+while(this.onLoadCallbacks.length>0){var a=this.onLoadCallbacks.shift();
+if(a){a()
 }}};
 Rico._CheckInputTypes=function(){var a=document.createElement("input");
 for(var b in this.inputtypes){a.setAttribute("type","text");
@@ -527,8 +504,10 @@ this.options.dragElement=this.titleDiv;
 this.createContainer(a);
 this.content.appendChild(this.titleDiv);
 b=Rico.$(b);
-this.contentDiv=b||document.createElement("div");
-this.content.appendChild(this.contentDiv);
+if(b){this.contentDiv=b;
+b.parentNode.insertBefore(this.container,b)
+}else{this.contentDiv=document.createElement("div")
+}this.content.appendChild(this.contentDiv);
 this.titleDiv.className="ricoTitle";
 if(Rico.theme.dialogTitle){Rico.addClass(this.titleDiv,Rico.theme.dialogTitle)
 }this.titleDiv.style.position="relative";
@@ -1065,8 +1044,10 @@ Rico.CalendarControl=function(b,a){this.initialize(b,a)
 };
 Rico.CalendarControl.prototype={initialize:function(d,c){this.id=d;
 var b=new Date();
+this.defaultMin=new Date(b.getFullYear()-50,0,1);
+this.defaultMax=new Date(b.getFullYear()+50,11,31);
 Rico.extend(this,new Rico.Popup());
-Rico.extend(this.options,{ignoreClicks:true,startAt:0,showWeekNumber:0,showToday:1,dateFmt:"ISO8601",minDate:new Date(b.getFullYear()-50,0,1),maxDate:new Date(b.getFullYear()+50,11,31)});
+Rico.extend(this.options,{ignoreClicks:true,startAt:0,showWeekNumber:0,showToday:1,dateFmt:"ISO8601",minDate:this.defaultMin,maxDate:this.defaultMax});
 Rico.extend(this.options,c||{});
 this.close=this.closePopup;
 this.bPageLoaded=false;
@@ -1091,7 +1072,7 @@ if(d){this.setDiv(d)
 this.container.id=this.id
 }Rico.addClass(this.content,Rico.theme.calendar||"ricoCalContainer");
 this.direction=Rico.direction(this.container);
-var b,h,g,f,o,l,p,e;
+var b,h,g,f,n,l,o,e;
 this.colStart=this.options.showWeekNumber?1:0;
 var k=7+this.colStart;
 this.maintab=document.createElement("table");
@@ -1134,9 +1115,9 @@ if(g==0){h.innerHTML=Rico.getPhraseById("calWeekHdg")
 }}for(f=0;
 f<7;
 f++){h=b.insertCell(-1);
-if(g==0){o=(f+this.options.startAt)%7;
-h.innerHTML=Rico.dayAbbr(o);
-this.styles[f]="ricoCal"+o
+if(g==0){n=(f+this.options.startAt)%7;
+h.innerHTML=Rico.dayAbbr(n);
+this.styles[f]="ricoCal"+n
 }else{h.className=this.styles[f];
 if(Rico.theme.calendarDay){Rico.addClass(h,Rico.theme.calendarDay)
 }}}}this.content.appendChild(this.maintab);
@@ -1178,8 +1159,8 @@ this.monthPopup.closePopup();
 this.yearPopup=new Rico.Popup(document.createElement("div"),{shim:false,zIndex:10});
 this.yearPopup.content.className="ricoCalYearPrompt";
 if(Rico.theme.calendarPopdown){Rico.addClass(this.yearPopup.content,Rico.theme.calendarPopdown)
-}var n=document.createElement("p");
-n.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
+}this.yearPrompt=document.createElement("p");
+this.yearPrompt.innerHTML="&nbsp;";
 var m=document.createElement("p");
 this.yearInput=m.appendChild(document.createElement("input"));
 this.yearInput.maxlength=4;
@@ -1189,7 +1170,7 @@ l=Rico.floatButton("Checkmark",Rico.eventHandle(this,"processPopUpYear"));
 m.appendChild(l);
 l=Rico.floatButton("Cancel",Rico.eventHandle(this,"popDownYear"));
 m.appendChild(l);
-this.yearPopup.content.appendChild(n);
+this.yearPopup.content.appendChild(this.yearPrompt);
 this.yearPopup.content.appendChild(m);
 this.container.appendChild(this.yearPopup.container);
 this.yearPopup.closePopup();
@@ -1268,6 +1249,7 @@ this.yearInput.disabled=true
 if(this.yearPopup.visible()){this.popDownYear();
 return false
 }this.popDownMonth();
+this.yearPrompt.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
 this.yearInput.disabled=false;
 this.yearInput.value="";
 this.openYrMo(this.yearPopup,1);
@@ -1361,27 +1343,30 @@ if(isNaN(b)){return
 var a=Rico.formatDate(h,this.dateFmt=="ISO8601"?"yyyy-mm-dd":this.dateFmt);
 if(this.returnValue){this.returnValue(a);
 this.close()
-}},open:function(b){if(!this.bPageLoaded){return
+}},open:function(c,b){if(!this.bPageLoaded){return
+}if(b){this.setDateFmt(b.format.dateFmt);
+this.options.minDate=b.format.min||this.defaultMin;
+this.options.maxDate=b.format.max||this.defaultMax
 }var a=new Date();
 this.dateNow=a.getDate();
 this.monthNow=a.getMonth();
 this.yearNow=a.getFullYear();
 this.oyearSelected=-1;
-if(typeof b=="object"){this.odateSelected=b.getDate();
-this.omonthSelected=b.getMonth();
-this.oyearSelected=b.getFullYear()
-}else{if(this.dateFmt=="ISO8601"){var c=Rico.setISO8601(b);
-if(c){this.odateSelected=c.getDate();
+if(typeof c=="object"){this.odateSelected=c.getDate();
 this.omonthSelected=c.getMonth();
 this.oyearSelected=c.getFullYear()
-}}else{if(this.re.exec(b)){var f=[RegExp.$1,RegExp.$3,RegExp.$5];
-this.odateSelected=parseInt(f[this.dateParts.dd],10);
-this.omonthSelected=parseInt(f[this.dateParts.mm],10)-1;
-this.oyearSelected=parseInt(f[this.dateParts.yyyy],10);
+}else{if(this.dateFmt=="ISO8601"){var e=Rico.setISO8601(c);
+if(e){this.odateSelected=e.getDate();
+this.omonthSelected=e.getMonth();
+this.oyearSelected=e.getFullYear()
+}}else{if(this.re.exec(c)){var g=[RegExp.$1,RegExp.$3,RegExp.$5];
+this.odateSelected=parseInt(g[this.dateParts.dd],10);
+this.omonthSelected=parseInt(g[this.dateParts.mm],10)-1;
+this.oyearSelected=parseInt(g[this.dateParts.yyyy],10);
 if(this.oyearSelected<100){this.oyearSelected+=this.yearNow-(this.yearNow%100);
-var e=this.options.maxDate.getFullYear();
-while(this.oyearSelected>e){this.oyearSelected-=100
-}}}else{if(b){alert("ERROR: invalid date passed to calendar ("+b+")")
+var f=this.options.maxDate.getFullYear();
+while(this.oyearSelected>f){this.oyearSelected-=100
+}}}else{if(c){alert("ERROR: invalid date passed to calendar ("+c+")")
 }}}}if(this.oyearSelected>0){this.dateSelected=this.odateSelected;
 this.monthSelected=this.omonthSelected;
 this.yearSelected=this.oyearSelected
@@ -2371,10 +2356,10 @@ a.className="ricoLG_Resize";
 a.style[this.liveGrid.align[1]]="0px";
 this.hdrCellDiv.appendChild(a);
 Rico.eventBind(a,"mousedown",this.mouseDownHandler,false)
-},getDisplayName:function(a){var b=a.getElementsByTagName("A");
-if(b.length>0){return b[0].innerHTML
-}else{return Rico.stripTags(a.innerHTML)
-}},_clear:function(a){a.innerHTML="&nbsp;"
+},getDisplayName:function(b){var c=b.getElementsByTagName("A");
+var a=c.length>0?c[0].innerHTML:Rico.stripTags(b.innerHTML);
+return Rico.trim(a)
+},_clear:function(a){a.innerHTML="&nbsp;"
 },clearCell:function(b){var a=this.cell(b);
 this._clear(a,b);
 if(this.liveGrid.buffer&&this.liveGrid.buffer.options.acceptStyle){a.style.cssText=""
@@ -2687,8 +2672,7 @@ if(g.match(d)){this.filterRows.push(c)
 }}}else{this.setUnfiltered()
 }this.liveGrid.applyFilters()
 }};
-if(typeof Rico=="undefined"){throw ("LiveGrid requires the Rico JavaScript framework")
-}if(!Rico.Buffer){Rico.Buffer={}
+if(!Rico.Buffer){Rico.Buffer={}
 }Rico.Buffer.Base=function(b,a){this.initialize(b,a)
 };
 Rico.Buffer.Base.prototype={initialize:function(b,a){this.clear();
@@ -4082,42 +4066,6 @@ a.style.display="none"
 b.style.display="";
 b.value=a
 }};
-Rico.TableColumn.HighlightCell=function(a,c,e,b,d){this.initialize(a,c,e,b,d)
-};
-Rico.TableColumn.HighlightCell.prototype={initialize:function(a,c,e,b,d){this._chkcol=a;
-this._chkval=c;
-this._chkop=d;
-this._highlightColor=e;
-this._highlightBackground=b
-},_clear:function(a,b){a.style.color="";
-a.style.backgroundColor="";
-a.innerHTML="&nbsp;"
-},_display:function(b,d,e){var a=this.liveGrid.buffer.getWindowValue(e,this._chkcol);
-var c;
-switch(this._chkop){case"!=":c=(a!=this._chkval);
-break;
-case">":c=(a>this._chkval);
-break;
-case"<":c=(a<this._chkval);
-break;
-case">=":c=(a>=this._chkval);
-break;
-case"<=":c=(a<=this._chkval);
-break;
-case"abs>":c=(Math.abs(a)>this._chkval);
-break;
-case"abs<":c=(Math.abs(a)<this._chkval);
-break;
-case"abs>=":c=(Math.abs(a)>=this._chkval);
-break;
-case"abs<=":c=(Math.abs(a)<=this._chkval);
-break;
-default:c=(a==this._chkval);
-break
-}d.style.color=c?this._highlightColor:"";
-d.style.backgroundColor=c?this._highlightBackground:"";
-d.innerHTML=this._format(b)
-}};
 Rico.TableColumn.bgColor=function(){};
 Rico.TableColumn.bgColor.prototype={_clear:function(a,b){a.style.backgroundColor=""
 },_display:function(a,b,c){b.style.backgroundColor=a
@@ -4128,18 +4076,20 @@ Rico.TableColumn.link.prototype={initialize:function(a,c,b){this._href=a;
 this._target=c;
 this._linktext=b;
 this._anchors=[]
-},_create:function(a,b){this._anchors[b]=Rico.createFormField(a,"a",null,this.liveGrid.tableId+"_a_"+this.index+"_"+b);
-if(this._target){this._anchors[b].target=this._target
-}this._clear(a,b)
-},_clear:function(a,b){this._anchors[b].href="";
-this._anchors[b].innerHTML=""
+},_create:function(c,d){var b=c.appendChild(document.createElement("a"));
+if(this._target){b.target=this._target
+}b.href="";
+b.innerHTML=Rico.isIE?"&nbsp;":"";
+this._anchors[d]=b
+},_clear:function(a,b){this._anchors[b].style.display="none"
 },_display:function(b,d,f){var c=this.liveGrid.buffer;
 var a=this._href=="self"?b:this._href.replace(/\{\d+\}/g,function(g){var h=parseInt(g.substr(1),10);
 return encodeURIComponent(c.getWindowValue(f,h))
 });
 var e=this._linktext||b;
 if(a&&e){this._anchors[f].href=a;
-this._anchors[f].innerHTML=e
+this._anchors[f].innerHTML=e;
+this._anchors[f].style.display=""
 }else{this._clear(d,f)
 }}};
 Rico.TableColumn.image=function(a,b){this.initialize(a,b)
@@ -4185,8 +4135,7 @@ b.style.height="100%";
 if(c.firstChild){c.replaceChild(b,c.firstChild)
 }else{c.appendChild(b)
 }}};
-if(typeof Rico=="undefined"){throw ("GridMenu requires the Rico JavaScript framework")
-}Rico.GridMenu=function(a){this.initialize(a)
+Rico.GridMenu=function(a){this.initialize(a)
 };
 Rico.GridMenu.prototype={initialize:function(a){this.options={width:"18em",dataMenuHandler:null};
 Rico.extend(this.options,a||{});
@@ -4628,7 +4577,8 @@ this.addText=Rico.getPhraseById("addRecord",this.options.RecordName);
 this.buttonHover=new Rico.HoverSet();
 this.dateRegExp=/^\s*(\w+)(\W)(\w+)(\W)(\w+)/i;
 this.createKeyArray();
-this.createEditDiv();
+if(typeof(this.options.ConfirmDeleteCol)!="number"){this.options.ConfirmDeleteCol=this.keys.length>0?-2:-1
+}this.createEditDiv();
 this.saveMsg=Rico.$(b.tableId+"_savemsg");
 Rico.eventBind(document,"click",Rico.eventHandle(this,"clearSaveMsg"));
 this.extraMenuItems=[];
@@ -4820,7 +4770,8 @@ case"D":if(!b.isNullable){b.required=true
 }if(!b.Help){b.Help=b.dateFmt
 }if(typeof b.min=="string"){b.min=Rico.setISO8601(b.min)||new Date(b.min)
 }if(typeof b.max=="string"){b.max=Rico.setISO8601(b.max)||new Date(b.max)
-}if(Rico.inputtypes.date){e=Rico.createFormField(f,"input","date",a,a);
+}b.Length=Math.max(b.dateFmt.length,10);
+if(Rico.inputtypes.date){e=Rico.createFormField(f,"input","date",a,a);
 e.required=b.required;
 if(b.min){e.min=Rico.toISO8601String(b.min,3)
 }if(b.max){e.max=Rico.toISO8601String(b.max,3)
@@ -4852,7 +4803,7 @@ default:e=Rico.createFormField(f,"input","text",a,a);
 if(!b.isNullable&&b.EntryType!="T"){b.required=true
 }this.initField(e,b);
 break
-}if(e&&b.SelectCtl){Rico.EditControls.applyTo(c,e)
+}if(e&&b.SelectCtl){Rico.EditControls.applyTo(c,e,b.EntryType=="D")
 }var g="";
 h.className="ricoEditLabel";
 if(b.Help){h.title=b.Help;
@@ -4966,9 +4917,9 @@ j++){f[n[j]]=1
 j<c.length;
 j++){c[j].checked=f[c[j].value]==1
 }break;
-case"INPUT":if(p.EntryType=="D"&&m!=p.ColData){n=m.split(/\s|T/);
+case"INPUT":if(p.EntryType=="D"){n=m.split(/\s|T/);
 m=n[0];
-if(this.isTextInput(k)){var l=Rico.setISO8601(m);
+if(this.isTextInput(k)){var l=m.toLowerCase()=="today"?new Date():Rico.setISO8601(m);
 if(l){m=Rico.formatDate(l,p.dateFmt)
 }}}k.value=m;
 break;
@@ -5083,8 +5034,8 @@ for(var a=0;
 a<this.grid.columns.length;
 a++){var b=this.grid.columns[a];
 if(b.format){this.setField(a,b.format.ColData);
-if(b.format.SelectCtl){Rico.EditControls.resetValue(b);
-Rico.EditControls.displayClrImg(b,!b.format.UpdateOnly)
+if(b.format.SelectCtl){if(b.format.EntryType!="D"){Rico.EditControls.resetValue(b)
+}Rico.EditControls.displayClrImg(b,!b.format.UpdateOnly)
 }}}},addRecord:function(){this.menu.cancelmenu();
 this.formPopup.setTitle(this.addText);
 this.addPrepare();
@@ -5128,14 +5079,15 @@ this.processCallback(this.options.formClose)
 var f;
 switch(this.options.ConfirmDeleteCol){case -1:f=Rico.getPhraseById("thisRecord",this.options.RecordName);
 break;
-case -2:for(var b=0;
+case -2:f="";
+for(var b=0;
 b<this.keys.length;
 b++){var c=this.keys[b].colidx;
 var a=this.grid.columns[c].format;
 if(a.EntryType.length>1&&a.EntryType.charAt(1)=="L"){c++
-}var e=Rico.stripTags(this.grid.cell(rowIdx,c).innerHTML).replace(/&nbsp;/g," ");
+}var e=Rico.trim(Rico.stripTags(this.grid.cell(this.rowIdx,c).innerHTML).replace(/&nbsp;/g," "));
 if(f){f+=", "
-}f+=this.grid.columns[c].displayName+" "+e
+}f+=this.grid.columns[c].displayName+' "'+e+'"'
 }break;
 default:f='"'+Rico.truncate(this.getConfirmDesc(this.rowIdx),50)+'"';
 break
@@ -5183,8 +5135,7 @@ if(a==0||a>31){return NaN
 if(f>11){return NaN
 }var h=parseInt(i[dateParts.yyyy],10);
 if(h<100){h+=b-(b%100)
-}g.setFullYear(h,f,a);
-return g
+}return new Date(h,f,a,0,0,0)
 },TESubmit:function(j){var g,h,k,l,f,d,c=[];
 Rico.eventStop(j);
 Rico.log("Event: TESubmit called to validate input");
@@ -5246,29 +5197,30 @@ b.returnValue=function(d,e){a.setValue(b,d,e)
 };
 Rico.log("Rico.EditControls.register:"+b.id)
 },setZ:function(a){this.zIndex=Math.max(this.zIndex,a+10)
-},applyTo:function(e,f){var c=this.widgetList[e.format.SelectCtl];
-if(!c){return
-}Rico.log("Rico.EditControls.applyTo: "+e.displayName+" : "+e.format.SelectCtl);
-var a,d=document.createElement("span");
-if(c.imgsrc.indexOf(".")==-1&&c.imgsrc.indexOf("/")==-1){a=document.createElement("span");
-a.className=c.imgsrc
+},applyTo:function(f,g,b){var d=this.widgetList[f.format.SelectCtl];
+if(!d){return
+}Rico.log("Rico.EditControls.applyTo: "+f.displayName+" : "+f.format.SelectCtl);
+var a,e=document.createElement("span");
+if(d.imgsrc.indexOf(".")==-1&&d.imgsrc.indexOf("/")==-1){a=document.createElement("span");
+a.className=d.imgsrc
 }else{a=document.createElement("img");
-a.src=c.imgsrc
+a.src=d.imgsrc
 }a.style.verticalAlign="top";
 a.style.marginLeft="4px";
 a.style.cursor="pointer";
-a.id=this.imgId(e.format.FieldName);
+a.id=this.imgId(f.format.FieldName);
 Rico.eventBind(a,"click",Rico.eventHandle(this,"processClick"));
-f.parentNode.appendChild(d);
-f.parentNode.appendChild(a);
-f.style.display="none";
-var b;
-if(e.format.isNullable){b=Rico.clearButton(Rico.eventHandle(this,"processClear"));
-b.id=a.id+"_clear";
-f.parentNode.appendChild(b)
-}this.elemList[a.id]={descSpan:d,inputCtl:f,widget:c.widget,listObj:c,column:e,clrimg:b};
-e.format.selectIcon=a;
-e.format.selectDesc=d
+g.parentNode.appendChild(e);
+g.parentNode.appendChild(a);
+if(b){e.style.display="none"
+}else{g.style.display="none"
+}var c;
+if(f.format.isNullable){c=Rico.clearButton(Rico.eventHandle(this,"processClear"));
+c.id=a.id+"_clear";
+g.parentNode.appendChild(c)
+}this.elemList[a.id]={descSpan:e,inputCtl:g,widget:d.widget,listObj:d,column:f,clrimg:c};
+f.format.selectIcon=a;
+f.format.selectDesc=e
 },displayClrImg:function(c,a){var b=this.elemList[this.imgId(c.format.FieldName)];
 if(b&&b.clrimg){b.clrimg.style.display=a?"inline-block":"none"
 }},processClear:function(c){var b=Rico.eventElement(c);