+ var firstItem = element.getFirst( listItem );\r
+ var oldStart = firstItem.getAttribute( 'value' ) || element.getAttribute( 'start' ) || 1;\r
+\r
+ // Force start number on list root.\r
+ element.getFirst( listItem ).removeAttribute( 'value' );\r
+ var val = parseInt( this.getValue(), 10 );\r
+ if ( isNaN( val ) )\r
+ element.removeAttribute( 'start' );\r
+ else\r
+ element.setAttribute( 'start', val );\r
+\r
+ // Update consequent list item numbering.\r
+ var nextItem = firstItem, conseq = oldStart, startNumber = isNaN( val ) ? 1 : val;\r
+ while ( ( nextItem = nextItem.getNext( listItem ) ) && conseq++ )\r
+ {\r
+ if ( nextItem.getAttribute( 'value' ) == conseq )\r
+ nextItem.setAttribute( 'value', startNumber + conseq - oldStart );\r
+ }\r