├── .gitignore ├── css ├── mobile.min.css ├── mobile.css ├── 720.min.css ├── 960.min.css ├── 1200.min.css ├── 1560.min.css ├── 2520.min.css ├── 720.css ├── 960.css ├── 1200.css ├── 1560.css ├── 1920.css ├── 1920.min.css ├── 2520.css └── bootstrap.css ├── README.md └── js ├── adapt.min.js ├── bootstrap-dropdown.js ├── bootstrap-tabs.js ├── bootstrap-popover.js ├── bootstrap-alerts.js ├── bootstrap-scrollspy.js ├── adapt.js ├── bootstrap-modal.js └── bootstrap-twipsy.js /.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | /**/*/*.html 3 | .DS_Store -------------------------------------------------------------------------------- /css/mobile.min.css: -------------------------------------------------------------------------------- 1 | .grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{margin-left:10px;margin-right:10px}.alpha,.omega{margin-left:0;margin-right:0}.align_center,.align_right{text-align:left} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a pet library to have a personalized bootstrap to use when working in my apps. 2 | 3 | It contains: 4 | 5 | * [Twitter bootstrap](https://github.com/twitter/bootstrap), but does not contain the CSS Grid styles. 6 | * [Nathan Smith's Adapt.js/Adaptive CSS](https://github.com/nathansmith/adapt). -------------------------------------------------------------------------------- /css/mobile.css: -------------------------------------------------------------------------------- 1 | .grid_1, 2 | .grid_2, 3 | .grid_3, 4 | .grid_4, 5 | .grid_5, 6 | .grid_6, 7 | .grid_7, 8 | .grid_8, 9 | .grid_9, 10 | .grid_10, 11 | .grid_11, 12 | .grid_12 { 13 | margin-left: 10px; 14 | margin-right: 10px; 15 | } 16 | 17 | .alpha, 18 | .omega { 19 | margin-left: 0; 20 | margin-right: 0; 21 | } 22 | 23 | .align_center, 24 | .align_right { 25 | text-align: left; 26 | } -------------------------------------------------------------------------------- /js/adapt.min.js: -------------------------------------------------------------------------------- 1 | (function(a,b,c,d){function e(){clearTimeout(i);for(var c=a.innerWidth||b.documentElement.clientWidth||b.body.clientWidth||0,e,f,o,p,q=m,u=m-1;q--;){e=l[q].split("="),f=e[0],p=e[1]?e[1].replace(/\s/g,""):q,e=(o=f.match("to"))?parseInt(f.split("to")[0],10):parseInt(f,10),f=o?parseInt(f.split("to")[1],10):d;if(!f&&q===u&&c>e||c>e&&c<=f){g=k+p;break}g=""}h?h!==g&&(h=n.href=g,j&&j(q,c)):(h=n.href=g,j&&j(q,c),k&&(b.head||b.getElementsByTagName("head")[0]).appendChild(n))}function f(){clearTimeout(i),i=setTimeout(e,100)}if(c){var g,h,i,j=typeof c.callback=="function"?c.callback:d,k=c.path?c.path:"",l=c.range,m=l.length,n=b.createElement("link");n.rel="stylesheet",e(),c.dynamic&&(a.addEventListener?a.addEventListener("resize",f,!1):a.attachEvent?a.attachEvent("onresize",f):a.onresize=f)}})(this,this.document,ADAPT_CONFIG) -------------------------------------------------------------------------------- /js/bootstrap-dropdown.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrap-dropdown.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#dropdown 4 | * ============================================================ 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | (function( $ ){ 22 | 23 | var d = 'a.menu, .dropdown-toggle' 24 | 25 | function clearMenus() { 26 | $(d).parent('li').removeClass('open') 27 | } 28 | 29 | $(function () { 30 | $('html').bind("click", clearMenus) 31 | $('body').dropdown( '[data-dropdown] a.menu, [data-dropdown] .dropdown-toggle' ) 32 | }) 33 | 34 | /* DROPDOWN PLUGIN DEFINITION 35 | * ========================== */ 36 | 37 | $.fn.dropdown = function ( selector ) { 38 | return this.each(function () { 39 | $(this).delegate(selector || d, 'click', function (e) { 40 | var li = $(this).parent('li') 41 | , isActive = li.hasClass('open') 42 | 43 | clearMenus() 44 | !isActive && li.toggleClass('open') 45 | return false 46 | }) 47 | }) 48 | } 49 | 50 | })( window.jQuery || window.ender ) -------------------------------------------------------------------------------- /js/bootstrap-tabs.js: -------------------------------------------------------------------------------- 1 | /* ======================================================== 2 | * bootstrap-tabs.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#tabs 4 | * ======================================================== 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ======================================================== */ 19 | 20 | 21 | (function( $ ){ 22 | 23 | function activate ( element, container ) { 24 | container.find('.active').removeClass('active') 25 | element.addClass('active') 26 | } 27 | 28 | function tab( e ) { 29 | var $this = $(this) 30 | , href = $this.attr('href') 31 | , $ul = $(e.liveFired) 32 | , $controlled 33 | 34 | if (/^#\w+/.test(href)) { 35 | e.preventDefault() 36 | 37 | if ($this.hasClass('active')) { 38 | return 39 | } 40 | 41 | $href = $(href) 42 | 43 | activate($this.parent('li'), $ul) 44 | activate($href, $href.parent()) 45 | } 46 | } 47 | 48 | 49 | /* TABS/PILLS PLUGIN DEFINITION 50 | * ============================ */ 51 | 52 | $.fn.tabs = $.fn.pills = function ( selector ) { 53 | return this.each(function () { 54 | $(this).delegate(selector || '.tabs li > a, .pills > li > a', 'click', tab) 55 | }) 56 | } 57 | 58 | $(document).ready(function () { 59 | $('body').tabs('ul[data-tabs] li > a, ul[data-pills] > li > a') 60 | }) 61 | 62 | })( window.jQuery || window.ender ) -------------------------------------------------------------------------------- /js/bootstrap-popover.js: -------------------------------------------------------------------------------- 1 | /* =========================================================== 2 | * bootstrap-popover.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#popover 4 | * =========================================================== 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * =========================================================== */ 19 | 20 | 21 | (function( $ ) { 22 | 23 | var Popover = function ( element, options ) { 24 | this.$element = $(element) 25 | this.options = options 26 | this.enabled = true 27 | this.fixTitle() 28 | } 29 | 30 | /* NOTE: POPOVER EXTENDS BOOTSTRAP-TWIPSY.js 31 | ========================================= */ 32 | 33 | Popover.prototype = $.extend({}, $.fn.twipsy.Twipsy.prototype, { 34 | 35 | setContent: function () { 36 | var $tip = this.tip() 37 | $tip.find('.title')[this.options.html ? 'html' : 'text'](this.getTitle()) 38 | $tip.find('.content p')[this.options.html ? 'html' : 'text'](this.getContent()) 39 | $tip[0].className = 'popover' 40 | } 41 | 42 | , getContent: function () { 43 | var contentvar 44 | , $e = this.$element 45 | , o = this.options 46 | 47 | if (typeof this.options.content == 'string') { 48 | content = $e.attr(o.content) 49 | } else if (typeof this.options.content == 'function') { 50 | content = this.options.content.call(this.$element[0]) 51 | } 52 | return content 53 | } 54 | 55 | , tip: function() { 56 | if (!this.$tip) { 57 | this.$tip = $('
') 58 | .html('

') 59 | } 60 | return this.$tip 61 | } 62 | 63 | }) 64 | 65 | 66 | /* POPOVER PLUGIN DEFINITION 67 | * ======================= */ 68 | 69 | $.fn.popover = function (options) { 70 | if (typeof options == 'object') options = $.extend({}, $.fn.popover.defaults, options) 71 | $.fn.twipsy.initWith.call(this, options, Popover, 'popover') 72 | return this 73 | } 74 | 75 | $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, { content: 'data-content', placement: 'right'}) 76 | 77 | })( window.jQuery || window.ender ) -------------------------------------------------------------------------------- /css/720.min.css: -------------------------------------------------------------------------------- 1 | body{min-width:720px}.container_12{margin-left:auto;margin-right:auto;width:720px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11{position:relative}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:40px}.container_12 .grid_2{width:100px}.container_12 .grid_3{width:160px}.container_12 .grid_4{width:220px}.container_12 .grid_5{width:280px}.container_12 .grid_6{width:340px}.container_12 .grid_7{width:400px}.container_12 .grid_8{width:460px}.container_12 .grid_9{width:520px}.container_12 .grid_10{width:580px}.container_12 .grid_11{width:640px}.container_12 .grid_12{width:700px}.container_12 .prefix_1{padding-left:60px}.container_12 .prefix_2{padding-left:120px}.container_12 .prefix_3{padding-left:180px}.container_12 .prefix_4{padding-left:240px}.container_12 .prefix_5{padding-left:300px}.container_12 .prefix_6{padding-left:360px}.container_12 .prefix_7{padding-left:420px}.container_12 .prefix_8{padding-left:480px}.container_12 .prefix_9{padding-left:540px}.container_12 .prefix_10{padding-left:600px}.container_12 .prefix_11{padding-left:660px}.container_12 .suffix_1{padding-right:60px}.container_12 .suffix_2{padding-right:120px}.container_12 .suffix_3{padding-right:180px}.container_12 .suffix_4{padding-right:240px}.container_12 .suffix_5{padding-right:300px}.container_12 .suffix_6{padding-right:360px}.container_12 .suffix_7{padding-right:420px}.container_12 .suffix_8{padding-right:480px}.container_12 .suffix_9{padding-right:540px}.container_12 .suffix_10{padding-right:600px}.container_12 .suffix_11{padding-right:660px}.container_12 .push_1{left:60px}.container_12 .push_2{left:120px}.container_12 .push_3{left:180px}.container_12 .push_4{left:240px}.container_12 .push_5{left:300px}.container_12 .push_6{left:360px}.container_12 .push_7{left:420px}.container_12 .push_8{left:480px}.container_12 .push_9{left:540px}.container_12 .push_10{left:600px}.container_12 .push_11{left:660px}.container_12 .pull_1{left:-60px}.container_12 .pull_2{left:-120px}.container_12 .pull_3{left:-180px}.container_12 .pull_4{left:-240px}.container_12 .pull_5{left:-300px}.container_12 .pull_6{left:-360px}.container_12 .pull_7{left:-420px}.container_12 .pull_8{left:-480px}.container_12 .pull_9{left:-540px}.container_12 .pull_10{left:-600px}.container_12 .pull_11{left:-660px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after,.container_12:before,.container_12:after{content:'.';display:block;overflow:hidden;visibility:hidden;font-size:0;line-height:0;width:0;height:0}.clearfix:after,.container_12:after{clear:both}.clearfix,.container_12{zoom:1} -------------------------------------------------------------------------------- /css/960.min.css: -------------------------------------------------------------------------------- 1 | body{min-width:960px}.container_12{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11{position:relative}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_3{width:220px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_6{width:460px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_9{width:700px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_12 .grid_12{width:940px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_3{padding-left:240px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_6{padding-left:480px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_9{padding-left:720px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_3{padding-right:240px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_6{padding-right:480px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_9{padding-right:720px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_3{left:240px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_6{left:480px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_9{left:720px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_3{left:-240px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_6{left:-480px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_9{left:-720px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after,.container_12:before,.container_12:after{content:'.';display:block;overflow:hidden;visibility:hidden;font-size:0;line-height:0;width:0;height:0}.clearfix:after,.container_12:after{clear:both}.clearfix,.container_12{zoom:1} -------------------------------------------------------------------------------- /css/1200.min.css: -------------------------------------------------------------------------------- 1 | body{min-width:1200px}.container_12{margin-left:auto;margin-right:auto;width:1200px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11{position:relative}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:80px}.container_12 .grid_2{width:180px}.container_12 .grid_3{width:280px}.container_12 .grid_4{width:380px}.container_12 .grid_5{width:480px}.container_12 .grid_6{width:580px}.container_12 .grid_7{width:680px}.container_12 .grid_8{width:780px}.container_12 .grid_9{width:880px}.container_12 .grid_10{width:980px}.container_12 .grid_11{width:1080px}.container_12 .grid_12{width:1180px}.container_12 .prefix_1{padding-left:100px}.container_12 .prefix_2{padding-left:200px}.container_12 .prefix_3{padding-left:300px}.container_12 .prefix_4{padding-left:400px}.container_12 .prefix_5{padding-left:500px}.container_12 .prefix_6{padding-left:600px}.container_12 .prefix_7{padding-left:700px}.container_12 .prefix_8{padding-left:800px}.container_12 .prefix_9{padding-left:900px}.container_12 .prefix_10{padding-left:1000px}.container_12 .prefix_11{padding-left:1100px}.container_12 .suffix_1{padding-right:100px}.container_12 .suffix_2{padding-right:200px}.container_12 .suffix_3{padding-right:300px}.container_12 .suffix_4{padding-right:400px}.container_12 .suffix_5{padding-right:500px}.container_12 .suffix_6{padding-right:600px}.container_12 .suffix_7{padding-right:700px}.container_12 .suffix_8{padding-right:800px}.container_12 .suffix_9{padding-right:900px}.container_12 .suffix_10{padding-right:1000px}.container_12 .suffix_11{padding-right:1100px}.container_12 .push_1{left:100px}.container_12 .push_2{left:200px}.container_12 .push_3{left:300px}.container_12 .push_4{left:400px}.container_12 .push_5{left:500px}.container_12 .push_6{left:600px}.container_12 .push_7{left:700px}.container_12 .push_8{left:800px}.container_12 .push_9{left:900px}.container_12 .push_10{left:1000px}.container_12 .push_11{left:1100px}.container_12 .pull_1{left:-100px}.container_12 .pull_2{left:-200px}.container_12 .pull_3{left:-300px}.container_12 .pull_4{left:-400px}.container_12 .pull_5{left:-500px}.container_12 .pull_6{left:-600px}.container_12 .pull_7{left:-700px}.container_12 .pull_8{left:-800px}.container_12 .pull_9{left:-900px}.container_12 .pull_10{left:-1000px}.container_12 .pull_11{left:-1100px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after,.container_12:before,.container_12:after{content:'.';display:block;overflow:hidden;visibility:hidden;font-size:0;line-height:0;width:0;height:0}.clearfix:after,.container_12:after{clear:both}.clearfix,.container_12{zoom:1} -------------------------------------------------------------------------------- /css/1560.min.css: -------------------------------------------------------------------------------- 1 | body{min-width:1560px}.container_12{margin-left:auto;margin-right:auto;width:1560px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11{position:relative}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:110px}.container_12 .grid_2{width:240px}.container_12 .grid_3{width:370px}.container_12 .grid_4{width:500px}.container_12 .grid_5{width:630px}.container_12 .grid_6{width:760px}.container_12 .grid_7{width:890px}.container_12 .grid_8{width:1020px}.container_12 .grid_9{width:1150px}.container_12 .grid_10{width:1280px}.container_12 .grid_11{width:1410px}.container_12 .grid_12{width:1540px}.container_12 .prefix_1{padding-left:130px}.container_12 .prefix_2{padding-left:260px}.container_12 .prefix_3{padding-left:390px}.container_12 .prefix_4{padding-left:520px}.container_12 .prefix_5{padding-left:650px}.container_12 .prefix_6{padding-left:780px}.container_12 .prefix_7{padding-left:910px}.container_12 .prefix_8{padding-left:1040px}.container_12 .prefix_9{padding-left:1170px}.container_12 .prefix_10{padding-left:1300px}.container_12 .prefix_11{padding-left:1430px}.container_12 .suffix_1{padding-right:130px}.container_12 .suffix_2{padding-right:260px}.container_12 .suffix_3{padding-right:390px}.container_12 .suffix_4{padding-right:520px}.container_12 .suffix_5{padding-right:650px}.container_12 .suffix_6{padding-right:780px}.container_12 .suffix_7{padding-right:910px}.container_12 .suffix_8{padding-right:1040px}.container_12 .suffix_9{padding-right:1170px}.container_12 .suffix_10{padding-right:1300px}.container_12 .suffix_11{padding-right:1430px}.container_12 .push_1{left:130px}.container_12 .push_2{left:260px}.container_12 .push_3{left:390px}.container_12 .push_4{left:520px}.container_12 .push_5{left:650px}.container_12 .push_6{left:780px}.container_12 .push_7{left:910px}.container_12 .push_8{left:1040px}.container_12 .push_9{left:1170px}.container_12 .push_10{left:1300px}.container_12 .push_11{left:1430px}.container_12 .pull_1{left:-130px}.container_12 .pull_2{left:-260px}.container_12 .pull_3{left:-390px}.container_12 .pull_4{left:-520px}.container_12 .pull_5{left:-650px}.container_12 .pull_6{left:-780px}.container_12 .pull_7{left:-910px}.container_12 .pull_8{left:-1040px}.container_12 .pull_9{left:-1170px}.container_12 .pull_10{left:-1300px}.container_12 .pull_11{left:-1430px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after,.container_12:before,.container_12:after{content:'.';display:block;overflow:hidden;visibility:hidden;font-size:0;line-height:0;width:0;height:0}.clearfix:after,.container_12:after{clear:both}.clearfix,.container_12{zoom:1} -------------------------------------------------------------------------------- /css/2520.min.css: -------------------------------------------------------------------------------- 1 | body{min-width:2520px}.container_12{margin-left:auto;margin-right:auto;width:2520px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11,.push_12,.pull_12{position:relative}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:190px}.container_12 .grid_2{width:400px}.container_12 .grid_3{width:610px}.container_12 .grid_4{width:820px}.container_12 .grid_5{width:1030px}.container_12 .grid_6{width:1240px}.container_12 .grid_7{width:1450px}.container_12 .grid_8{width:1660px}.container_12 .grid_9{width:1870px}.container_12 .grid_10{width:2080px}.container_12 .grid_11{width:2290px}.container_12 .grid_12{width:2500px}.container_12 .prefix_1{padding-left:210px}.container_12 .prefix_2{padding-left:420px}.container_12 .prefix_3{padding-left:630px}.container_12 .prefix_4{padding-left:840px}.container_12 .prefix_5{padding-left:1050px}.container_12 .prefix_6{padding-left:1260px}.container_12 .prefix_7{padding-left:1470px}.container_12 .prefix_8{padding-left:1680px}.container_12 .prefix_9{padding-left:1890px}.container_12 .prefix_10{padding-left:2100px}.container_12 .prefix_11{padding-left:2310px}.container_12 .suffix_1{padding-right:210px}.container_12 .suffix_2{padding-right:420px}.container_12 .suffix_3{padding-right:630px}.container_12 .suffix_4{padding-right:840px}.container_12 .suffix_5{padding-right:1050px}.container_12 .suffix_6{padding-right:1260px}.container_12 .suffix_7{padding-right:1470px}.container_12 .suffix_8{padding-right:1680px}.container_12 .suffix_9{padding-right:1890px}.container_12 .suffix_10{padding-right:2100px}.container_12 .suffix_11{padding-right:2310px}.container_12 .push_1{left:210px}.container_12 .push_2{left:420px}.container_12 .push_3{left:630px}.container_12 .push_4{left:840px}.container_12 .push_5{left:1050px}.container_12 .push_6{left:1260px}.container_12 .push_7{left:1470px}.container_12 .push_8{left:1680px}.container_12 .push_9{left:1890px}.container_12 .push_10{left:2100px}.container_12 .push_11{left:2310px}.container_12 .pull_1{left:-210px}.container_12 .pull_2{left:-420px}.container_12 .pull_3{left:-630px}.container_12 .pull_4{left:-840px}.container_12 .pull_5{left:-1050px}.container_12 .pull_6{left:-1260px}.container_12 .pull_7{left:-1470px}.container_12 .pull_8{left:-1680px}.container_12 .pull_9{left:-1890px}.container_12 .pull_10{left:-2100px}.container_12 .pull_11{left:-2310px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after,.container_12:before,.container_12:after{content:'.';display:block;overflow:hidden;visibility:hidden;font-size:0;line-height:0;width:0;height:0}.clearfix:after,.container_12:after{clear:both}.clearfix,.container_12{zoom:1} -------------------------------------------------------------------------------- /js/bootstrap-alerts.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * bootstrap-alerts.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#alerts 4 | * ========================================================== 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | (function( $ ){ 22 | 23 | /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) 24 | * ======================================================= */ 25 | 26 | var transitionEnd 27 | 28 | $(document).ready(function () { 29 | 30 | $.support.transition = (function () { 31 | var thisBody = document.body || document.documentElement 32 | , thisStyle = thisBody.style 33 | , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined 34 | return support 35 | })() 36 | 37 | // set CSS transition event type 38 | if ( $.support.transition ) { 39 | transitionEnd = "TransitionEnd" 40 | if ( $.browser.webkit ) { 41 | transitionEnd = "webkitTransitionEnd" 42 | } else if ( $.browser.mozilla ) { 43 | transitionEnd = "transitionend" 44 | } else if ( $.browser.opera ) { 45 | transitionEnd = "oTransitionEnd" 46 | } 47 | } 48 | 49 | }) 50 | 51 | /* ALERT CLASS DEFINITION 52 | * ====================== */ 53 | 54 | var Alert = function ( content, selector ) { 55 | this.$element = $(content) 56 | .delegate(selector || '.close', 'click', this.close) 57 | } 58 | 59 | Alert.prototype = { 60 | 61 | close: function (e) { 62 | var $element = $(this).parent('.alert-message') 63 | 64 | e && e.preventDefault() 65 | $element.removeClass('in') 66 | 67 | function removeElement () { 68 | $element.remove() 69 | } 70 | 71 | $.support.transition && $element.hasClass('fade') ? 72 | $element.bind(transitionEnd, removeElement) : 73 | removeElement() 74 | } 75 | 76 | } 77 | 78 | 79 | /* ALERT PLUGIN DEFINITION 80 | * ======================= */ 81 | 82 | $.fn.alert = function ( options ) { 83 | 84 | if ( options === true ) { 85 | return this.data('alert') 86 | } 87 | 88 | return this.each(function () { 89 | var $this = $(this) 90 | 91 | if ( typeof options == 'string' ) { 92 | return $this.data('alert')[options]() 93 | } 94 | 95 | $(this).data('alert', new Alert( this )) 96 | 97 | }) 98 | } 99 | 100 | $(document).ready(function () { 101 | new Alert($('body'), '.alert-message[data-alert] .close') 102 | }) 103 | 104 | })( window.jQuery || window.ender ) -------------------------------------------------------------------------------- /js/bootstrap-scrollspy.js: -------------------------------------------------------------------------------- 1 | /* ============================================================= 2 | * bootstrap-scrollspy.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#scrollspy 4 | * ============================================================= 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================== */ 19 | 20 | 21 | !function ( $ ) { 22 | 23 | var $window = $(window) 24 | 25 | function ScrollSpy( topbar, selector ) { 26 | var processScroll = $.proxy(this.processScroll, this) 27 | this.$topbar = $(topbar) 28 | this.selector = selector || 'li > a' 29 | this.refresh() 30 | this.$topbar.delegate(this.selector, 'click', processScroll) 31 | $window.scroll(processScroll) 32 | this.processScroll() 33 | } 34 | 35 | ScrollSpy.prototype = { 36 | 37 | refresh: function () { 38 | this.targets = this.$topbar.find(this.selector).map(function () { 39 | var href = $(this).attr('href') 40 | return /^#\w/.test(href) && $(href).length ? href : null 41 | }) 42 | 43 | this.offsets = $.map(this.targets, function (id) { 44 | return $(id).offset().top 45 | }) 46 | } 47 | 48 | , processScroll: function () { 49 | var scrollTop = $window.scrollTop() + 10 50 | , offsets = this.offsets 51 | , targets = this.targets 52 | , activeTarget = this.activeTarget 53 | , i 54 | 55 | for (i = offsets.length; i--;) { 56 | activeTarget != targets[i] 57 | && scrollTop >= offsets[i] 58 | && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) 59 | && this.activateButton( targets[i] ) 60 | } 61 | } 62 | 63 | , activateButton: function (target) { 64 | this.activeTarget = target 65 | 66 | this.$topbar 67 | .find(this.selector).parent('.active') 68 | .removeClass('active') 69 | 70 | this.$topbar 71 | .find(this.selector + '[href="' + target + '"]') 72 | .parent('li') 73 | .addClass('active') 74 | } 75 | 76 | } 77 | 78 | /* SCROLLSPY PLUGIN DEFINITION 79 | * =========================== */ 80 | 81 | $.fn.scrollSpy = function( options ) { 82 | var scrollspy = this.data('scrollspy') 83 | 84 | if (!scrollspy) { 85 | return this.each(function () { 86 | $(this).data('scrollspy', new ScrollSpy( this, options )) 87 | }) 88 | } 89 | 90 | if ( options === true ) { 91 | return scrollspy 92 | } 93 | 94 | if ( typeof options == 'string' ) { 95 | scrollspy[options]() 96 | } 97 | 98 | return this 99 | } 100 | 101 | $(document).ready(function () { 102 | $('body').scrollSpy('[data-scrollspy] li > a') 103 | }) 104 | 105 | }( window.jQuery || window.ender ) -------------------------------------------------------------------------------- /js/adapt.js: -------------------------------------------------------------------------------- 1 | /* 2 | Adapt.js licensed under GPL and MIT. 3 | 4 | Read more here: http://adapt.960.gs 5 | */ 6 | 7 | // Closure. 8 | (function(w, d, config, undefined) { 9 | // If no config, exit. 10 | if (!config) { 11 | return; 12 | } 13 | 14 | // Empty vars to use later. 15 | var url, url_old, timer; 16 | 17 | // Alias config values. 18 | var callback = typeof config.callback === 'function' ? config.callback : undefined; 19 | var path = config.path ? config.path : ''; 20 | var range = config.range; 21 | var range_len = range.length; 22 | 23 | // Create empty link tag: 24 | // 25 | var css = d.createElement('link'); 26 | css.rel = 'stylesheet'; 27 | 28 | // Called from within adapt(). 29 | function change(i, width) { 30 | // Set the URL. 31 | css.href = url; 32 | url_old = url; 33 | 34 | // Call callback, if defined. 35 | callback && callback(i, width); 36 | } 37 | 38 | // Adapt to width. 39 | function adapt() { 40 | // This clearTimeout is for IE. 41 | // Really it belongs in react(), 42 | // but doesn't do any harm here. 43 | clearTimeout(timer); 44 | 45 | // Parse browser width. 46 | var width = w.innerWidth || d.documentElement.clientWidth || d.body.clientWidth || 0; 47 | 48 | // While loop vars. 49 | var arr, arr_0, val_1, val_2, is_range, file; 50 | 51 | // How many ranges? 52 | var i = range_len; 53 | var last = range_len - 1; 54 | 55 | while (i--) { 56 | // Turn string into array. 57 | arr = range[i].split('='); 58 | 59 | // Width is to the left of "=". 60 | arr_0 = arr[0]; 61 | 62 | // File name is to the right of "=". 63 | // Presuppoes a file with no spaces. 64 | // If no file specified, assign [i]. 65 | file = arr[1] ? arr[1].replace(/\s/g, '') : i; 66 | 67 | // Assume min/max if "to" isn't present. 68 | is_range = arr_0.match('to'); 69 | 70 | // If it's a range, split left/right sides of "to", 71 | // and then convert each one into numerical values. 72 | // If it's not a range, turn maximum into a number. 73 | val_1 = is_range ? parseInt(arr_0.split('to')[0], 10) : parseInt(arr_0, 10); 74 | val_2 = is_range ? parseInt(arr_0.split('to')[1], 10) : undefined; 75 | 76 | // Check for maxiumum or range. 77 | if ((!val_2 && i === last && width > val_1) || (width > val_1 && width <= val_2)) { 78 | // Built full URL to CSS file. 79 | url = path + file; 80 | break; 81 | } 82 | else { 83 | // Blank if no conditions met. 84 | url = ''; 85 | } 86 | } 87 | 88 | // Was it created yet? 89 | if (!url_old) { 90 | // Apply changes. 91 | change(i, width); 92 | 93 | // Add the CSS, only if path is defined. 94 | // Use faster document.head if possible. 95 | path && (d.head || d.getElementsByTagName('head')[0]).appendChild(css); 96 | } 97 | else if (url_old !== url) { 98 | // Apply changes. 99 | change(i, width); 100 | } 101 | } 102 | 103 | // Fire off once. 104 | adapt(); 105 | 106 | // Slight delay. 107 | function react() { 108 | // Clear the timer as window resize fires, 109 | // so that it only calls adapt() when the 110 | // user has finished resizing the window. 111 | clearTimeout(timer); 112 | timer = setTimeout(adapt, 100); 113 | } 114 | 115 | // Do we want to watch for 116 | // resize and device tilt? 117 | if (config.dynamic) { 118 | // Event listener for window resize, 119 | // also triggered by phone rotation. 120 | if (w.addEventListener) { 121 | // Good browsers. 122 | w.addEventListener('resize', react, false); 123 | } 124 | else if (w.attachEvent) { 125 | // Legacy IE support. 126 | w.attachEvent('onresize', react); 127 | } 128 | else { 129 | // Old-school fallback. 130 | w.onresize = react; 131 | } 132 | } 133 | 134 | // Pass in window, document, config, undefined. 135 | })(this, this.document, ADAPT_CONFIG); -------------------------------------------------------------------------------- /js/bootstrap-modal.js: -------------------------------------------------------------------------------- 1 | /* ========================================================= 2 | * bootstrap-modal.js v1.3.0 3 | * http://twitter.github.com/bootstrap/javascript.html#modal 4 | * ========================================================= 5 | * Copyright 2011 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================= */ 19 | 20 | 21 | (function( $ ){ 22 | 23 | /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) 24 | * ======================================================= */ 25 | 26 | var transitionEnd 27 | 28 | $(document).ready(function () { 29 | 30 | $.support.transition = (function () { 31 | var thisBody = document.body || document.documentElement 32 | , thisStyle = thisBody.style 33 | , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined 34 | return support 35 | })() 36 | 37 | // set CSS transition event type 38 | if ( $.support.transition ) { 39 | transitionEnd = "TransitionEnd" 40 | if ( $.browser.webkit ) { 41 | transitionEnd = "webkitTransitionEnd" 42 | } else if ( $.browser.mozilla ) { 43 | transitionEnd = "transitionend" 44 | } else if ( $.browser.opera ) { 45 | transitionEnd = "oTransitionEnd" 46 | } 47 | } 48 | 49 | }) 50 | 51 | 52 | /* MODAL PUBLIC CLASS DEFINITION 53 | * ============================= */ 54 | 55 | var Modal = function ( content, options ) { 56 | this.settings = $.extend({}, $.fn.modal.defaults) 57 | this.$element = $(content) 58 | .delegate('.close', 'click.modal', $.proxy(this.hide, this)) 59 | 60 | if ( options ) { 61 | $.extend( this.settings, options ) 62 | 63 | if ( options.show ) { 64 | this.show() 65 | } 66 | } 67 | 68 | return this 69 | } 70 | 71 | Modal.prototype = { 72 | 73 | toggle: function () { 74 | return this[!this.isShown ? 'show' : 'hide']() 75 | } 76 | 77 | , show: function () { 78 | var that = this 79 | this.isShown = true 80 | this.$element.trigger('show') 81 | 82 | escape.call(this) 83 | backdrop.call(this, function () { 84 | that.$element 85 | .appendTo(document.body) 86 | .show() 87 | 88 | setTimeout(function () { 89 | that.$element 90 | .addClass('in') 91 | .trigger('shown') 92 | }, 1) 93 | }) 94 | 95 | return this 96 | } 97 | 98 | , hide: function (e) { 99 | e && e.preventDefault() 100 | 101 | var that = this 102 | this.isShown = false 103 | 104 | escape.call(this) 105 | 106 | this.$element 107 | .trigger('hide') 108 | .removeClass('in') 109 | 110 | function removeElement () { 111 | that.$element 112 | .hide() 113 | .trigger('hidden') 114 | 115 | backdrop.call(that) 116 | } 117 | 118 | $.support.transition && this.$element.hasClass('fade') ? 119 | this.$element.one(transitionEnd, removeElement) : 120 | removeElement() 121 | 122 | return this 123 | } 124 | 125 | } 126 | 127 | 128 | /* MODAL PRIVATE METHODS 129 | * ===================== */ 130 | 131 | function backdrop ( callback ) { 132 | var that = this 133 | , animate = this.$element.hasClass('fade') ? 'fade' : '' 134 | if ( this.isShown && this.settings.backdrop ) { 135 | this.$backdrop = $('