[TemporaryStorage] add files required for SDK build
[samples/web/TemporaryStorage.git] / tizen-web-ui-fw / latest / js / src / widgets / listview.autodividers.js
1 (function( $, undefined ) {
2
3 $.mobile.listview.prototype.options.autodividers = false;
4 $.mobile.listview.prototype.options.autodividersSelector = function( elt ) {
5         // look for the text in the given element
6         var text = elt.text() || null;
7
8         if ( !text ) {
9                 return null;
10         }
11
12         // create the text for the divider (first uppercased letter)
13         text = text.trim().slice( 0, 1 ).toUpperCase();
14
15         return text;
16 };
17
18 $.mobile.$document.delegate( "ul,ol", "listviewcreate", function() {
19
20         var list = $( this ),
21                         listview = list.data( "listview" );
22
23         if ( !listview || !listview.options.autodividers ) {
24                 return;
25         }
26
27         var replaceDividers = function () {
28                 list.find( "li:jqmData(role='list-divider')" ).remove();
29
30                 var lis = list.find( 'li' ),
31                         lastDividerText = null, li, dividerText;
32
33                 for ( var i = 0; i < lis.length ; i++ ) {
34                         li = lis[i];
35                         dividerText = listview.options.autodividersSelector( $( li ) );
36
37                         if ( dividerText && lastDividerText !== dividerText ) {
38                                 var divider = document.createElement( 'li' );
39                                 divider.appendChild( document.createTextNode( dividerText ) );
40                                 divider.setAttribute( 'data-' + $.mobile.ns + 'role', 'list-divider' );
41                                 li.parentNode.insertBefore( divider, li );
42                         }
43
44                         lastDividerText = dividerText;
45                 }
46         };
47
48         var afterListviewRefresh = function () {
49                 list.unbind( 'listviewafterrefresh', afterListviewRefresh );
50                 replaceDividers();
51                 listview.refresh();
52                 list.bind( 'listviewafterrefresh', afterListviewRefresh );
53         };
54
55         afterListviewRefresh();
56 });
57
58 })( jQuery );