diff --git a/_globalnav.html b/_globalnav.html
index 778442e3..97acaa99 100644
--- a/_globalnav.html
+++ b/_globalnav.html
@@ -89,10 +89,13 @@
diff --git a/css/jQuery.mobile.globalnav.css b/css/jQuery.mobile.globalnav.css
index 535b1566..db198844 100644
--- a/css/jQuery.mobile.globalnav.css
+++ b/css/jQuery.mobile.globalnav.css
@@ -4,7 +4,16 @@
* Dual licensed under the MIT (MIT-LICENSE.txt) or GPL (GPL-LICENSE.txt) licenses.
*/
.ui-globalnav { overflow: hidden; width: 100%; overflow: hidden; }
-.ui-globalnav ul { list-style:none; padding: 0; margin: 0; position: relative; display: block; border: 0;}
-.ui-globalnav li { float: left; margin:0; padding:0; }
-.ui-globalnav li .ui-btn { display: block; font-size: 12px; text-align: center; margin: 0 -1px; outline: none; border-top-width: 0; border-bottom-width: 0; }
-.ui-globalnav li .ui-btn-inner { padding-left: 15px; padding-right: 15px; }
\ No newline at end of file
+.ui-globalnav-disable { display: none; }
+.ui-globalnav ul, .ui-globalnav-expanded ul { list-style:none; padding: 0; margin: 0; position: relative; display: block; border: 0;}
+.ui-globalnav-collapsed ul { float: left; width: 75%; }
+.ui-globalnav-collapsed .ui-globalnav-toggle { float: left; width: 25%; }
+.ui-globalnav li.ui-globalnav-truncate { position: absolute; left: -99999px; top: -99999px; }
+.ui-globalnav li .ui-btn, .ui-globalnav .ui-globalnav-toggle .ui-btn { display: block; font-size: 12px; text-align: center; margin: 0 -1px; outline: none; border-top-width: 0; border-bottom-width: 0; }
+.ui-globalnav .ui-btn-inner { padding-left: 15px; padding-right: 15px; }
+
+
+.ui-globalnav-expanded .ui-btn { margin-left: 7px; margin-top: 7px; }
+.ui-globalnav-expanded .ui-block-c .ui-btn { margin-right: 7px; }
+.ui-globalnav-expanded .ui-btn-icon-top .ui-btn-inner { padding: 45px 5px 15px; text-align: center; }
+.ui-globalnav-expanded .ui-btn-icon-top .ui-icon { top: 15px; }
\ No newline at end of file
diff --git a/js/jQuery.mobile.globalnav.js b/js/jQuery.mobile.globalnav.js
index 0f9c61a6..e2a3370f 100755
--- a/js/jQuery.mobile.globalnav.js
+++ b/js/jQuery.mobile.globalnav.js
@@ -10,24 +10,53 @@ $.fn.globalnav = function(settings){
if($(this).find('.ui-globalnav').length){ return; }
//remove any other globalnav currently present
- $('.ui-globalnav').remove();
+ $('[data-role="globalnav"]:has(.ui-globalnav)').remove();
var o = $.extend({
- fixedAs: 'footer'
+ fixedAs: 'footer',
+ moreText: 'More...',
+ thisId: $(this).parents('.ui-page').attr('id') + '-nav'
},settings);
- //wrap it with footer classes
- var $globalnav = $(this);
- $globalnav
- .wrapInner('')
- .children(0)
- .addClass(o.fixedAs == 'footer' ? 'ui-footer' : 'ui-header');
+ $(this)
+ .attr('id', o.thisId)
+ .wrapInner('');
+
+ //wrap it with footer classes
+ var $globalnav = $(this).find('.ui-globalnav'),
+ numTabs = $globalnav.find('li').length;
+
+ $globalnav
+ .find('ul')
+ .grid({grid: numTabs > 2 ? 'b' : 'a'})
+
+ if(numTabs > 3 ){
+ var moreId = o.thisId + '-more',
+ $navToggle = $('' + o.moreText + ''),
+ $truncatedLis = $globalnav.find('li:gt(2)'),
+ $newPage = $(''),
+ $newPageContent = $globalnav.find('ul').clone();
+
+ $newPageContent
+ .find('a')
+ .buttonMarkup({iconPos: 'top', theme: 'b', icon: 'arrow-r'})
+
+ $newPage.append( $newPageContent ).appendTo('body');
+
+ $navToggle
+ .wrap('')
+ .parent()
+ .appendTo($globalnav);
+
+ $navToggle.buttonMarkup({corners: false, iconPos: 'top', icon: 'arrow-r'});
+
+ $globalnav.addClass('ui-globalnav-collapsed');
+
+ $truncatedLis.addClass('ui-globalnav-truncate');
+ }
- //set up the nav tabs widths (currently evenly divided widths, to be improved later)
$globalnav
- .find('ul')
- .grid({grid: $globalnav.find('li').length > 2 ? 'b' : 'a'})
- .find('a')
+ .find('ul a')
.buttonMarkup({corners: false, iconPos: 'top', icon: 'arrow-u'})
.bind('tap',function(){
//NOTE: we'll need to find a way to highlight an active tab at load as well
@@ -35,10 +64,9 @@ $.fn.globalnav = function(settings){
$(this).addClass('ui-btn-active');
});
- $globalnav
+ $(this)
.appendTo('body')
.fixHeaderFooter();
-
});
};
})(jQuery);
\ No newline at end of file