├── img ├── .gitignore ├── c4a.png ├── favicon.jpg ├── logo_1.png ├── logo_2.png ├── logo_3.png ├── people6.png ├── spinner.gif ├── c4k_logo.png ├── logos │ ├── ami.png │ ├── c4a.png │ ├── c4gh.png │ ├── c4k.png │ ├── elog.png │ ├── hha.png │ ├── icfj.png │ ├── oi.png │ ├── wb.jpg │ ├── wb.png │ ├── wbg.png │ ├── wbi.png │ ├── gtv_sm.png │ ├── hivos.png │ ├── odekro.png │ └── osisa.png ├── mountains.jpg ├── mountains.png ├── mountains2.png ├── social │ ├── fb.png │ ├── gp.png │ ├── tw.png │ ├── email.png │ ├── share.png │ ├── facebook.png │ ├── twitter.png │ └── googleplus.png ├── mountains-old.png ├── glyphicons-halflings.png └── glyphicons-halflings-white.png ├── CNAME ├── .gitignore ├── robots.txt ├── logo_3.png ├── favicon.ico ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff ├── fontawesome-webfont.woff2 ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.ttf ├── glyphicons-halflings-regular.woff └── glyphicons-halflings-regular.woff2 ├── apple-touch-icon-precomposed.png ├── README.md ├── humans.txt ├── js ├── npm.js ├── plugins.js ├── gottovote-rci.js ├── main.js └── vendor │ └── modernizr-2.6.2.min.js ├── crossdomain.xml ├── _config.yml ├── _includes ├── partners.html └── footer.html ├── _layouts ├── page.html └── default.html ├── css ├── style.scss ├── main.css ├── normalize.css ├── bootstrap-theme.min.css └── font-awesome.min.css ├── 404.html ├── CONTRIBUTING.md ├── index.html ├── about.md ├── CHANGELOG.md ├── LICENSE └── .htaccess /img/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | rci.gottovote.cc 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site/ 2 | .sass-cache/ 3 | -------------------------------------------------------------------------------- /robots.txt: -------------------------------------------------------------------------------- 1 | # robotstxt.org/ 2 | 3 | User-agent: * 4 | -------------------------------------------------------------------------------- /logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/logo_3.png -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/favicon.ico -------------------------------------------------------------------------------- /img/c4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/c4a.png -------------------------------------------------------------------------------- /img/favicon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/favicon.jpg -------------------------------------------------------------------------------- /img/logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logo_1.png -------------------------------------------------------------------------------- /img/logo_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logo_2.png -------------------------------------------------------------------------------- /img/logo_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logo_3.png -------------------------------------------------------------------------------- /img/people6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/people6.png -------------------------------------------------------------------------------- /img/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/spinner.gif -------------------------------------------------------------------------------- /img/c4k_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/c4k_logo.png -------------------------------------------------------------------------------- /img/logos/ami.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/ami.png -------------------------------------------------------------------------------- /img/logos/c4a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/c4a.png -------------------------------------------------------------------------------- /img/logos/c4gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/c4gh.png -------------------------------------------------------------------------------- /img/logos/c4k.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/c4k.png -------------------------------------------------------------------------------- /img/logos/elog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/elog.png -------------------------------------------------------------------------------- /img/logos/hha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/hha.png -------------------------------------------------------------------------------- /img/logos/icfj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/icfj.png -------------------------------------------------------------------------------- /img/logos/oi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/oi.png -------------------------------------------------------------------------------- /img/logos/wb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/wb.jpg -------------------------------------------------------------------------------- /img/logos/wb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/wb.png -------------------------------------------------------------------------------- /img/logos/wbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/wbg.png -------------------------------------------------------------------------------- /img/logos/wbi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/wbi.png -------------------------------------------------------------------------------- /img/mountains.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/mountains.jpg -------------------------------------------------------------------------------- /img/mountains.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/mountains.png -------------------------------------------------------------------------------- /img/mountains2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/mountains2.png -------------------------------------------------------------------------------- /img/social/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/fb.png -------------------------------------------------------------------------------- /img/social/gp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/gp.png -------------------------------------------------------------------------------- /img/social/tw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/tw.png -------------------------------------------------------------------------------- /img/logos/gtv_sm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/gtv_sm.png -------------------------------------------------------------------------------- /img/logos/hivos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/hivos.png -------------------------------------------------------------------------------- /img/logos/odekro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/odekro.png -------------------------------------------------------------------------------- /img/logos/osisa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/logos/osisa.png -------------------------------------------------------------------------------- /img/social/email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/email.png -------------------------------------------------------------------------------- /img/social/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/share.png -------------------------------------------------------------------------------- /fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /img/mountains-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/mountains-old.png -------------------------------------------------------------------------------- /img/social/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/facebook.png -------------------------------------------------------------------------------- /img/social/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/twitter.png -------------------------------------------------------------------------------- /img/social/googleplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/social/googleplus.png -------------------------------------------------------------------------------- /img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeForAfrica/GotToVote-RCI/gh-pages/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | GotToVote-RCI 2 | ============= 3 | 4 | *Demo: http://rci.gottovote.cc* 5 | 6 | [GotToVote](http://gottovote.cc/)'s Registration Centres Information (R.C.I.) platform. 7 | 8 | #### Installation 9 | 10 | You can find installation docs [here](http://gottovote.cc/docs). 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /humans.txt: -------------------------------------------------------------------------------- 1 | # humanstxt.org/ 2 | # The humans responsible & technology colophon 3 | 4 | # TEAM 5 | 6 | -- -- 7 | David Lemayian -- Lead Technologist -- @DavidLemayian 8 | 9 | # THANKS 10 | 11 | 12 | 13 | # TECHNOLOGY COLOPHON 14 | 15 | HTML5, CSS3 16 | Normalize.css, jQuery, Modernizr 17 | -------------------------------------------------------------------------------- /js/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /crossdomain.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # GotToVote Config 2 | 3 | country: "Kenya" 4 | election_year: "2017" 5 | 6 | registration_end_date: "-" 7 | 8 | api_key: "AIzaSyAwvkIls5mQybyp2R3g4FGiVetNdeVjUeE" 9 | table_id: "1CSlnHwpe8qTpBAoSiwZAAH7PVbV0w9kRkvUypmXP" 10 | 11 | url: https://rci.gottovote.cc # with the https protocol 12 | enforce_ssl: rci.gottovote.cc # without any protocol 13 | 14 | google_analytics: 'UA-36749298-1' 15 | 16 | openafrica_url: 'http://africaopendata.org/dataset/voter-registration-2016' 17 | 18 | # ------------------------------------------------------------------------------ 19 | # Jekyll Config 20 | 21 | # Handling Reading 22 | safe: true 23 | 24 | # Conversion 25 | highlighter: rouge 26 | -------------------------------------------------------------------------------- /_includes/partners.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |

Made Possible With Support From

5 |
6 |

7 | 8 | 9 |

10 |

11 | 12 | 13 | 14 |

15 |
16 |
17 | -------------------------------------------------------------------------------- /js/plugins.js: -------------------------------------------------------------------------------- 1 | // Avoid `console` errors in browsers that lack a console. 2 | (function() { 3 | var method; 4 | var noop = function noop() {}; 5 | var methods = [ 6 | 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 7 | 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 8 | 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 9 | 'timeStamp', 'trace', 'warn' 10 | ]; 11 | var length = methods.length; 12 | var console = (window.console = window.console || {}); 13 | 14 | while (length--) { 15 | method = methods[length]; 16 | 17 | // Only stub undefined methods. 18 | if (!console[method]) { 19 | console[method] = noop; 20 | } 21 | } 22 | }()); 23 | 24 | // Place any jQuery/helper plugins in here. 25 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 |
7 | 10 | 11 | {{ content }} 12 | 13 | 14 |
15 |

We are Open!

16 |

17 | 18 | Open Data 19 | 20 | 21 | Open Source 22 | 23 |

24 | 25 |

26 | 27 |

28 |

Powered by GotToVote.cc

29 | 30 |
31 |
32 | 33 | -------------------------------------------------------------------------------- /js/gottovote-rci.js: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | /* 4 | * GotToVote RCI .js 5 | * ----------------- 6 | * GotToVote's registration centres information javascript file to fetch information from fusion tables and require no 7 | * backend server. 8 | * 9 | * Requirements 10 | * ------------ 11 | * Requires the following things to run: 12 | * - jQuery 1.11.3 13 | * 14 | * AUTHORS 15 | * ------- 16 | * David Lemayian 17 | * 18 | * LICENSE 19 | * ------- 20 | * GNU General Public License v3.0 (http://choosealicense.com/licenses/gpl-3.0/) 21 | * The GPL (V2 or V3) is a copyleft license that requires anyone who distributes your code or a derivative work to make 22 | * the source available under the same terms. V3 is similar to V2, but further restricts use in hardware that forbids 23 | * software alterations. Linux, Git, and WordPress use GPL. 24 | * 25 | * Contribution 26 | * ------------ 27 | * Would you like to contribute to this file? Just follow Google's JS style guide: 28 | * https://google.github.io/styleguide/javascriptguide.xml 29 | * 30 | */ 31 | ; 32 | 33 | if (typeof gtv !== "object") { 34 | var gtv = {}; 35 | } 36 | 37 | gtv.rci = { 38 | API_KEY: "{{ site.api_key }}", 39 | TABLE_ID: "{{ site.table_id }}", 40 | 41 | FT_SQL_URL: "https://www.googleapis.com/fusiontables/v2/query?sql=", 42 | 43 | config: {}, 44 | columns: { 45 | data: {} 46 | }, 47 | rows: { 48 | data: {} 49 | } 50 | }; 51 | 52 | (function ($) { 53 | 54 | gtv.rci.columns.set = function (columns) { 55 | return this.data = columns; 56 | }; 57 | 58 | gtv.rci.columns.get = function (index) { 59 | if (typeof this.data.items === "undefined") { 60 | return this.fetch(); 61 | } else { 62 | return this.data.items[index]; 63 | } 64 | }; 65 | 66 | gtv.rci.columns.fetch = function (index) { 67 | $.ajax({ 68 | url: "https://www.googleapis.com/fusiontables/v2/tables/" + gtv.rci.TABLE_ID + "/columns", 69 | data: {key: gtv.rci.API_KEY}, 70 | }).done(function (msg) { 71 | gtv.rci.columns.set(msg); 72 | if (typeof index === "number") { 73 | return gtv.rci.columns.data.items[index]; 74 | } else { 75 | return gtv.rci.columns.data; 76 | } 77 | }); 78 | }; 79 | 80 | console.log(gtv.rci.columns.get(0)); 81 | 82 | console.log(gtv.rci); 83 | 84 | })(jQuery); 85 | 86 | 87 | -------------------------------------------------------------------------------- /css/style.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | /* 4 | * Voter Registration Centres Stylesheet 5 | * ------------------------------------- 6 | * 7 | * This is a stylesheet to overide bootstrap elements and introduce new styling elements. 8 | * 9 | * Organization: Code for Africa 10 | * URI: http://www.codeforafrica.org 11 | * 12 | */ 13 | 14 | .header { 15 | padding-top: 10px; 16 | padding-bottom: 300px; 17 | background: #fff url("../img/mountains.jpg"); 18 | background-size: auto 100%; 19 | background-repeat: no-repeat; 20 | background-position: center top; 21 | margin-bottom: -250px; 22 | 23 | .logo { 24 | height: 60px; 25 | margin-top: -20px; 26 | } 27 | 28 | .nav-pills { 29 | & > li { 30 | & > a { 31 | color: #5cb85c; 32 | border-color: #4cae4c; 33 | &:hover, &:focus { 34 | background-color: #449d44; 35 | border-color: #398439 !important; 36 | color: #fff; 37 | } 38 | } 39 | &.active > a{ 40 | background-color: #5cb85c; 41 | border-color: #4cae4c; 42 | color: #fff; 43 | &:hover, &:focus { 44 | background-color: #449d44; 45 | border-color: #398439 !important; 46 | color: #fff; 47 | } 48 | } 49 | } 50 | } 51 | } 52 | 53 | .masthead ul { 54 | margin-top: 23px; 55 | } 56 | .masthead img{ 57 | height: 60px; 58 | } 59 | /* Custom container */ 60 | .container-narrow { 61 | margin: 0 auto; 62 | max-width: 700px; 63 | } 64 | 65 | /* Main marketing message and sign up button */ 66 | .jumbotron { 67 | text-align: center; 68 | background-color: transparent; 69 | 70 | h1 { 71 | font-size: 72px; 72 | line-height: 1; 73 | } 74 | 75 | .btn { 76 | font-size: 21px; 77 | padding: 14px 24px; 78 | } 79 | } 80 | 81 | 82 | /* Supporting marketing content */ 83 | #find-reg { 84 | margin: 60px 0 0px; 85 | } 86 | 87 | .marketing { 88 | margin: 60px 0; 89 | } 90 | .marketing p + h4 { 91 | margin-top: 28px; 92 | } 93 | 94 | hr { 95 | margin-top: 40px; 96 | margin-bottom: 40px; 97 | } 98 | 99 | #found-reg { 100 | margin: 10px auto; 101 | display: inline-block; 102 | } 103 | #found-reg td { 104 | text-align: center; 105 | } 106 | 107 | 108 | .partner-logos { 109 | a { 110 | margin: 10px; 111 | img { 112 | height: 80px; 113 | } 114 | &:hover, &:focus{ 115 | opacity: 0.6; 116 | } 117 | } 118 | 119 | p { 120 | margin-bottom: 20px; 121 | } 122 | 123 | p:nth-child(2) { 124 | a img { 125 | height: 60px; 126 | } 127 | } 128 | 129 | } 130 | 131 | 132 | footer { 133 | .about.bg-info { 134 | background-color: #eee; 135 | padding-top: 40px; 136 | padding-bottom: 40px; 137 | } 138 | 139 | a { 140 | margin: 5px; 141 | img { 142 | height: 40px; 143 | } 144 | &:hover, &:focus { 145 | opacity: 0.6; 146 | } 147 | } 148 | 149 | .social-icons { 150 | a { 151 | color: #333; 152 | margin: 0 5px; 153 | } 154 | 155 | img { 156 | width: 50px; 157 | height: auto; 158 | margin: 0; 159 | } 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 |
6 | 7 |
8 |
9 |
10 |
11 |

About GotToVote!

12 |

Enabling citizens to get to the ballot box informed and ready.

13 | 14 |

GotToVote started off as a simple experiment to make data otherwise locked in government, useful to the general public.

15 |

Now we seek to make a larger impact in the democratic process by partnering with government, civil society and media organisation to improve the entire process.

16 |

Learn more

17 |
18 |
19 | 20 | 21 |
22 |
23 |
24 | 25 |
26 | 27 |
28 |
29 | 37 | 38 |

Using GotToVote's Registration Centres Information platform

39 | 40 |
41 | 42 |
43 |
44 |

Supported By

45 |

46 | 47 | 48 |

49 |
50 |
51 |

Built By

52 |

53 |
54 |
55 | 56 |
57 | 58 |
59 | 60 |
61 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | GotToVote! {{ site.country }} | {{ page.title }} 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 35 | 36 | 37 | 38 |
39 |
40 | 45 | 46 |

47 | 48 |

49 |
50 |
51 | 52 |
53 | 54 |
55 | 56 | {{ content }} 57 | 58 | {% include partners.html %} 59 | 60 |
61 | 62 | {% include footer.html %} 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | {% if page.custom_js %} 72 | {% for js_file in page.custom_js %} 73 | 74 | {% endfor %} 75 | {% endif %} 76 | 77 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Page Not Found :( 6 | 141 | 142 | 143 |
144 |

Not found :(

145 |

Sorry, but the page you were trying to view does not exist.

146 |

It looks like this was the result of either:

147 |
    148 |
  • a mistyped address
  • 149 |
  • an out-of-date link
  • 150 |
151 | 154 | 155 |
156 | 157 | 158 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to HTML5 Boilerplate 2 | 3 | ♥ [HTML5 Boilerplate](http://html5boilerplate.com) and want to get involved? 4 | Thanks! There are plenty of ways you can help! 5 | 6 | Please take a moment to review this document in order to make the contribution 7 | process easy and effective for everyone involved. 8 | 9 | Following these guidelines helps to communicate that you respect the time of 10 | the developers managing and developing this open source project. In return, 11 | they should reciprocate that respect in addressing your issue or assessing 12 | patches and features. 13 | 14 | 15 | ## Using the issue tracker 16 | 17 | The [issue tracker](https://github.com/h5bp/html5-boilerplate/issues) is 18 | the preferred channel for [bug reports](#bugs), [features requests](#features) 19 | and [submitting pull requests](#pull-requests), but please respect the following 20 | restrictions: 21 | 22 | * Please **do not** use the issue tracker for personal support requests (use 23 | [Stack Overflow](http://stackoverflow.com/questions/tagged/html5boilerplate) 24 | or IRC). 25 | 26 | * Please **do not** derail or troll issues. Keep the discussion on topic and 27 | respect the opinions of others. 28 | 29 | * Please **do not** open issues or pull requests regarding the code in 30 | [`.htaccess`](https://github.com/h5bp/server-configs-apache), 31 | [`jQuery`](https://github.com/jquery/jquery/), 32 | [`Modernizr`](https://github.com/Modernizr/Modernizr) or 33 | [`Normalize.css`](https://github.com/necolas/normalize.css) (open them in 34 | their respective repositories). 35 | 36 | 37 | 38 | ## Bug reports 39 | 40 | A bug is a _demonstrable problem_ that is caused by the code in the repository. 41 | Good bug reports are extremely helpful - thank you! 42 | 43 | Guidelines for bug reports: 44 | 45 | 1. **Use the GitHub issue search** — check if the issue has already been 46 | reported. 47 | 48 | 2. **Check if the issue has been fixed** — try to reproduce it using the 49 | latest `master` or development branch in the repository. 50 | 51 | 3. **Isolate the problem** — ideally create a [reduced test 52 | case](http://css-tricks.com/6263-reduced-test-cases/) and a live example. 53 | 54 | A good bug report shouldn't leave others needing to chase you up for more 55 | information. Please try to be as detailed as possible in your report. What is 56 | your environment? What steps will reproduce the issue? What browser(s) and OS 57 | experience the problem? What would you expect to be the outcome? All these 58 | details will help people to fix any potential bugs. 59 | 60 | Example: 61 | 62 | > Short and descriptive example bug report title 63 | > 64 | > A summary of the issue and the browser/OS environment in which it occurs. If 65 | > suitable, include the steps required to reproduce the bug. 66 | > 67 | > 1. This is the first step 68 | > 2. This is the second step 69 | > 3. Further steps, etc. 70 | > 71 | > `` - a link to the reduced test case 72 | > 73 | > Any other information you want to share that is relevant to the issue being 74 | > reported. This might include the lines of code that you have identified as 75 | > causing the bug, and potential solutions (and your opinions on their 76 | > merits). 77 | 78 | 79 | 80 | ## Feature requests 81 | 82 | Feature requests are welcome. But take a moment to find out whether your idea 83 | fits with the scope and aims of the project. It's up to *you* to make a strong 84 | case to convince the project's developers of the merits of this feature. Please 85 | provide as much detail and context as possible. 86 | 87 | 88 | 89 | ## Pull requests 90 | 91 | Good pull requests - patches, improvements, new features - are a fantastic 92 | help. They should remain focused in scope and avoid containing unrelated 93 | commits. 94 | 95 | **Please ask first** before embarking on any significant pull request (e.g. 96 | implementing features, refactoring code, porting to a different language), 97 | otherwise you risk spending a lot of time working on something that the 98 | project's developers might not want to merge into the project. 99 | 100 | Please adhere to the coding conventions used throughout a project (indentation, 101 | accurate comments, etc.) and any other requirements (such as test coverage). 102 | 103 | Adhering to the following this process is the best way to get your work 104 | included in the project: 105 | 106 | 1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, 107 | and configure the remotes: 108 | 109 | ```bash 110 | # Clone your fork of the repo into the current directory 111 | git clone https://github.com//html5-boilerplate.git 112 | # Navigate to the newly cloned directory 113 | cd html5-boilerplate 114 | # Assign the original repo to a remote called "upstream" 115 | git remote add upstream https://github.com/h5bp/html5-boilerplate.git 116 | ``` 117 | 118 | 2. If you cloned a while ago, get the latest changes from upstream: 119 | 120 | ```bash 121 | git checkout master 122 | git pull upstream master 123 | ``` 124 | 125 | 3. Create a new topic branch (off the main project development branch) to 126 | contain your feature, change, or fix: 127 | 128 | ```bash 129 | git checkout -b 130 | ``` 131 | 132 | 4. Commit your changes in logical chunks. Please adhere to these [git commit 133 | message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) 134 | or your code is unlikely be merged into the main project. Use Git's 135 | [interactive rebase](https://help.github.com/articles/interactive-rebase) 136 | feature to tidy up your commits before making them public. 137 | 138 | 5. Locally merge (or rebase) the upstream development branch into your topic branch: 139 | 140 | ```bash 141 | git pull [--rebase] upstream master 142 | ``` 143 | 144 | 6. Push your topic branch up to your fork: 145 | 146 | ```bash 147 | git push origin 148 | ``` 149 | 150 | 7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) 151 | with a clear title and description. 152 | 153 | **IMPORTANT**: By submitting a patch, you agree to allow the project owners to 154 | license your work under the the terms of the [MIT License](LICENSE.md). 155 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: "Find Your Registration Centre" 4 | home: active 5 | 6 | custom_js: main 7 | --- 8 | 13 | 14 |
15 |

Register as a Voter Today!

16 |

Voter registration for the {{ site.country }} {{ site.election_year }} Elections has begun. 17 | Find a voter registration centre and register to vote.

18 |

Find a Registration Centre

19 |
20 | 21 |
22 | 23 |
24 |
25 |

What is voter registration?

26 |

Voter registration is the process of entering details of qualified persons including their National Identity Card or Passport numbers in a register or list of voters.

27 | 28 |

Who qualifies to register as a voter?

29 |

In order to qualify as a voter, one must:

30 |
    31 |
  • Be a citizen of {{ site.country }}

  • 32 |
  • Be 18 years old and above

  • 33 |
34 | 35 | 37 | 38 |
39 |
40 |

Why register as a voter?

41 |

Registering as a voter will give you the opportunity to elect leaders for your country at the national and county levels. You can only participate in elections if you are a registered voter. It is your right and duty as a responsible citizen to elect your leaders.

42 | 43 |

Where can you register as a voter?

44 |

You can register as a voter at any designated voter registration centres within the electoral area where you wish to vote.

45 | 46 | 48 |
49 |
50 | 51 |
52 | 53 | 54 |
55 |

Find A Registration Centre!

56 | 57 |
58 |
59 |
60 |

County

61 | 111 |
112 |
113 |
114 |
115 |

Constituency

116 | 119 |
120 |
121 |
122 |
123 |

Ward

124 | 127 |
128 |
129 |
130 | 131 | 140 |
141 | -------------------------------------------------------------------------------- /css/main.css: -------------------------------------------------------------------------------- 1 | /*! HTML5 Boilerplate v4.3.0 | MIT License | http://h5bp.com/ */ 2 | 3 | /* 4 | * What follows is the result of much research on cross-browser styling. 5 | * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, 6 | * Kroc Camen, and the H5BP dev community and team. 7 | */ 8 | 9 | /* ========================================================================== 10 | Base styles: opinionated defaults 11 | ========================================================================== */ 12 | 13 | html, 14 | button, 15 | input, 16 | select, 17 | textarea { 18 | color: #222; 19 | } 20 | 21 | html { 22 | font-size: 1em; 23 | line-height: 1.4; 24 | } 25 | 26 | /* 27 | * Remove text-shadow in selection highlight: h5bp.com/i 28 | * These selection rule sets have to be separate. 29 | * Customize the background color to match your design. 30 | */ 31 | 32 | ::-moz-selection { 33 | background: #b3d4fc; 34 | text-shadow: none; 35 | } 36 | 37 | ::selection { 38 | background: #b3d4fc; 39 | text-shadow: none; 40 | } 41 | 42 | /* 43 | * A better looking default horizontal rule 44 | */ 45 | 46 | hr { 47 | display: block; 48 | height: 1px; 49 | border: 0; 50 | border-top: 1px solid #ccc; 51 | margin: 1em 0; 52 | padding: 0; 53 | } 54 | 55 | /* 56 | * Remove the gap between images, videos, audio and canvas and the bottom of 57 | * their containers: h5bp.com/i/440 58 | */ 59 | 60 | audio, 61 | canvas, 62 | img, 63 | video { 64 | vertical-align: middle; 65 | } 66 | 67 | /* 68 | * Remove default fieldset styles. 69 | */ 70 | 71 | fieldset { 72 | border: 0; 73 | margin: 0; 74 | padding: 0; 75 | } 76 | 77 | /* 78 | * Allow only vertical resizing of textareas. 79 | */ 80 | 81 | textarea { 82 | resize: vertical; 83 | } 84 | 85 | /* ========================================================================== 86 | Browse Happy prompt 87 | ========================================================================== */ 88 | 89 | .browsehappy { 90 | margin: 0.2em 0; 91 | background: #ccc; 92 | color: #000; 93 | padding: 0.2em 0; 94 | } 95 | 96 | /* ========================================================================== 97 | Author's custom styles 98 | ========================================================================== */ 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | /* ========================================================================== 117 | Helper classes 118 | ========================================================================== */ 119 | 120 | /* 121 | * Image replacement 122 | */ 123 | 124 | .ir { 125 | background-color: transparent; 126 | border: 0; 127 | overflow: hidden; 128 | /* IE 6/7 fallback */ 129 | *text-indent: -9999px; 130 | } 131 | 132 | .ir:before { 133 | content: ""; 134 | display: block; 135 | width: 0; 136 | height: 150%; 137 | } 138 | 139 | /* 140 | * Hide from both screenreaders and browsers: h5bp.com/u 141 | */ 142 | 143 | .hidden { 144 | display: none !important; 145 | visibility: hidden; 146 | } 147 | 148 | /* 149 | * Hide only visually, but have it available for screenreaders: h5bp.com/v 150 | */ 151 | 152 | .visuallyhidden { 153 | border: 0; 154 | clip: rect(0 0 0 0); 155 | height: 1px; 156 | margin: -1px; 157 | overflow: hidden; 158 | padding: 0; 159 | position: absolute; 160 | width: 1px; 161 | } 162 | 163 | /* 164 | * Extends the .visuallyhidden class to allow the element to be focusable 165 | * when navigated to via the keyboard: h5bp.com/p 166 | */ 167 | 168 | .visuallyhidden.focusable:active, 169 | .visuallyhidden.focusable:focus { 170 | clip: auto; 171 | height: auto; 172 | margin: 0; 173 | overflow: visible; 174 | position: static; 175 | width: auto; 176 | } 177 | 178 | /* 179 | * Hide visually and from screenreaders, but maintain layout 180 | */ 181 | 182 | .invisible { 183 | visibility: hidden; 184 | } 185 | 186 | /* 187 | * Clearfix: contain floats 188 | * 189 | * For modern browsers 190 | * 1. The space content is one way to avoid an Opera bug when the 191 | * `contenteditable` attribute is included anywhere else in the document. 192 | * Otherwise it causes space to appear at the top and bottom of elements 193 | * that receive the `clearfix` class. 194 | * 2. The use of `table` rather than `block` is only necessary if using 195 | * `:before` to contain the top-margins of child elements. 196 | */ 197 | 198 | .clearfix:before, 199 | .clearfix:after { 200 | content: " "; /* 1 */ 201 | display: table; /* 2 */ 202 | } 203 | 204 | .clearfix:after { 205 | clear: both; 206 | } 207 | 208 | /* 209 | * For IE 6/7 only 210 | * Include this rule to trigger hasLayout and contain floats. 211 | */ 212 | 213 | .clearfix { 214 | *zoom: 1; 215 | } 216 | 217 | /* ========================================================================== 218 | EXAMPLE Media Queries for Responsive Design. 219 | These examples override the primary ('mobile first') styles. 220 | Modify as content requires. 221 | ========================================================================== */ 222 | 223 | @media only screen and (min-width: 35em) { 224 | /* Style adjustments for viewports that meet the condition */ 225 | } 226 | 227 | @media print, 228 | (-o-min-device-pixel-ratio: 5/4), 229 | (-webkit-min-device-pixel-ratio: 1.25), 230 | (min-resolution: 120dpi) { 231 | /* Style adjustments for high resolution devices */ 232 | } 233 | 234 | /* ========================================================================== 235 | Print styles. 236 | Inlined to avoid required HTTP connection: h5bp.com/r 237 | ========================================================================== */ 238 | 239 | @media print { 240 | * { 241 | background: transparent !important; 242 | color: #000 !important; /* Black prints faster: h5bp.com/s */ 243 | box-shadow: none !important; 244 | text-shadow: none !important; 245 | } 246 | 247 | a, 248 | a:visited { 249 | text-decoration: underline; 250 | } 251 | 252 | a[href]:after { 253 | content: " (" attr(href) ")"; 254 | } 255 | 256 | abbr[title]:after { 257 | content: " (" attr(title) ")"; 258 | } 259 | 260 | /* 261 | * Don't show links for images, or javascript/internal links 262 | */ 263 | 264 | .ir a:after, 265 | a[href^="javascript:"]:after, 266 | a[href^="#"]:after { 267 | content: ""; 268 | } 269 | 270 | pre, 271 | blockquote { 272 | border: 1px solid #999; 273 | page-break-inside: avoid; 274 | } 275 | 276 | thead { 277 | display: table-header-group; /* h5bp.com/t */ 278 | } 279 | 280 | tr, 281 | img { 282 | page-break-inside: avoid; 283 | } 284 | 285 | img { 286 | max-width: 100% !important; 287 | } 288 | 289 | @page { 290 | margin: 0.5cm; 291 | } 292 | 293 | p, 294 | h2, 295 | h3 { 296 | orphans: 3; 297 | widows: 3; 298 | } 299 | 300 | h2, 301 | h3 { 302 | page-break-after: avoid; 303 | } 304 | } 305 | -------------------------------------------------------------------------------- /about.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: "About" 4 | about: active 5 | --- 6 | 7 | > Exercising one's democratic right in an election means that every vote must count. But without a voter’s card, you cannot exercise this right. These simple and cheap tools make it easier for eligible Kenyan citizens to register with the Independent Electoral and Boundaries Commission. 8 | >
Mulle Musau, National and Regional Coordinator - Elections Observation Group (ELOG) Kenya
9 | 10 |

GotToVote! {{ site.country }} is designed to help citizens find their nearest voter registration centre, so that they can ensure they are eligible to vote in the {{ site.election_year }} general election.

11 | 12 | This website, which is optimised for easy mobile access, explains who is eligible to register and gives an overview of the voter registration process. It also tells users what documentation to take with them to register, and helps users easily find their nearest voter registration center. 13 | 14 | This information is available elsewhere, but only as difficult-to-access PDF and MS Word or Excel documents that citizens are forced to download from a confusing variety of different ministry or other official websites. 15 | 16 | GotToVote! {{ site.country }} takes the pain out of finding the information, by bringing it all together in one place and by presenting it in a standardised format that is easily searchable and readable. 17 | 18 | Future versions of the site will introduce SMS tools, and will help users verify their registration, find their balloting stations, and track their local election results. 19 | 20 | GotToVote! {{ site.country }} is not a government website. It was instead built by local civic lab Code for Kenya and the continental open data incubator, Code for Africa. 21 | 22 | This project took just two days and $500 to execute. All the cleaned-up data and source materials used to power this website are available, free-of-charge, for you to reuse on your own projects. 23 | 24 | Contact us if you'd like our help to build other exciting citizen tools. 25 | 26 | 27 | #### Where Does It Come From? GotToVote's History 28 | 29 | GotToVote! is an example of how open data can be useful to ordinary citizens. 30 | 31 | GotToVote! was built as a Code for Kenya data journalism project to demonstrate how data-driven tools can help ordinary citizens decipher and then act on the news they read / watch, by finding out how a national event such as the elections affects their personal lives or local communities. 32 | 33 | The first version of GotToVote, was originally built in just 24hrs, at zero cost, to help voters register for the elections. Code for Kenya initiated the project after citizens complained that the official data released in PDF format by the Independent Electoral and Boundaries Commission (IEBC) was too large to download and too cumbersome to use. 34 | 35 | “The file was so big, it would have taken days for ordinary Kenyans to download. And, once they opened the document all they would have found was complex lists and tables of constituency registration centres. These elections are a tight race, and every vote counts. So, we knew that the information was simply too important to be ignored,” explains Open Institute executive director, Jay Bhalla. 36 | 37 | Two Code for Kenya fellows, David Lemayian and Simeon Oriko, therefore scraped the data out of the IBEC document and built a simple website for citizens to find their registration centre at the click of a button. The website also helped citizens understand the often complex procedures for registering. The site went viral. 38 | 39 | These early successes prompted Dutch human rights organisation, HiVOS, to make a grant to the project to build additional functionality, as well as to package GotToVote and other useful civic technology tools into a ‘plug-&-play’ resource kit for media and citizen groups in other countries. 40 | 41 | “The media and political parties are all focused on the national results and on results affecting two or three of the higher profile presidential contenders. The ordinary citizen and their need to know about their local results was getting lost in all the hype. GotToVote seeks to change that, by giving citizens their local results, as soon as they’re available, and mashing up these results with other locally relevant data,” says Bhalla. 42 | 43 | The second version of GotToVote does two things: it initially helps citizens spread messages of peace, by allowing them to send free SMS messages to friends and associates urging restraint at the ballot box. Once balloting closes, GotToVote will allow citizens to cut through all the ‘noise’ and hype generated during elections, by giving easy access to the official election results for their local counties, or local constituencies. GotToVote will also contextualise the results, by overlaying ballot returns with information about local trends, and official reports of local election fraud or other irregularities. 44 | 45 | GotToVote! has since been replicated in Malawi (where electoral authorities adopted it as the official government solution for voter verification), Ghana, Zambia and Zimbabwe. 46 | 47 | “The approach is something that data journalists in programmes like Code for Kenya do all the time. Thousands of Kenyans were using GotToVote to register for the elections, within hours of the 1st version of the site going live. It proved that the real power of civic technologies is their ability to quickly and cheaply translate complex data into ‘actionable’ information, and to then calibrate the information to a citizens’ exact location or other circumstances,” says Code for Africa Director, Justin Arenstein. 48 | 49 | Code for Kenya is a fully fleged initiative spearheaded by Code for Africa. It has continued to embed Data Fellows into major Kenyan newsrooms and a civil society organisation, to help kickstart experimentation with data-driven civic engagement tools. The Data Fellows were supported by an external software development team. 50 | 51 | Code for Kenya has inspired similar initiatives in Ghana, Nigeria and South Africa. Its success has prompted Code for Africa to pledge additional funding to allow Code for Kenya's Accelerator lab to continue building civic tech projects until the end of 2019. 52 | 53 | #### re/USE manifesto 54 | 55 | Code for Africa and its partners hate seeing civil society or anyone else being duped into wasting money unnecessarily on inappropriate technology or predatory consultancies. 56 | 57 | There are thousands of civic apps and other technology solutions already available for reuse, free-of-charge, on communities such as GitHub. 58 | 59 | Code for Africa is committed to help grow these resources and the global civic technology community, by making its code and data freely available. It is also committed to helping fellow African citizen agency organisations re-purpose and customise existing civic code as cost-effectively as possible. 60 | 61 | The code for GotToVote! {{ site.country }} is available here. 62 | 63 | All the data used by the {{ site.country }} project and other initiatives is available for free reuse on the openAFRICA.net portal. It is already the continent's largest repository of public data, despite being volunteer run, and offers data ranging from government budget and tender information, to data about parliamentarians and other public officials. 64 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ### HEAD 2 | 3 | ### 4.3.0 (September 10, 2013) 4 | 5 | * Use one apple-touch-icon instead of six ([#1367](https://github.com/h5bp/html5-boilerplate/issues/1367)). 6 | * Move font-related declarations from `body` to `html` ([#1411](https://github.com/h5bp/html5-boilerplate/issues/1411)). 7 | * Update to Apache Server Configs 1.1.0. 8 | * Add `initial-scale=1` to the viewport `meta` ([#1398](https://github.com/h5bp/html5-boilerplate/pull/1398)). 9 | * Vertical centering for audio-, canvas- and video-tags ([#1326](https://github.com/h5bp/html5-boilerplate/issues/1326)). 10 | * Remove Google Chrome Frame related code ([#1379](https://github.com/h5bp/html5-boilerplate/pull/1379), [#1396](https://github.com/h5bp/html5-boilerplate/pull/1396)). 11 | * Update to Google Universal Analytics ([#1347](https://github.com/h5bp/html5-boilerplate/issues/1347)). 12 | * Update to jQuery 1.10.2. 13 | * Update to Normalize.css 1.1.3. 14 | 15 | ### 4.2.0 (April 8, 2013) 16 | 17 | * Remove Google Analytics protocol check ([#1319](https://github.com/h5bp/html5-boilerplate/pull/1319)). 18 | * Update to Normalize.css 1.1.1. 19 | * Update Apache configurations to include the latest changes in the canonical 20 | [`.htaccess`](https://github.com/h5bp/server-configs-apache) file. 21 | * Use a protocol relative URL for the 404 template script. 22 | * Update to jQuery 1.9.1. 23 | 24 | ### 4.1.0 (January 21, 2013) 25 | 26 | * Update to Normalize.css 1.1.0. 27 | * Update to jQuery 1.9.0. 28 | 29 | ### 4.0.3 (January 12, 2013) 30 | 31 | * Use 32x32 favicon.ico ([#1286](https://github.com/h5bp/html5-boilerplate/pull/1286)). 32 | * Remove named function expression in plugins.js ([#1280](https://github.com/h5bp/html5-boilerplate/pull/1280)). 33 | * Adjust CSS image-replacement code ([#1239](https://github.com/h5bp/html5-boilerplate/issues/1239)). 34 | * Update HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)). 35 | 36 | ### 4.0.2 (December 9, 2012) 37 | 38 | * Update placeholder icons. 39 | * Update to Normalize.css 1.0.2. 40 | * Update to jQuery 1.8.3. 41 | 42 | ### 4.0.1 (October 20, 2012) 43 | 44 | * Further improvements to `console` method stubbing ([#1206](https://github.com/h5bp/html5-boilerplate/issues/1206), [#1229](https://github.com/h5bp/html5-boilerplate/pull/1229)). 45 | * Update to jQuery 1.8.2. 46 | * Update to Modernizr 2.6.2. 47 | * Minor additions to the documentation. 48 | 49 | ### 4.0.0 (August 28, 2012) 50 | 51 | * Improve the Apache compression configuration ([#1012](https://github.com/h5bp/html5-boilerplate/issues/1012), [#1173](https://github.com/h5bp/html5-boilerplate/issues/1173)). 52 | * Add a HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)). 53 | * Add bundled docs ([#1154](https://github.com/h5bp/html5-boilerplate/issues/1154)). 54 | * Add MIT license ([#1139](https://github.com/h5bp/html5-boilerplate/issues/1139)). 55 | * Update to Normalize.css 1.0.1. 56 | * Separate Normalize.css from the rest of the CSS ([#1160](https://github.com/h5bp/html5-boilerplate/issues/1160)). 57 | * Improve `console.log` protection ([#1107](https://github.com/h5bp/html5-boilerplate/issues/1107)). 58 | * Replace hot pink text selection color with a neutral color. 59 | * Change image replacement technique ([#1149](https://github.com/h5bp/html5-boilerplate/issues/1149)). 60 | * Code format and consistency changes ([#1112](https://github.com/h5bp/html5-boilerplate/issues/1112)). 61 | * Rename CSS file and rename JS files and subdirectories. 62 | * Update to jQuery 1.8 ([#1161](https://github.com/h5bp/html5-boilerplate/issues/1161)). 63 | * Update to Modernizr 2.6.1 ([#1086](https://github.com/h5bp/html5-boilerplate/issues/1086)). 64 | * Remove uncompressed jQuery ([#1153](https://github.com/h5bp/html5-boilerplate/issues/1153)). 65 | * Remove superfluous inline comments ([#1150](https://github.com/h5bp/html5-boilerplate/issues/1150)). 66 | 67 | ### 3.0.2 (February 19, 2012) 68 | 69 | * Update to Modernizr 2.5.3. 70 | 71 | ### 3.0.1 (February 08, 2012). 72 | 73 | * Update to Modernizr 2.5.2 (includes html5shiv 3.3). 74 | 75 | ### 3.0.0 (February 06, 2012) 76 | 77 | * Improvements to `.htaccess`. 78 | * Improve 404 design. 79 | * Simplify JS folder structure. 80 | * Change `html` IE class names changed to target ranges rather than specific versions of IE. 81 | * Update CSS to include latest normalize.css changes and better typographic defaults ([#825](https://github.com/h5bp/html5-boilerplate/issues/825)). 82 | * Update to Modernizr 2.5 (includes yepnope 1.5 and html5shiv 3.2). 83 | * Update to jQuery 1.7.1. 84 | * Revert to async snippet for the Google Analytics script. 85 | * Remove the ant build script ([#826](https://github.com/h5bp/html5-boilerplate/issues/826)). 86 | * Remove Respond.js ([#816](https://github.com/h5bp/html5-boilerplate/issues/816)). 87 | * Remove the `demo/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)). 88 | * Remove the `test/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)). 89 | * Remove Google Chrome Frame script for IE6 users; replace with links to Chrome Frame and options for alternative browsers. 90 | * Remove `initial-scale=1` from the viewport `meta` ([#824](https://github.com/h5bp/html5-boilerplate/issues/824)). 91 | * Remove `defer` from all scripts to avoid legacy IE bugs. 92 | * Remove explicit Site Speed tracking for Google Analytics. It's now enabled by default. 93 | 94 | ### 2.0.0 (August 10, 2011) 95 | 96 | * Change starting CSS to be based on normalize.css instead of reset.css ([#500](https://github.com/h5bp/html5-boilerplate/issues/500)). 97 | * Add Respond.js media query polyfill. 98 | * Add Google Chrome Frame script prompt for IE6 users. 99 | * Simplify the `html` conditional comments for modern browsers and add an `oldie` class. 100 | * Update clearfix to use "micro clearfix". 101 | * Add placeholder CSS MQs for mobile-first approach. 102 | * Add `textarea { resize: vertical; }` to only allow vertical resizing. 103 | * Add `img { max-width: 100%; }` to the print styles; prevents images being truncated. 104 | * Add Site Speed tracking for Google Analytics. 105 | * Update to jQuery 1.6.2 (and use minified by default). 106 | * Update to Modernizr 2.0 Complete, Production minified (includes yepnope, html5shiv, and Respond.js). 107 | * Use `Modernizr.load()` to load the Google Analytics script. 108 | * Much faster build process. 109 | * Add build script options for CSSLint, JSLint, JSHint tools. 110 | * Build script now compresses all images in subfolders. 111 | * Build script now versions files by SHA hash. 112 | * Many `.htaccess` improvements including: disable directory browsing, improved support for all versions of Apache, more robust and extensive HTTP compression rules. 113 | * Remove `handheld.css` as it has very poor device support. 114 | * Remove touch-icon `link` elements from the HTML and include improved touch-icon support. 115 | * Remove the cache-busting query paramaters from files references in the HTML. 116 | * Remove IE6 PNGFix. 117 | 118 | ### 1.0.0 (March 21, 2011) 119 | 120 | * Rewrite build script to make it more customizable and flexible. 121 | * Add a humans.txt. 122 | * Numerous `.htaccess` improvements (including inline documentation). 123 | * Move the alternative server configurations to the H5BP server configs repo. 124 | * Use a protocol-relative url to reference jQuery and prevent mixed content warnings. 125 | * Optimize the Google Analytics snippet. 126 | * Use Eric Meyer's recent CSS reset update and the HTML5 Doctor reset. 127 | * More robust `sub`/`sup` CSS styles. 128 | * Add keyboard `.focusable` helper class that extends `.visuallyhidden`. 129 | * Print styles no longer print hash or JavaScript links. 130 | * Add a print reset for IE's proprietary filters. 131 | * Remove IE9-specific conditional class on the `html` element. 132 | * Remove margins from lists within `nav` elements. 133 | * Remove YUI profiling. 134 | -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v1.1.3 | MIT License | git.io/normalize */ 2 | 3 | /* ========================================================================== 4 | HTML5 display definitions 5 | ========================================================================== */ 6 | 7 | /** 8 | * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. 9 | */ 10 | 11 | article, 12 | aside, 13 | details, 14 | figcaption, 15 | figure, 16 | footer, 17 | header, 18 | hgroup, 19 | main, 20 | nav, 21 | section, 22 | summary { 23 | display: block; 24 | } 25 | 26 | /** 27 | * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. 28 | */ 29 | 30 | audio, 31 | canvas, 32 | video { 33 | display: inline-block; 34 | *display: inline; 35 | *zoom: 1; 36 | } 37 | 38 | /** 39 | * Prevent modern browsers from displaying `audio` without controls. 40 | * Remove excess height in iOS 5 devices. 41 | */ 42 | 43 | audio:not([controls]) { 44 | display: none; 45 | height: 0; 46 | } 47 | 48 | /** 49 | * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. 50 | * Known issue: no IE 6 support. 51 | */ 52 | 53 | [hidden] { 54 | display: none; 55 | } 56 | 57 | /* ========================================================================== 58 | Base 59 | ========================================================================== */ 60 | 61 | /** 62 | * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using 63 | * `em` units. 64 | * 2. Prevent iOS text size adjust after orientation change, without disabling 65 | * user zoom. 66 | */ 67 | 68 | html { 69 | font-size: 100%; /* 1 */ 70 | -ms-text-size-adjust: 100%; /* 2 */ 71 | -webkit-text-size-adjust: 100%; /* 2 */ 72 | } 73 | 74 | /** 75 | * Address `font-family` inconsistency between `textarea` and other form 76 | * elements. 77 | */ 78 | 79 | html, 80 | button, 81 | input, 82 | select, 83 | textarea { 84 | font-family: sans-serif; 85 | } 86 | 87 | /** 88 | * Address margins handled incorrectly in IE 6/7. 89 | */ 90 | 91 | body { 92 | margin: 0; 93 | } 94 | 95 | /* ========================================================================== 96 | Links 97 | ========================================================================== */ 98 | 99 | /** 100 | * Address `outline` inconsistency between Chrome and other browsers. 101 | */ 102 | 103 | a:focus { 104 | outline: thin dotted; 105 | } 106 | 107 | /** 108 | * Improve readability when focused and also mouse hovered in all browsers. 109 | */ 110 | 111 | a:active, 112 | a:hover { 113 | outline: 0; 114 | } 115 | 116 | /* ========================================================================== 117 | Typography 118 | ========================================================================== */ 119 | 120 | /** 121 | * Address font sizes and margins set differently in IE 6/7. 122 | * Address font sizes within `section` and `article` in Firefox 4+, Safari 5, 123 | * and Chrome. 124 | */ 125 | 126 | h1 { 127 | font-size: 2em; 128 | margin: 0.67em 0; 129 | } 130 | 131 | h2 { 132 | font-size: 1.5em; 133 | margin: 0.83em 0; 134 | } 135 | 136 | h3 { 137 | font-size: 1.17em; 138 | margin: 1em 0; 139 | } 140 | 141 | h4 { 142 | font-size: 1em; 143 | margin: 1.33em 0; 144 | } 145 | 146 | h5 { 147 | font-size: 0.83em; 148 | margin: 1.67em 0; 149 | } 150 | 151 | h6 { 152 | font-size: 0.67em; 153 | margin: 2.33em 0; 154 | } 155 | 156 | /** 157 | * Address styling not present in IE 7/8/9, Safari 5, and Chrome. 158 | */ 159 | 160 | abbr[title] { 161 | border-bottom: 1px dotted; 162 | } 163 | 164 | /** 165 | * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. 166 | */ 167 | 168 | b, 169 | strong { 170 | font-weight: bold; 171 | } 172 | 173 | blockquote { 174 | margin: 1em 40px; 175 | } 176 | 177 | /** 178 | * Address styling not present in Safari 5 and Chrome. 179 | */ 180 | 181 | dfn { 182 | font-style: italic; 183 | } 184 | 185 | /** 186 | * Address differences between Firefox and other browsers. 187 | * Known issue: no IE 6/7 normalization. 188 | */ 189 | 190 | hr { 191 | -moz-box-sizing: content-box; 192 | box-sizing: content-box; 193 | height: 0; 194 | } 195 | 196 | /** 197 | * Address styling not present in IE 6/7/8/9. 198 | */ 199 | 200 | mark { 201 | background: #ff0; 202 | color: #000; 203 | } 204 | 205 | /** 206 | * Address margins set differently in IE 6/7. 207 | */ 208 | 209 | p, 210 | pre { 211 | margin: 1em 0; 212 | } 213 | 214 | /** 215 | * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. 216 | */ 217 | 218 | code, 219 | kbd, 220 | pre, 221 | samp { 222 | font-family: monospace, serif; 223 | _font-family: 'courier new', monospace; 224 | font-size: 1em; 225 | } 226 | 227 | /** 228 | * Improve readability of pre-formatted text in all browsers. 229 | */ 230 | 231 | pre { 232 | white-space: pre; 233 | white-space: pre-wrap; 234 | word-wrap: break-word; 235 | } 236 | 237 | /** 238 | * Address CSS quotes not supported in IE 6/7. 239 | */ 240 | 241 | q { 242 | quotes: none; 243 | } 244 | 245 | /** 246 | * Address `quotes` property not supported in Safari 4. 247 | */ 248 | 249 | q:before, 250 | q:after { 251 | content: ''; 252 | content: none; 253 | } 254 | 255 | /** 256 | * Address inconsistent and variable font size in all browsers. 257 | */ 258 | 259 | small { 260 | font-size: 80%; 261 | } 262 | 263 | /** 264 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 265 | */ 266 | 267 | sub, 268 | sup { 269 | font-size: 75%; 270 | line-height: 0; 271 | position: relative; 272 | vertical-align: baseline; 273 | } 274 | 275 | sup { 276 | top: -0.5em; 277 | } 278 | 279 | sub { 280 | bottom: -0.25em; 281 | } 282 | 283 | /* ========================================================================== 284 | Lists 285 | ========================================================================== */ 286 | 287 | /** 288 | * Address margins set differently in IE 6/7. 289 | */ 290 | 291 | dl, 292 | menu, 293 | ol, 294 | ul { 295 | margin: 1em 0; 296 | } 297 | 298 | dd { 299 | margin: 0 0 0 40px; 300 | } 301 | 302 | /** 303 | * Address paddings set differently in IE 6/7. 304 | */ 305 | 306 | menu, 307 | ol, 308 | ul { 309 | padding: 0 0 0 40px; 310 | } 311 | 312 | /** 313 | * Correct list images handled incorrectly in IE 7. 314 | */ 315 | 316 | nav ul, 317 | nav ol { 318 | list-style: none; 319 | list-style-image: none; 320 | } 321 | 322 | /* ========================================================================== 323 | Embedded content 324 | ========================================================================== */ 325 | 326 | /** 327 | * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. 328 | * 2. Improve image quality when scaled in IE 7. 329 | */ 330 | 331 | img { 332 | border: 0; /* 1 */ 333 | -ms-interpolation-mode: bicubic; /* 2 */ 334 | } 335 | 336 | /** 337 | * Correct overflow displayed oddly in IE 9. 338 | */ 339 | 340 | svg:not(:root) { 341 | overflow: hidden; 342 | } 343 | 344 | /* ========================================================================== 345 | Figures 346 | ========================================================================== */ 347 | 348 | /** 349 | * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. 350 | */ 351 | 352 | figure { 353 | margin: 0; 354 | } 355 | 356 | /* ========================================================================== 357 | Forms 358 | ========================================================================== */ 359 | 360 | /** 361 | * Correct margin displayed oddly in IE 6/7. 362 | */ 363 | 364 | form { 365 | margin: 0; 366 | } 367 | 368 | /** 369 | * Define consistent border, margin, and padding. 370 | */ 371 | 372 | fieldset { 373 | border: 1px solid #c0c0c0; 374 | margin: 0 2px; 375 | padding: 0.35em 0.625em 0.75em; 376 | } 377 | 378 | /** 379 | * 1. Correct color not being inherited in IE 6/7/8/9. 380 | * 2. Correct text not wrapping in Firefox 3. 381 | * 3. Correct alignment displayed oddly in IE 6/7. 382 | */ 383 | 384 | legend { 385 | border: 0; /* 1 */ 386 | padding: 0; 387 | white-space: normal; /* 2 */ 388 | *margin-left: -7px; /* 3 */ 389 | } 390 | 391 | /** 392 | * 1. Correct font size not being inherited in all browsers. 393 | * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, 394 | * and Chrome. 395 | * 3. Improve appearance and consistency in all browsers. 396 | */ 397 | 398 | button, 399 | input, 400 | select, 401 | textarea { 402 | font-size: 100%; /* 1 */ 403 | margin: 0; /* 2 */ 404 | vertical-align: baseline; /* 3 */ 405 | *vertical-align: middle; /* 3 */ 406 | } 407 | 408 | /** 409 | * Address Firefox 3+ setting `line-height` on `input` using `!important` in 410 | * the UA stylesheet. 411 | */ 412 | 413 | button, 414 | input { 415 | line-height: normal; 416 | } 417 | 418 | /** 419 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 420 | * All other form control elements do not inherit `text-transform` values. 421 | * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. 422 | * Correct `select` style inheritance in Firefox 4+ and Opera. 423 | */ 424 | 425 | button, 426 | select { 427 | text-transform: none; 428 | } 429 | 430 | /** 431 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 432 | * and `video` controls. 433 | * 2. Correct inability to style clickable `input` types in iOS. 434 | * 3. Improve usability and consistency of cursor style between image-type 435 | * `input` and others. 436 | * 4. Remove inner spacing in IE 7 without affecting normal text inputs. 437 | * Known issue: inner spacing remains in IE 6. 438 | */ 439 | 440 | button, 441 | html input[type="button"], /* 1 */ 442 | input[type="reset"], 443 | input[type="submit"] { 444 | -webkit-appearance: button; /* 2 */ 445 | cursor: pointer; /* 3 */ 446 | *overflow: visible; /* 4 */ 447 | } 448 | 449 | /** 450 | * Re-set default cursor for disabled elements. 451 | */ 452 | 453 | button[disabled], 454 | html input[disabled] { 455 | cursor: default; 456 | } 457 | 458 | /** 459 | * 1. Address box sizing set to content-box in IE 8/9. 460 | * 2. Remove excess padding in IE 8/9. 461 | * 3. Remove excess padding in IE 7. 462 | * Known issue: excess padding remains in IE 6. 463 | */ 464 | 465 | input[type="checkbox"], 466 | input[type="radio"] { 467 | box-sizing: border-box; /* 1 */ 468 | padding: 0; /* 2 */ 469 | *height: 13px; /* 3 */ 470 | *width: 13px; /* 3 */ 471 | } 472 | 473 | /** 474 | * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 475 | * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome 476 | * (include `-moz` to future-proof). 477 | */ 478 | 479 | input[type="search"] { 480 | -webkit-appearance: textfield; /* 1 */ 481 | -moz-box-sizing: content-box; 482 | -webkit-box-sizing: content-box; /* 2 */ 483 | box-sizing: content-box; 484 | } 485 | 486 | /** 487 | * Remove inner padding and search cancel button in Safari 5 and Chrome 488 | * on OS X. 489 | */ 490 | 491 | input[type="search"]::-webkit-search-cancel-button, 492 | input[type="search"]::-webkit-search-decoration { 493 | -webkit-appearance: none; 494 | } 495 | 496 | /** 497 | * Remove inner padding and border in Firefox 3+. 498 | */ 499 | 500 | button::-moz-focus-inner, 501 | input::-moz-focus-inner { 502 | border: 0; 503 | padding: 0; 504 | } 505 | 506 | /** 507 | * 1. Remove default vertical scrollbar in IE 6/7/8/9. 508 | * 2. Improve readability and alignment in all browsers. 509 | */ 510 | 511 | textarea { 512 | overflow: auto; /* 1 */ 513 | vertical-align: top; /* 2 */ 514 | } 515 | 516 | /* ========================================================================== 517 | Tables 518 | ========================================================================== */ 519 | 520 | /** 521 | * Remove most spacing between table cells. 522 | */ 523 | 524 | table { 525 | border-collapse: collapse; 526 | border-spacing: 0; 527 | } 528 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | // Selection Criteria 5 | 6 | var county_sel = document.getElementById("county_select"); 7 | var const_sel = document.getElementById("const_select"); 8 | var ward_sel = document.getElementById("ward_select"); 9 | 10 | var found_reg = document.getElementById("found-reg"); 11 | var loading_gif = document.getElementById("loading_gif"); 12 | 13 | var header_name = document.getElementById("header-name"); 14 | 15 | var county_code = 1; 16 | 17 | var const_code = []; 18 | var const_name = []; 19 | var ward_code = []; 20 | var ward_name = []; 21 | var ward_reg_code = []; 22 | var ward_reg_name = []; 23 | var centre_code = []; 24 | var centre_name = []; 25 | 26 | 27 | //Fusion Table Variables 28 | 29 | var json_result; 30 | 31 | var get_url = "https://www.googleapis.com/fusiontables/v2/query?sql="; 32 | var sql_1 = encodeURIComponent("SELECT * FROM "); 33 | var sql_2 = encodeURIComponent(" WHERE 'County Code' = " + county_code); 34 | var api_key = "&key={{ site.api_key }}"; 35 | 36 | var table_id = "{{ site.table_id }}"; 37 | 38 | county_sel.onchange = function () { 39 | 40 | if (county_sel.value == 0) { 41 | //Selected Default 42 | county_sel.options[county_code].selected = "true"; 43 | } else { 44 | if (county_sel.options[0].value == 0) { 45 | county_sel.remove(0); 46 | } 47 | const_sel.innerHTML = ""; 48 | ward_sel.innerHTML = ""; 49 | 50 | header_name.innerHTML = unescape(toTitleCase(escape(county_sel.options[county_sel.selectedIndex].innerHTML))) + " Region"; 51 | 52 | $("#reg-centres").html("" + 53 | "

\"\"" + 54 | "Finding registration centres...

"); 55 | $("#found-reg").slideDown('fast'); 56 | 57 | county_code = county_sel.value; 58 | sql_2 = encodeURIComponent(" WHERE 'County Code' = " + county_code); 59 | run_get_centres(table_id); 60 | } 61 | }; 62 | 63 | const_sel.onchange = function () { 64 | if (const_sel.value == 0) { 65 | //Do Nothing. No County Selected. 66 | } else { 67 | var del_no = ward_code.length; 68 | for (var i = 0; i < del_no; i++) { 69 | ward_code.pop(); 70 | ward_name.pop(); 71 | } 72 | del_no = ward_reg_code.length; 73 | for (var i = 0; i < del_no; i++) { 74 | ward_reg_code.pop(); 75 | ward_reg_name.pop(); 76 | } 77 | del_no = centre_code.length; 78 | for (var i = 0; i < del_no; i++) { 79 | centre_code.pop(); 80 | centre_name.pop(); 81 | } 82 | 83 | for (var i = 0; i < json_result.rows.length; i++) { 84 | if (json_result.rows[i][3] == const_sel.value) { 85 | if (ward_code.length == 0) { 86 | ward_code[0] = json_result.rows[i][5]; 87 | ward_name[0] = json_result.rows[i][6]; 88 | ward_reg_code[0] = json_result.rows[i][7]; 89 | ward_reg_name[0] = json_result.rows[i][8]; 90 | centre_code[0] = json_result.rows[i][0]; 91 | centre_name[0] = json_result.rows[i][9]; 92 | } else { 93 | var ward_already = 0; 94 | for (var c = 0; c < ward_code.length; c++) { 95 | if (ward_code[c] == json_result.rows[i][5]) { 96 | ward_already = 1; 97 | } 98 | } 99 | if (ward_already == 0) { 100 | ward_code[ward_code.length] = json_result.rows[i][5]; 101 | ward_name[ward_code.length - 1] = json_result.rows[i][6]; 102 | } 103 | 104 | if (json_result.rows[i][5] == ward_code[0]) { 105 | var ward_reg_already = 0; 106 | for (var c = 0; c < ward_reg_code.length; c++) { 107 | if (ward_reg_code[c] == json_result.rows[i][7]) { 108 | ward_reg_already = 1; 109 | } 110 | } 111 | if (ward_reg_already == 0) { 112 | ward_reg_code[ward_reg_code.length] = json_result.rows[i][7]; 113 | ward_reg_name[ward_reg_code.length - 1] = json_result.rows[i][8]; 114 | } 115 | 116 | centre_code[centre_code.length] = json_result.rows[i][0]; 117 | centre_name[centre_code.length - 1] = json_result.rows[i][9]; 118 | } 119 | } 120 | } 121 | } 122 | 123 | ward_sel.innerHTML = ""; 124 | for (var i = 0; i < ward_code.length; i++) { 125 | ward_sel.innerHTML += ""; 126 | } 127 | 128 | $("#reg-centres").html(""); 129 | for (var i = 0; i < ward_reg_code.length; i++) { 130 | $("#reg-centres").html($("#reg-centres").html() + 131 | "

" + toTitleCase(ward_reg_name[i]) + "

"); 132 | } 133 | $("#other-centres").html(""); 134 | for (var i = 0; i < centre_code.length; i++) { 135 | $("#other-centres").html($("#other-centres").html() + 136 | "

" + toTitleCase(centre_name[i]) + "

"); 137 | } 138 | 139 | header_name.innerHTML = unescape(toTitleCase(escape(ward_name[0]))) + " Ward"; 140 | } 141 | }; 142 | 143 | ward_sel.onchange = function () { 144 | if (const_sel.value == 0) { 145 | //Do Nothing. No County Selected. 146 | } else { 147 | var del_no = ward_reg_code.length; 148 | for (var i = 0; i < del_no; i++) { 149 | ward_reg_code.pop(); 150 | ward_reg_name.pop(); 151 | } 152 | del_no = centre_code.length; 153 | for (var i = 0; i < del_no; i++) { 154 | centre_code.pop(); 155 | centre_name.pop(); 156 | } 157 | 158 | for (var i = 0; i < json_result.rows.length; i++) { 159 | if (json_result.rows[i][5] == ward_sel.value) { 160 | var ward_reg_already = 0; 161 | for (var c = 0; c < ward_reg_code.length; c++) { 162 | if (ward_reg_code[c] == json_result.rows[i][7]) { 163 | ward_reg_already = 1; 164 | } 165 | } 166 | if (ward_reg_already == 0) { 167 | ward_reg_code[ward_reg_code.length] = json_result.rows[i][7]; 168 | ward_reg_name[ward_reg_code.length - 1] = json_result.rows[i][8]; 169 | } 170 | 171 | centre_code[centre_code.length] = json_result.rows[i][0]; 172 | centre_name[centre_code.length - 1] = json_result.rows[i][9]; 173 | } 174 | } 175 | 176 | $("#reg-centres").html(""); 177 | for (var i = 0; i < ward_reg_code.length; i++) { 178 | $("#reg-centres").html($("#reg-centres").html() + 179 | "

" + toTitleCase(ward_reg_name[i]) + "

"); 180 | } 181 | $("#other-centres").html(""); 182 | for (var i = 0; i < centre_code.length; i++) { 183 | $("#other-centres").html($("#other-centres").html() + 184 | "

" + toTitleCase(centre_name[i]) + "

"); 185 | } 186 | 187 | header_name.innerHTML = unescape(toTitleCase(escape(ward_sel.options[ward_sel.selectedIndex].text))) + " Ward"; 188 | } 189 | }; 190 | 191 | 192 | // Fusion Table Script 193 | 194 | function run_get_centres(table_id) { 195 | var xmlhttp; 196 | if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 197 | xmlhttp = new XMLHttpRequest(); 198 | } else { // code for IE6, IE5 199 | xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 200 | } 201 | 202 | xmlhttp.onreadystatechange = function () { 203 | if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 204 | json_result = jQuery.parseJSON(xmlhttp.responseText); 205 | 206 | // Remove all the options from array 207 | var del_no = const_code.length; 208 | for (var i = 0; i < del_no; i++) { 209 | const_code.pop(); 210 | const_name.pop(); 211 | } 212 | del_no = ward_code.length; 213 | for (var i = 0; i < del_no; i++) { 214 | ward_code.pop(); 215 | ward_name.pop(); 216 | } 217 | del_no = ward_reg_code.length; 218 | for (var i = 0; i < del_no; i++) { 219 | ward_reg_code.pop(); 220 | ward_reg_name.pop(); 221 | } 222 | del_no = centre_code.length; 223 | for (var i = 0; i < del_no; i++) { 224 | centre_code.pop(); 225 | centre_name.pop(); 226 | } 227 | 228 | // Recurse all rows 229 | for (var i = 0; i < json_result.rows.length; i++) { 230 | // Check if first row 231 | if (i == 0) { 232 | const_code[0] = json_result.rows[0][3]; 233 | const_name[0] = json_result.rows[0][4]; 234 | ward_code[0] = json_result.rows[0][5]; 235 | ward_name[0] = json_result.rows[0][6]; 236 | ward_reg_code[0] = json_result.rows[0][7]; 237 | ward_reg_name[0] = json_result.rows[0][8]; 238 | centre_code[0] = json_result.rows[i][0]; 239 | centre_name[0] = json_result.rows[i][9]; 240 | // If not first row 241 | } else { 242 | var const_already = 0; 243 | // Recurse for all const_code set 244 | for (var c = 0; c < const_code.length; c++) { 245 | // If constituency already exists 246 | if (const_code[c] == json_result.rows[i][3]) { 247 | const_already = 1; 248 | } 249 | } 250 | // If constituency not set, set 251 | if (const_already == 0) { 252 | const_code[const_code.length] = json_result.rows[i][3]; 253 | const_name[const_code.length - 1] = json_result.rows[i][4]; 254 | } 255 | 256 | // Set data for only the selected constituency 257 | if (json_result.rows[i][3] == const_code[0]) { 258 | var ward_already = 0; 259 | for (var c = 0; c < ward_code.length; c++) { 260 | if (ward_code[c] == json_result.rows[i][5]) { 261 | ward_already = 1; 262 | } 263 | } 264 | if (ward_already == 0) { 265 | ward_code[ward_code.length] = json_result.rows[i][5]; 266 | ward_name[ward_code.length - 1] = json_result.rows[i][6]; 267 | } 268 | 269 | // Set data only for the selected ward 270 | if (json_result.rows[i][5] == ward_code[0]) { 271 | 272 | var ward_reg_already = 0; 273 | for (var c = 0; c < ward_reg_code.length; c++) { 274 | if (ward_reg_code[c] == json_result.rows[i][7]) { 275 | ward_reg_already = 1; 276 | } 277 | } 278 | if (ward_reg_already == 0) { 279 | ward_reg_code[ward_reg_code.length] = json_result.rows[i][7]; 280 | ward_reg_name[ward_reg_code.length - 1] = json_result.rows[i][8]; 281 | } 282 | 283 | centre_code[centre_code.length] = json_result.rows[i][0]; 284 | centre_name[centre_code.length - 1] = json_result.rows[i][9]; 285 | } 286 | } 287 | } 288 | } 289 | 290 | 291 | const_sel.innerHTML = ""; 292 | for (var i = 0; i < const_code.length; i++) { 293 | const_sel.innerHTML += ""; 294 | } 295 | ward_sel.innerHTML = ""; 296 | for (var i = 0; i < ward_code.length; i++) { 297 | ward_sel.innerHTML += ""; 298 | } 299 | 300 | $("#reg-centres").html(""); 301 | for (var i = 0; i < ward_reg_code.length; i++) { 302 | $("#reg-centres").html($("#reg-centres").html() + 303 | "

" + toTitleCase(ward_reg_name[i]) + "

"); 304 | } 305 | 306 | header_name.innerHTML = unescape(toTitleCase(escape(ward_name[0]))) + " Ward"; 307 | 308 | } 309 | }; 310 | xmlhttp.open("GET", get_url + sql_1 + table_id + sql_2 + api_key, true); 311 | xmlhttp.send(); 312 | } 313 | 314 | 315 | // On Window load 316 | 317 | window.onload = function () { 318 | 319 | }; 320 | 321 | 322 | // Other Functions 323 | 324 | function toTitleCase(str) { 325 | return str.replace(/\w\S*/g, function (txt) { 326 | return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); 327 | }); 328 | } 329 | 330 | 331 | function goToByScroll(id) { 332 | // Remove "link" from the ID 333 | id = id.replace("link", ""); 334 | // Scroll 335 | $('html,body').animate({ 336 | scrollTop: $('a[name="' + id + '"]').offset().top 337 | }, 338 | 'slow'); 339 | } 340 | 341 | $("#jumbotron > a").click(function (e) { 342 | // Prevent a page reload when a link is pressed 343 | e.preventDefault(); 344 | // Call the scroll function 345 | goToByScroll($(this).attr("id")); 346 | }); 347 | -------------------------------------------------------------------------------- /js/vendor/modernizr-2.6.2.min.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load 3 | */ 4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | {description} 294 | Copyright (C) {year} {fullname} 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | {signature of Ty Coon}, 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.5 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} -------------------------------------------------------------------------------- /css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} 5 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | # Apache Server Configs v1.1.0 | MIT License 2 | # https://github.com/h5bp/server-configs-apache 3 | 4 | # (!) Using `.htaccess` files slows down Apache, therefore, if you have access 5 | # to the main server config file (usually called `httpd.conf`), you should add 6 | # this logic there: http://httpd.apache.org/docs/current/howto/htaccess.html. 7 | 8 | # ############################################################################## 9 | # # CROSS-ORIGIN RESOURCE SHARING (CORS) # 10 | # ############################################################################## 11 | 12 | # ------------------------------------------------------------------------------ 13 | # | Cross-domain AJAX requests | 14 | # ------------------------------------------------------------------------------ 15 | 16 | # Enable cross-origin AJAX requests. 17 | # http://code.google.com/p/html5security/wiki/CrossOriginRequestSecurity 18 | # http://enable-cors.org/ 19 | 20 | # 21 | # Header set Access-Control-Allow-Origin "*" 22 | # 23 | 24 | # ------------------------------------------------------------------------------ 25 | # | CORS-enabled images | 26 | # ------------------------------------------------------------------------------ 27 | 28 | # Send the CORS header for images when browsers request it. 29 | # https://developer.mozilla.org/en/CORS_Enabled_Image 30 | # http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html 31 | # http://hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/ 32 | 33 | 34 | 35 | 36 | SetEnvIf Origin ":" IS_CORS 37 | Header set Access-Control-Allow-Origin "*" env=IS_CORS 38 | 39 | 40 | 41 | 42 | # ------------------------------------------------------------------------------ 43 | # | Web fonts access | 44 | # ------------------------------------------------------------------------------ 45 | 46 | # Allow access from all domains for web fonts 47 | 48 | 49 | 50 | Header set Access-Control-Allow-Origin "*" 51 | 52 | 53 | 54 | 55 | # ############################################################################## 56 | # # ERRORS # 57 | # ############################################################################## 58 | 59 | # ------------------------------------------------------------------------------ 60 | # | 404 error prevention for non-existing redirected folders | 61 | # ------------------------------------------------------------------------------ 62 | 63 | # Prevent Apache from returning a 404 error for a rewrite if a directory 64 | # with the same name does not exist. 65 | # http://httpd.apache.org/docs/current/content-negotiation.html#multiviews 66 | # http://www.webmasterworld.com/apache/3808792.htm 67 | 68 | Options -MultiViews 69 | 70 | # ------------------------------------------------------------------------------ 71 | # | Custom error messages / pages | 72 | # ------------------------------------------------------------------------------ 73 | 74 | # You can customize what Apache returns to the client in case of an error (see 75 | # http://httpd.apache.org/docs/current/mod/core.html#errordocument), e.g.: 76 | 77 | ErrorDocument 404 /404.html 78 | 79 | 80 | # ############################################################################## 81 | # # INTERNET EXPLORER # 82 | # ############################################################################## 83 | 84 | # ------------------------------------------------------------------------------ 85 | # | Better website experience | 86 | # ------------------------------------------------------------------------------ 87 | 88 | # Force IE to render pages in the highest available mode in the various 89 | # cases when it may not: http://hsivonen.iki.fi/doctype/ie-mode.pdf. 90 | 91 | 92 | Header set X-UA-Compatible "IE=edge" 93 | # `mod_headers` can't match based on the content-type, however, we only 94 | # want to send this header for HTML pages and not for the other resources 95 | 96 | Header unset X-UA-Compatible 97 | 98 | 99 | 100 | # ------------------------------------------------------------------------------ 101 | # | Cookie setting from iframes | 102 | # ------------------------------------------------------------------------------ 103 | 104 | # Allow cookies to be set from iframes in IE. 105 | 106 | # 107 | # Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"" 108 | # 109 | 110 | # ------------------------------------------------------------------------------ 111 | # | Screen flicker | 112 | # ------------------------------------------------------------------------------ 113 | 114 | # Stop screen flicker in IE on CSS rollovers (this only works in 115 | # combination with the `ExpiresByType` directives for images from below). 116 | 117 | # BrowserMatch "MSIE" brokenvary=1 118 | # BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1 119 | # BrowserMatch "Opera" !brokenvary 120 | # SetEnvIf brokenvary 1 force-no-vary 121 | 122 | 123 | # ############################################################################## 124 | # # MIME TYPES AND ENCODING # 125 | # ############################################################################## 126 | 127 | # ------------------------------------------------------------------------------ 128 | # | Proper MIME types for all files | 129 | # ------------------------------------------------------------------------------ 130 | 131 | 132 | 133 | # Audio 134 | AddType audio/mp4 m4a f4a f4b 135 | AddType audio/ogg oga ogg 136 | 137 | # JavaScript 138 | # Normalize to standard type (it's sniffed in IE anyways): 139 | # http://tools.ietf.org/html/rfc4329#section-7.2 140 | AddType application/javascript js 141 | AddType application/json json 142 | 143 | # Video 144 | AddType video/mp4 mp4 m4v f4v f4p 145 | AddType video/ogg ogv 146 | AddType video/webm webm 147 | AddType video/x-flv flv 148 | 149 | # Web fonts 150 | AddType application/font-woff woff 151 | AddType application/vnd.ms-fontobject eot 152 | 153 | # Browsers usually ignore the font MIME types and sniff the content, 154 | # however, Chrome shows a warning if other MIME types are used for the 155 | # following fonts. 156 | AddType application/x-font-ttf ttc ttf 157 | AddType font/opentype otf 158 | 159 | # Make SVGZ fonts work on iPad: 160 | # https://twitter.com/FontSquirrel/status/14855840545 161 | AddType image/svg+xml svg svgz 162 | AddEncoding gzip svgz 163 | 164 | # Other 165 | AddType application/octet-stream safariextz 166 | AddType application/x-chrome-extension crx 167 | AddType application/x-opera-extension oex 168 | AddType application/x-shockwave-flash swf 169 | AddType application/x-web-app-manifest+json webapp 170 | AddType application/x-xpinstall xpi 171 | AddType application/xml atom rdf rss xml 172 | AddType image/webp webp 173 | AddType image/x-icon ico 174 | AddType text/cache-manifest appcache manifest 175 | AddType text/vtt vtt 176 | AddType text/x-component htc 177 | AddType text/x-vcard vcf 178 | 179 | 180 | 181 | # ------------------------------------------------------------------------------ 182 | # | UTF-8 encoding | 183 | # ------------------------------------------------------------------------------ 184 | 185 | # Use UTF-8 encoding for anything served as `text/html` or `text/plain`. 186 | AddDefaultCharset utf-8 187 | 188 | # Force UTF-8 for certain file formats. 189 | 190 | AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml 191 | 192 | 193 | 194 | # ############################################################################## 195 | # # URL REWRITES # 196 | # ############################################################################## 197 | 198 | # ------------------------------------------------------------------------------ 199 | # | Rewrite engine | 200 | # ------------------------------------------------------------------------------ 201 | 202 | # Turning on the rewrite engine and enabling the `FollowSymLinks` option is 203 | # necessary for the following directives to work. 204 | 205 | # If your web host doesn't allow the `FollowSymlinks` option, you may need to 206 | # comment it out and use `Options +SymLinksIfOwnerMatch` but, be aware of the 207 | # performance impact: http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks 208 | 209 | # Also, some cloud hosting services require `RewriteBase` to be set: 210 | # http://www.rackspace.com/knowledge_center/frequently-asked-question/why-is-mod-rewrite-not-working-on-my-site 211 | 212 | 213 | Options +FollowSymlinks 214 | # Options +SymLinksIfOwnerMatch 215 | RewriteEngine On 216 | # RewriteBase / 217 | 218 | 219 | # ------------------------------------------------------------------------------ 220 | # | Suppressing / Forcing the "www." at the beginning of URLs | 221 | # ------------------------------------------------------------------------------ 222 | 223 | # The same content should never be available under two different URLs especially 224 | # not with and without "www." at the beginning. This can cause SEO problems 225 | # (duplicate content), therefore, you should choose one of the alternatives and 226 | # redirect the other one. 227 | 228 | # By default option 1 (no "www.") is activated: 229 | # http://no-www.org/faq.php?q=class_b 230 | 231 | # If you'd prefer to use option 2, just comment out all the lines from option 1 232 | # and uncomment the ones from option 2. 233 | 234 | # IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME! 235 | 236 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 237 | 238 | # Option 1: rewrite www.example.com → example.com 239 | 240 | 241 | RewriteCond %{HTTPS} !=on 242 | RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 243 | RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] 244 | 245 | 246 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 247 | 248 | # Option 2: rewrite example.com → www.example.com 249 | 250 | # Be aware that the following might not be a good idea if you use "real" 251 | # subdomains for certain parts of your website. 252 | 253 | # 254 | # RewriteCond %{HTTPS} !=on 255 | # RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 256 | # RewriteCond %{HTTP_HOST} !=localhost [NC] 257 | # RewriteCond %{HTTP_HOST} !=127.0.0.1 258 | # RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 259 | # 260 | 261 | 262 | # ############################################################################## 263 | # # SECURITY # 264 | # ############################################################################## 265 | 266 | # ------------------------------------------------------------------------------ 267 | # | Content Security Policy (CSP) | 268 | # ------------------------------------------------------------------------------ 269 | 270 | # You can mitigate the risk of cross-site scripting and other content-injection 271 | # attacks by setting a Content Security Policy which whitelists trusted sources 272 | # of content for your site. 273 | 274 | # The example header below allows ONLY scripts that are loaded from the current 275 | # site's origin (no inline scripts, no CDN, etc). This almost certainly won't 276 | # work as-is for your site! 277 | 278 | # To get all the details you'll need to craft a reasonable policy for your site, 279 | # read: http://html5rocks.com/en/tutorials/security/content-security-policy (or 280 | # see the specification: http://w3.org/TR/CSP). 281 | 282 | # 283 | # Header set Content-Security-Policy "script-src 'self'; object-src 'self'" 284 | # 285 | # Header unset Content-Security-Policy 286 | # 287 | # 288 | 289 | # ------------------------------------------------------------------------------ 290 | # | File access | 291 | # ------------------------------------------------------------------------------ 292 | 293 | # Block access to directories without a default document. 294 | # Usually you should leave this uncommented because you shouldn't allow anyone 295 | # to surf through every directory on your server (which may includes rather 296 | # private places like the CMS's directories). 297 | 298 | 299 | Options -Indexes 300 | 301 | 302 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 303 | 304 | # Block access to hidden files and directories. 305 | # This includes directories used by version control systems such as Git and SVN. 306 | 307 | 308 | RewriteCond %{SCRIPT_FILENAME} -d [OR] 309 | RewriteCond %{SCRIPT_FILENAME} -f 310 | RewriteRule "(^|/)\." - [F] 311 | 312 | 313 | # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 314 | 315 | # Block access to backup and source files. 316 | # These files may be left by some text editors and can pose a great security 317 | # danger when anyone has access to them. 318 | 319 | 320 | Order allow,deny 321 | Deny from all 322 | Satisfy All 323 | 324 | 325 | # ------------------------------------------------------------------------------ 326 | # | Secure Sockets Layer (SSL) | 327 | # ------------------------------------------------------------------------------ 328 | 329 | # Rewrite secure requests properly to prevent SSL certificate warnings, e.g.: 330 | # prevent `https://www.example.com` when your certificate only allows 331 | # `https://secure.example.com`. 332 | 333 | # 334 | # RewriteCond %{SERVER_PORT} !^443 335 | # RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L] 336 | # 337 | 338 | # ------------------------------------------------------------------------------ 339 | # | HTTP Strict Transport Security (HSTS) | 340 | # ------------------------------------------------------------------------------ 341 | 342 | # Force client-side SSL redirection. 343 | 344 | # If a user types "example.com" in his browser, the above rule will redirect 345 | # him to the secure version of the site. That still leaves a window of oppor- 346 | # tunity (the initial HTTP connection) for an attacker to downgrade or redirect 347 | # the request. The following header ensures that browser will ONLY connect to 348 | # your server via HTTPS, regardless of what the users type in the address bar. 349 | # http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14#section-6.1 350 | # http://www.html5rocks.com/en/tutorials/security/transport-layer-security/ 351 | 352 | # (!) Remove the `includeSubDomains` optional directive if the subdomains are 353 | # not using HTTPS. 354 | 355 | # 356 | # Header set Strict-Transport-Security "max-age=16070400; includeSubDomains" 357 | # 358 | 359 | # ------------------------------------------------------------------------------ 360 | # | Server software information | 361 | # ------------------------------------------------------------------------------ 362 | 363 | # Avoid displaying the exact Apache version number, the description of the 364 | # generic OS-type and the information about Apache's compiled-in modules. 365 | 366 | # ADD THIS DIRECTIVE IN THE `httpd.conf` AS IT WILL NOT WORK IN THE `.htaccess`! 367 | 368 | # ServerTokens Prod 369 | 370 | 371 | # ############################################################################## 372 | # # WEB PERFORMANCE # 373 | # ############################################################################## 374 | 375 | # ------------------------------------------------------------------------------ 376 | # | Compression | 377 | # ------------------------------------------------------------------------------ 378 | 379 | 380 | 381 | # Force compression for mangled headers. 382 | # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping 383 | 384 | 385 | SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding 386 | RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding 387 | 388 | 389 | 390 | # Compress all output labeled with one of the following MIME-types 391 | # (for Apache versions below 2.3.7, you don't need to enable `mod_filter` 392 | # and can remove the `` and `` lines 393 | # as `AddOutputFilterByType` is still in the core directives). 394 | 395 | AddOutputFilterByType DEFLATE application/atom+xml \ 396 | application/javascript \ 397 | application/json \ 398 | application/rss+xml \ 399 | application/vnd.ms-fontobject \ 400 | application/x-font-ttf \ 401 | application/x-web-app-manifest+json \ 402 | application/xhtml+xml \ 403 | application/xml \ 404 | font/opentype \ 405 | image/svg+xml \ 406 | image/x-icon \ 407 | text/css \ 408 | text/html \ 409 | text/plain \ 410 | text/x-component \ 411 | text/xml 412 | 413 | 414 | 415 | 416 | # ------------------------------------------------------------------------------ 417 | # | Content transformations | 418 | # ------------------------------------------------------------------------------ 419 | 420 | # Prevent some of the mobile network providers from modifying the content of 421 | # your site: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5. 422 | 423 | # 424 | # Header set Cache-Control "no-transform" 425 | # 426 | 427 | # ------------------------------------------------------------------------------ 428 | # | ETag removal | 429 | # ------------------------------------------------------------------------------ 430 | 431 | # Since we're sending far-future expires headers (see below), ETags can 432 | # be removed: http://developer.yahoo.com/performance/rules.html#etags. 433 | 434 | # `FileETag None` is not enough for every server. 435 | 436 | Header unset ETag 437 | 438 | 439 | FileETag None 440 | 441 | # ------------------------------------------------------------------------------ 442 | # | Expires headers (for better cache control) | 443 | # ------------------------------------------------------------------------------ 444 | 445 | # The following expires headers are set pretty far in the future. If you don't 446 | # control versioning with filename-based cache busting, consider lowering the 447 | # cache time for resources like CSS and JS to something like 1 week. 448 | 449 | 450 | 451 | ExpiresActive on 452 | ExpiresDefault "access plus 1 month" 453 | 454 | # CSS 455 | ExpiresByType text/css "access plus 1 year" 456 | 457 | # Data interchange 458 | ExpiresByType application/json "access plus 0 seconds" 459 | ExpiresByType application/xml "access plus 0 seconds" 460 | ExpiresByType text/xml "access plus 0 seconds" 461 | 462 | # Favicon (cannot be renamed!) 463 | ExpiresByType image/x-icon "access plus 1 week" 464 | 465 | # HTML components (HTCs) 466 | ExpiresByType text/x-component "access plus 1 month" 467 | 468 | # HTML 469 | ExpiresByType text/html "access plus 0 seconds" 470 | 471 | # JavaScript 472 | ExpiresByType application/javascript "access plus 1 year" 473 | 474 | # Manifest files 475 | ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds" 476 | ExpiresByType text/cache-manifest "access plus 0 seconds" 477 | 478 | # Media 479 | ExpiresByType audio/ogg "access plus 1 month" 480 | ExpiresByType image/gif "access plus 1 month" 481 | ExpiresByType image/jpeg "access plus 1 month" 482 | ExpiresByType image/png "access plus 1 month" 483 | ExpiresByType video/mp4 "access plus 1 month" 484 | ExpiresByType video/ogg "access plus 1 month" 485 | ExpiresByType video/webm "access plus 1 month" 486 | 487 | # Web feeds 488 | ExpiresByType application/atom+xml "access plus 1 hour" 489 | ExpiresByType application/rss+xml "access plus 1 hour" 490 | 491 | # Web fonts 492 | ExpiresByType application/font-woff "access plus 1 month" 493 | ExpiresByType application/vnd.ms-fontobject "access plus 1 month" 494 | ExpiresByType application/x-font-ttf "access plus 1 month" 495 | ExpiresByType font/opentype "access plus 1 month" 496 | ExpiresByType image/svg+xml "access plus 1 month" 497 | 498 | 499 | 500 | # ------------------------------------------------------------------------------ 501 | # | Filename-based cache busting | 502 | # ------------------------------------------------------------------------------ 503 | 504 | # If you're not using a build process to manage your filename version revving, 505 | # you might want to consider enabling the following directives to route all 506 | # requests such as `/css/style.12345.css` to `/css/style.css`. 507 | 508 | # To understand why this is important and a better idea than `*.css?v231`, read: 509 | # http://stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring 510 | 511 | # 512 | # RewriteCond %{REQUEST_FILENAME} !-f 513 | # RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L] 514 | # 515 | 516 | # ------------------------------------------------------------------------------ 517 | # | File concatenation | 518 | # ------------------------------------------------------------------------------ 519 | 520 | # Allow concatenation from within specific CSS and JS files, e.g.: 521 | # Inside of `script.combined.js` you could have 522 | # 523 | # 524 | # and they would be included into this single file. 525 | 526 | # 527 | # 528 | # Options +Includes 529 | # AddOutputFilterByType INCLUDES application/javascript application/json 530 | # SetOutputFilter INCLUDES 531 | # 532 | # 533 | # Options +Includes 534 | # AddOutputFilterByType INCLUDES text/css 535 | # SetOutputFilter INCLUDES 536 | # 537 | # 538 | 539 | # ------------------------------------------------------------------------------ 540 | # | Persistent connections | 541 | # ------------------------------------------------------------------------------ 542 | 543 | # Allow multiple requests to be sent over the same TCP connection: 544 | # http://httpd.apache.org/docs/current/en/mod/core.html#keepalive. 545 | 546 | # Enable if you serve a lot of static content but, be aware of the 547 | # possible disadvantages! 548 | 549 | # 550 | # Header set Connection Keep-Alive 551 | # 552 | --------------------------------------------------------------------------------