moved parseRSS function to index
[bootswatch] / js / bootswatch.js
index 6409e20..71eba46 100644 (file)
@@ -1,56 +1,94 @@
-var menu = '<ul class="nav"> \
-              <li><a onclick="pageTracker._link(this.href); return false;" href="http://bootswatch.tumblr.com">News</a></li> \
-              <li><a id="swatch-link" href="/#gallery">Gallery</a></li> \
-                         <li class="dropdown"> \
-                <a class="dropdown-toggle" data-toggle="dropdown" href="#">Preview <b class="caret"></b></a> \
-                <ul class="dropdown-menu"> \
-                  <li><a href="/default">Default</a></li> \
-                  <li class="divider"></li> \
-                  <li><a href="/amelia">Amelia</a></li> \
-                  <li><a href="/cerulean">Cerulean</a></li> \
-                  <li><a href="/cyborg">Cyborg</a></li> \
-                  <li><a href="/journal">Journal</a></li> \
-                  <li><a href="/readable">Readable</a></li> \
-                  <li><a href="/simplex">Simplex</a></li> \
-                  <li><a href="/slate">Slate</a></li> \
-                  <li><a href="/spacelab">Spacelab</a></li> \
-                  <li><a href="/spruce">Spruce</a></li> \
-                  <li><a href="/superhero">Superhero</a></li> \
-                  <li><a href="/united">United</a></li> \
-                </ul> \
-              </li>';
-
-if(document.title !== 'Bootswatch: Free themes for Twitter Bootstrap') {
-       menu = menu + '<li class="divider-vertical"></li> \
-                                          <li class="dropdown"> \
-                                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Download <b class="caret"></b></a> \
-                                        <ul class="dropdown-menu"> \
-                                          <li><a target="_blank" href="bootstrap.min.css">bootstrap.min.css</a></li> \
-                                          <li><a target="_blank" href="bootstrap.css">bootstrap.css</a></li> \
-                                          <li class="divider"></li> \
-                                          <li><a target="_blank" href="variables.less">variables.less</a></li> \
-                                          <li><a target="_blank" href="bootswatch.less">bootswatch.less</a></li> \
-                                        </ul> \
-                                      </li>';
-}
-
-menu = menu + '                        </ul> \
-                                               <ul class="nav pull-right"> \
-                                                       <li><a rel="tooltip" target="_blank" href="http://builtwithbootstrap.com/" title="Showcase of sites and apps" onclick="_gaq.push([\'_trackEvent\', \'click\', \'outbound\', \'builtwithbootstrap\']);">Built With Bootstrap <i class="icon-share-alt icon-white"></i></a></li> \
-                                                       <li><a rel="tooltip" target="_blank" href="http://wrapbootstrap.com" title="Marketplace for premium templates and themes" onclick="_gaq.push([\'_trackEvent\', \'click\', \'outbound\', \'wrapbootstrap\']);">WrapBootstrap <i class="icon-share-alt icon-white"></i></a></li> \
-                                               </ul>';
-
-                       $('.navbar .nav-collapse').first().append(menu);
-                       
-                       $('a[rel=tooltip]').tooltip({
-                               'placement': 'bottom'
-                       });
-
-var taglines = [];
-taglines.push('Free themes for <a target="_blank" href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>.');
-taglines.push('Add color to your <a target="_blank" href="http://twitter.github.com/bootstrap/">Bootstrap</a> site without touching a color picker.');
-taglines.push('Saving the web from default <a target="_blank" href="http://twitter.github.com/bootstrap/">Bootstrap</a>.');
-
-var line = Math.floor((taglines.length) * Math.random());
-$('#tagline').html(taglines[line]);
-                       
+// tooltips
+
+$('a[rel=tooltip]').tooltip({
+       'placement': 'bottom'
+});
+
+// smooth scroll
+
+$(document).ready(function() {
+  function filterPath(string) {
+  return string
+    .replace(/^\//,'')
+    .replace(/(index|default).[a-zA-Z]{3,4}$/,'')
+    .replace(/\/$/,'');
+  }
+  var locationPath = filterPath(location.pathname);
+  var scrollElem = scrollableElement('html', 'body');
+  $('a[href^=#]').each(function() {
+    var thisPath = filterPath(this.pathname) || locationPath;
+    if (  locationPath == thisPath
+    && (location.hostname == this.hostname || !this.hostname)
+    && this.hash.replace(/#/,'') ) {
+      var $target = $(this.hash), target = this.hash;
+      if (target) {
+        var targetOffset = $target.offset().top;
+        $(this).click(function(event) {
+          event.preventDefault();
+          $(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
+            location.hash = target;
+          });
+        });
+      }
+    }
+  });
+  // use the first element that is "scrollable"
+  function scrollableElement(els) {
+    for (var i = 0, argLength = arguments.length; i <argLength; i++) {
+      var el = arguments[i],
+          $scrollElement = $(el);
+      if ($scrollElement.scrollTop()> 0) {
+        return el;
+      } else {
+        $scrollElement.scrollTop(1);
+        var isScrollable = $scrollElement.scrollTop()> 0;
+        $scrollElement.scrollTop(0);
+        if (isScrollable) {
+          return el;
+        }
+      }
+    }
+    return [];
+  }
+});
+
+// subnav
+
+(function ($) {
+
+       $(function(){
+
+               // fix sub nav on scroll
+               var $win = $(window),
+                               $body = $('body'),
+                               $nav = $('.subnav'),
+                               navHeight = $('.navbar').first().height(),
+                               subnavHeight = $('.subnav').first().height(),
+                               subnavTop = $('.subnav').length && $('.subnav').offset().top - navHeight,
+                               marginTop = parseInt($body.css('margin-top'), 10);
+                               isFixed = 0;
+
+               processScroll();
+
+               $win.on('scroll', processScroll);
+
+               function processScroll() {
+                       var i, scrollTop = $win.scrollTop();
+
+                       if (scrollTop >= subnavTop && !isFixed) {
+                               isFixed = 1;
+                               $nav.addClass('subnav-fixed');
+                               $body.css('margin-top', marginTop + subnavHeight + 'px');
+                       } else if (scrollTop <= subnavTop && isFixed) {
+                               isFixed = 0;
+                               $nav.removeClass('subnav-fixed');
+                               $body.css('margin-top', marginTop + 'px');
+                       }
+               }
+
+       });
+
+})(window.jQuery);
\ No newline at end of file