Browse Source

All site template

Added all site template (index.html)
worked out and cleaned up the workshop page that has been renamed
hostaworkshop.html
Federico Bonelli 2 years ago
parent
commit
47a294fae4
25 changed files with 5361 additions and 387 deletions
  1. 237 0
      404.html
  2. 322 0
      about.html
  3. 912 0
      assets/js/jqBootstrapValidation.js
  4. 4 0
      assets/js/jquery.js
  5. 26 0
      bin/contact_me.php
  6. 291 0
      blog-home-1.html
  7. 246 0
      blog-home-2.html
  8. 306 0
      blog-post.html
  9. 93 0
      bootstrap/css/modern-business.css
  10. 0 134
      carousel.css
  11. 0 199
      carousel.html
  12. 243 0
      contact.html
  13. 0 0
      hostaworkshop.css
  14. 41 53
      offcanvas.html
  15. 311 0
      index.html
  16. 1 1
      pinegrow.json
  17. 281 0
      portfolio-1-col.html
  18. 261 0
      portfolio-2-col.html
  19. 287 0
      portfolio-3-col.html
  20. 267 0
      portfolio-4-col.html
  21. 244 0
      portfolio-item.html
  22. 225 0
      pricing.html
  23. 403 0
      services.html
  24. 192 0
      toolkits.html
  25. 168 0
      whitepaper.html

+ 237 - 0
404.html

@@ -0,0 +1,237 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+
4
+<head>
5
+
6
+    <meta charset="utf-8">
7
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+    <meta name="viewport" content="width=device-width, initial-scale=1">
9
+    <meta name="description" content="">
10
+    <meta name="author" content="">
11
+
12
+    <title>Modern Business - Start Bootstrap Template</title>
13
+
14
+    <!-- Bootstrap Core CSS -->
15
+    <link href="css/bootstrap.min.css" rel="stylesheet">
16
+
17
+    <!-- Custom CSS -->
18
+    <link href="css/modern-business.css" rel="stylesheet">
19
+
20
+    <!-- Custom Fonts -->
21
+    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
22
+
23
+    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
24
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
25
+    <!--[if lt IE 9]>
26
+        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
27
+        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
28
+    <![endif]-->
29
+
30
+</head>
31
+
32
+<body>
33
+
34
+    <!-- Navigation -->
35
+    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+        <div class="container">
37
+            <!-- Brand and toggle get grouped for better mobile display -->
38
+            <div class="navbar-header">
39
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
40
+                    <span class="sr-only">Toggle navigation</span>
41
+                    <span class="icon-bar"></span>
42
+                    <span class="icon-bar"></span>
43
+                    <span class="icon-bar"></span>
44
+                </button>
45
+                <a class="navbar-brand" href="index.html">Start Bootstrap</a>
46
+            </div>
47
+            <!-- Collect the nav links, forms, and other content for toggling -->
48
+            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
49
+                <ul class="nav navbar-nav navbar-right">
50
+                    <li>
51
+                        <a href="about.html">About</a>
52
+                    </li>
53
+                    <li>
54
+                        <a href="services.html">Services</a>
55
+                    </li>
56
+                    <li>
57
+                        <a href="contact.html">Contact</a>
58
+                    </li>
59
+                    <li class="dropdown">
60
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Portfolio <b class="caret"></b></a>
61
+                        <ul class="dropdown-menu">
62
+                            <li>
63
+                                <a href="portfolio-1-col.html">1 Column Portfolio</a>
64
+                            </li>
65
+                            <li>
66
+                                <a href="portfolio-2-col.html">2 Column Portfolio</a>
67
+                            </li>
68
+                            <li>
69
+                                <a href="portfolio-3-col.html">3 Column Portfolio</a>
70
+                            </li>
71
+                            <li>
72
+                                <a href="portfolio-4-col.html">4 Column Portfolio</a>
73
+                            </li>
74
+                            <li>
75
+                                <a href="portfolio-item.html">Single Portfolio Item</a>
76
+                            </li>
77
+                        </ul>
78
+                    </li>
79
+                    <li class="dropdown">
80
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Blog <b class="caret"></b></a>
81
+                        <ul class="dropdown-menu">
82
+                            <li>
83
+                                <a href="blog-home-1.html">Blog Home 1</a>
84
+                            </li>
85
+                            <li>
86
+                                <a href="blog-home-2.html">Blog Home 2</a>
87
+                            </li>
88
+                            <li>
89
+                                <a href="blog-post.html">Blog Post</a>
90
+                            </li>
91
+                        </ul>
92
+                    </li>
93
+                    <li class="dropdown active">
94
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Other Pages <b class="caret"></b></a>
95
+                        <ul class="dropdown-menu">
96
+                            <li>
97
+                                <a href="full-width.html">Full Width Page</a>
98
+                            </li>
99
+                            <li>
100
+                                <a href="sidebar.html">Sidebar Page</a>
101
+                            </li>
102
+                            <li>
103
+                                <a href="faq.html">FAQ</a>
104
+                            </li>
105
+                            <li class="active">
106
+                                <a href="404.html">404</a>
107
+                            </li>
108
+                            <li>
109
+                                <a href="pricing.html">Pricing Table</a>
110
+                            </li>
111
+                        </ul>
112
+                    </li>
113
+                </ul>
114
+            </div>
115
+            <!-- /.navbar-collapse -->
116
+        </div>
117
+        <!-- /.container -->
118
+    </nav>
119
+
120
+    <!-- Page Content -->
121
+    <div class="container">
122
+
123
+        <!-- Page Heading/Breadcrumbs -->
124
+        <div class="row">
125
+            <div class="col-lg-12">
126
+                <h1 class="page-header">404
127
+                    <small>Page Not Found</small>
128
+                </h1>
129
+                <ol class="breadcrumb">
130
+                    <li><a href="index.html">Home</a>
131
+                    </li>
132
+                    <li class="active">404</li>
133
+                </ol>
134
+            </div>
135
+        </div>
136
+        <!-- /.row -->
137
+
138
+        <div class="row">
139
+
140
+            <div class="col-lg-12">
141
+                <div class="jumbotron">
142
+                    <h1><span class="error-404">404</span>
143
+                    </h1>
144
+                    <p>The page you're looking for could not be found. Here are some helpful links to get you back on track:</p>
145
+                    <ul>
146
+                        <li>
147
+                            <a href="index.html">Home</a>
148
+                        </li>
149
+                        <li>
150
+                            <a href="about.html">About</a>
151
+                        </li>
152
+                        <li>
153
+                            <a href="services.html">Services</a>
154
+                        </li>
155
+                        <li>
156
+                            <a href="contact.html">Contact</a>
157
+                        </li>
158
+                        <li>
159
+                            Portfolio
160
+                            <ul>
161
+                                <li>
162
+                                    <a href="portfolio-1-col.html">1 Column Portfolio</a>
163
+                                </li>
164
+                                <li>
165
+                                    <a href="portfolio-2-col.html">2 Column Portfolio</a>
166
+                                </li>
167
+                                <li>
168
+                                    <a href="portfolio-3-col.html">3 Column Portfolio</a>
169
+                                </li>
170
+                                <li>
171
+                                    <a href="portfolio-4-col.html">4 Column Portfolio</a>
172
+                                </li>
173
+                            </ul>
174
+                        </li>
175
+                        <li>
176
+                            Blog
177
+                            <ul>
178
+                                <li>
179
+                                    <a href="blog-home-1.html">Blog Home 1</a>
180
+                                </li>
181
+                                <li>
182
+                                    <a href="blog-home-2.html">Blog Home 2</a>
183
+                                </li>
184
+                                <li>
185
+                                    <a href="blog-post.html">Blog Post</a>
186
+                                </li>
187
+                            </ul>
188
+                        </li>
189
+                        <li>
190
+                            Other Pages
191
+                            <ul>
192
+                                <li>
193
+                                    <a href="full-width-page.html">Full Width Page</a>
194
+                                </li>
195
+                                <li>
196
+                                    <a href="sidebar.html">Sidebar Page</a>
197
+                                </li>
198
+                                <li>
199
+                                    <a href="faq.html">FAQ</a>
200
+                                </li>
201
+                                <li>
202
+                                    <a href="404.html">404 Page</a>
203
+                                </li>
204
+                                <li>
205
+                                    <a href="pricing-table.html">Pricing Table</a>
206
+                                </li>
207
+                            </ul>
208
+                        </li>
209
+                    </ul>
210
+                </div>
211
+            </div>
212
+
213
+        </div>
214
+
215
+        <hr>
216
+
217
+        <!-- Footer -->
218
+        <footer>
219
+            <div class="row">
220
+                <div class="col-lg-12">
221
+                    <p>Copyright &copy; Your Website 2014</p>
222
+                </div>
223
+            </div>
224
+        </footer>
225
+
226
+    </div>
227
+    <!-- /.container -->
228
+
229
+    <!-- jQuery -->
230
+    <script src="js/jquery.js"></script>
231
+
232
+    <!-- Bootstrap Core JavaScript -->
233
+    <script src="js/bootstrap.min.js"></script>
234
+
235
+</body>
236
+
237
+</html>

+ 322 - 0
about.html

@@ -0,0 +1,322 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+
4
+<head>
5
+
6
+    <meta charset="utf-8">
7
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+    <meta name="viewport" content="width=device-width, initial-scale=1">
9
+    <meta name="description" content="">
10
+    <meta name="author" content="">
11
+
12
+    <title>Modern Business - Start Bootstrap Template</title>
13
+
14
+    <!-- Bootstrap Core CSS -->
15
+    <link href="css/bootstrap.min.css" rel="stylesheet">
16
+
17
+    <!-- Custom CSS -->
18
+    <link href="css/modern-business.css" rel="stylesheet">
19
+
20
+    <!-- Custom Fonts -->
21
+    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
22
+
23
+    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
24
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
25
+    <!--[if lt IE 9]>
26
+        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
27
+        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
28
+    <![endif]-->
29
+
30
+</head>
31
+
32
+<body>
33
+
34
+    <!-- Navigation -->
35
+    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+        <div class="container">
37
+            <!-- Brand and toggle get grouped for better mobile display -->
38
+            <div class="navbar-header">
39
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
40
+                    <span class="sr-only">Toggle navigation</span>
41
+                    <span class="icon-bar"></span>
42
+                    <span class="icon-bar"></span>
43
+                    <span class="icon-bar"></span>
44
+                </button>
45
+                <a class="navbar-brand" href="index.html">Start Bootstrap</a>
46
+            </div>
47
+            <!-- Collect the nav links, forms, and other content for toggling -->
48
+            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
49
+                <ul class="nav navbar-nav navbar-right">
50
+                    <li class="active">
51
+                        <a href="about.html">About</a>
52
+                    </li>
53
+                    <li>
54
+                        <a href="services.html">Services</a>
55
+                    </li>
56
+                    <li>
57
+                        <a href="contact.html">Contact</a>
58
+                    </li>
59
+                    <li class="dropdown">
60
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Portfolio <b class="caret"></b></a>
61
+                        <ul class="dropdown-menu">
62
+                            <li>
63
+                                <a href="portfolio-1-col.html">1 Column Portfolio</a>
64
+                            </li>
65
+                            <li>
66
+                                <a href="portfolio-2-col.html">2 Column Portfolio</a>
67
+                            </li>
68
+                            <li>
69
+                                <a href="portfolio-3-col.html">3 Column Portfolio</a>
70
+                            </li>
71
+                            <li>
72
+                                <a href="portfolio-4-col.html">4 Column Portfolio</a>
73
+                            </li>
74
+                            <li>
75
+                                <a href="portfolio-item.html">Single Portfolio Item</a>
76
+                            </li>
77
+                        </ul>
78
+                    </li>
79
+                    <li class="dropdown">
80
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Blog <b class="caret"></b></a>
81
+                        <ul class="dropdown-menu">
82
+                            <li>
83
+                                <a href="blog-home-1.html">Blog Home 1</a>
84
+                            </li>
85
+                            <li>
86
+                                <a href="blog-home-2.html">Blog Home 2</a>
87
+                            </li>
88
+                            <li>
89
+                                <a href="blog-post.html">Blog Post</a>
90
+                            </li>
91
+                        </ul>
92
+                    </li>
93
+                    <li class="dropdown">
94
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Other Pages <b class="caret"></b></a>
95
+                        <ul class="dropdown-menu">
96
+                            <li>
97
+                                <a href="full-width.html">Full Width Page</a>
98
+                            </li>
99
+                            <li>
100
+                                <a href="sidebar.html">Sidebar Page</a>
101
+                            </li>
102
+                            <li>
103
+                                <a href="faq.html">FAQ</a>
104
+                            </li>
105
+                            <li>
106
+                                <a href="404.html">404</a>
107
+                            </li>
108
+                            <li>
109
+                                <a href="pricing.html">Pricing Table</a>
110
+                            </li>
111
+                        </ul>
112
+                    </li>
113
+                </ul>
114
+            </div>
115
+            <!-- /.navbar-collapse -->
116
+        </div>
117
+        <!-- /.container -->
118
+    </nav>
119
+
120
+    <!-- Page Content -->
121
+    <div class="container">
122
+
123
+        <!-- Page Heading/Breadcrumbs -->
124
+        <div class="row">
125
+            <div class="col-lg-12">
126
+                <h1 class="page-header">About
127
+                    <small>Subheading</small>
128
+                </h1>
129
+                <ol class="breadcrumb">
130
+                    <li><a href="index.html">Home</a>
131
+                    </li>
132
+                    <li class="active">About</li>
133
+                </ol>
134
+            </div>
135
+        </div>
136
+        <!-- /.row -->
137
+
138
+        <!-- Intro Content -->
139
+        <div class="row">
140
+            <div class="col-md-6">
141
+                <img class="img-responsive" src="http://placehold.it/750x450" alt="">
142
+            </div>
143
+            <div class="col-md-6">
144
+                <h2>About Modern Business</h2>
145
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed voluptate nihil eum consectetur similique? Consectetur, quod, incidunt, harum nisi dolores delectus reprehenderit voluptatem perferendis dicta dolorem non blanditiis ex fugiat.</p>
146
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Saepe, magni, aperiam vitae illum voluptatum aut sequi impedit non velit ab ea pariatur sint quidem corporis eveniet. Odit, temporibus reprehenderit dolorum!</p>
147
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et, consequuntur, modi mollitia corporis ipsa voluptate corrupti eum ratione ex ea praesentium quibusdam? Aut, in eum facere corrupti necessitatibus perspiciatis quis?</p>
148
+            </div>
149
+        </div>
150
+        <!-- /.row -->
151
+
152
+        <!-- Team Members -->
153
+        <div class="row">
154
+            <div class="col-lg-12">
155
+                <h2 class="page-header">Our Team</h2>
156
+            </div>
157
+            <div class="col-md-4 text-center">
158
+                <div class="thumbnail">
159
+                    <img class="img-responsive" src="http://placehold.it/750x450" alt="">
160
+                    <div class="caption">
161
+                        <h3>John Smith<br>
162
+                            <small>Job Title</small>
163
+                        </h3>
164
+                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste saepe et quisquam nesciunt maxime.</p>
165
+                        <ul class="list-inline">
166
+                            <li><a href="#"><i class="fa fa-2x fa-facebook-square"></i></a>
167
+                            </li>
168
+                            <li><a href="#"><i class="fa fa-2x fa-linkedin-square"></i></a>
169
+                            </li>
170
+                            <li><a href="#"><i class="fa fa-2x fa-twitter-square"></i></a>
171
+                            </li>
172
+                        </ul>
173
+                    </div>
174
+                </div>
175
+            </div>
176
+            <div class="col-md-4 text-center">
177
+                <div class="thumbnail">
178
+                    <img class="img-responsive" src="http://placehold.it/750x450" alt="">
179
+                    <div class="caption">
180
+                        <h3>John Smith<br>
181
+                            <small>Job Title</small>
182
+                        </h3>
183
+                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste saepe et quisquam nesciunt maxime.</p>
184
+                        <ul class="list-inline">
185
+                            <li><a href="#"><i class="fa fa-2x fa-facebook-square"></i></a>
186
+                            </li>
187
+                            <li><a href="#"><i class="fa fa-2x fa-linkedin-square"></i></a>
188
+                            </li>
189
+                            <li><a href="#"><i class="fa fa-2x fa-twitter-square"></i></a>
190
+                            </li>
191
+                        </ul>
192
+                    </div>
193
+                </div>
194
+            </div>
195
+            <div class="col-md-4 text-center">
196
+                <div class="thumbnail">
197
+                    <img class="img-responsive" src="http://placehold.it/750x450" alt="">
198
+                    <div class="caption">
199
+                        <h3>John Smith<br>
200
+                            <small>Job Title</small>
201
+                        </h3>
202
+                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste saepe et quisquam nesciunt maxime.</p>
203
+                        <ul class="list-inline">
204
+                            <li><a href="#"><i class="fa fa-2x fa-facebook-square"></i></a>
205
+                            </li>
206
+                            <li><a href="#"><i class="fa fa-2x fa-linkedin-square"></i></a>
207
+                            </li>
208
+                            <li><a href="#"><i class="fa fa-2x fa-twitter-square"></i></a>
209
+                            </li>
210
+                        </ul>
211
+                    </div>
212
+                </div>
213
+            </div>
214
+            <div class="col-md-4 text-center">
215
+                <div class="thumbnail">
216
+                    <img class="img-responsive" src="http://placehold.it/750x450" alt="">
217
+                    <div class="caption">
218
+                        <h3>John Smith<br>
219
+                            <small>Job Title</small>
220
+                        </h3>
221
+                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste saepe et quisquam nesciunt maxime.</p>
222
+                        <ul class="list-inline">
223
+                            <li><a href="#"><i class="fa fa-2x fa-facebook-square"></i></a>
224
+                            </li>
225
+                            <li><a href="#"><i class="fa fa-2x fa-linkedin-square"></i></a>
226
+                            </li>
227
+                            <li><a href="#"><i class="fa fa-2x fa-twitter-square"></i></a>
228
+                            </li>
229
+                        </ul>
230
+                    </div>
231
+                </div>
232
+            </div>
233
+            <div class="col-md-4 text-center">
234
+                <div class="thumbnail">
235
+                    <img class="img-responsive" src="http://placehold.it/750x450" alt="">
236
+                    <div class="caption">
237
+                        <h3>John Smith<br>
238
+                            <small>Job Title</small>
239
+                        </h3>
240
+                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste saepe et quisquam nesciunt maxime.</p>
241
+                        <ul class="list-inline">
242
+                            <li><a href="#"><i class="fa fa-2x fa-facebook-square"></i></a>
243
+                            </li>
244
+                            <li><a href="#"><i class="fa fa-2x fa-linkedin-square"></i></a>
245
+                            </li>
246
+                            <li><a href="#"><i class="fa fa-2x fa-twitter-square"></i></a>
247
+                            </li>
248
+                        </ul>
249
+                    </div>
250
+                </div>
251
+            </div>
252
+            <div class="col-md-4 text-center">
253
+                <div class="thumbnail">
254
+                    <img class="img-responsive" src="http://placehold.it/750x450" alt="">
255
+                    <div class="caption">
256
+                        <h3>John Smith<br>
257
+                            <small>Job Title</small>
258
+                        </h3>
259
+                        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iste saepe et quisquam nesciunt maxime.</p>
260
+                        <ul class="list-inline">
261
+                            <li><a href="#"><i class="fa fa-2x fa-facebook-square"></i></a>
262
+                            </li>
263
+                            <li><a href="#"><i class="fa fa-2x fa-linkedin-square"></i></a>
264
+                            </li>
265
+                            <li><a href="#"><i class="fa fa-2x fa-twitter-square"></i></a>
266
+                            </li>
267
+                        </ul>
268
+                    </div>
269
+                </div>
270
+            </div>
271
+        </div>
272
+        <!-- /.row -->
273
+
274
+        <!-- Our Customers -->
275
+        <div class="row">
276
+            <div class="col-lg-12">
277
+                <h2 class="page-header">Our Customers</h2>
278
+            </div>
279
+            <div class="col-md-2 col-sm-4 col-xs-6">
280
+                <img class="img-responsive customer-img" src="http://placehold.it/500x300" alt="">
281
+            </div>
282
+            <div class="col-md-2 col-sm-4 col-xs-6">
283
+                <img class="img-responsive customer-img" src="http://placehold.it/500x300" alt="">
284
+            </div>
285
+            <div class="col-md-2 col-sm-4 col-xs-6">
286
+                <img class="img-responsive customer-img" src="http://placehold.it/500x300" alt="">
287
+            </div>
288
+            <div class="col-md-2 col-sm-4 col-xs-6">
289
+                <img class="img-responsive customer-img" src="http://placehold.it/500x300" alt="">
290
+            </div>
291
+            <div class="col-md-2 col-sm-4 col-xs-6">
292
+                <img class="img-responsive customer-img" src="http://placehold.it/500x300" alt="">
293
+            </div>
294
+            <div class="col-md-2 col-sm-4 col-xs-6">
295
+                <img class="img-responsive customer-img" src="http://placehold.it/500x300" alt="">
296
+            </div>
297
+        </div>
298
+        <!-- /.row -->
299
+
300
+        <hr>
301
+
302
+        <!-- Footer -->
303
+        <footer>
304
+            <div class="row">
305
+                <div class="col-lg-12">
306
+                    <p>Copyright &copy; Your Website 2014</p>
307
+                </div>
308
+            </div>
309
+        </footer>
310
+
311
+    </div>
312
+    <!-- /.container -->
313
+
314
+    <!-- jQuery -->
315
+    <script src="js/jquery.js"></script>
316
+
317
+    <!-- Bootstrap Core JavaScript -->
318
+    <script src="js/bootstrap.min.js"></script>
319
+
320
+</body>
321
+
322
+</html>

+ 912 - 0
assets/js/jqBootstrapValidation.js

@@ -0,0 +1,912 @@
1
+/* jqBootstrapValidation
2
+ * A plugin for automating validation on Twitter Bootstrap formatted forms.
3
+ *
4
+ * v1.3.6
5
+ *
6
+ * License: MIT <http://opensource.org/licenses/mit-license.php> - see LICENSE file
7
+ *
8
+ * http://ReactiveRaven.github.com/jqBootstrapValidation/
9
+ */
10
+
11
+(function( $ ){
12
+
13
+	var createdElements = [];
14
+
15
+	var defaults = {
16
+		options: {
17
+			prependExistingHelpBlock: false,
18
+			sniffHtml: true, // sniff for 'required', 'maxlength', etc
19
+			preventSubmit: true, // stop the form submit event from firing if validation fails
20
+			submitError: false, // function called if there is an error when trying to submit
21
+			submitSuccess: false, // function called just before a successful submit event is sent to the server
22
+            semanticallyStrict: false, // set to true to tidy up generated HTML output
23
+			autoAdd: {
24
+				helpBlocks: true
25
+			},
26
+            filter: function () {
27
+                // return $(this).is(":visible"); // only validate elements you can see
28
+                return true; // validate everything
29
+            }
30
+		},
31
+    methods: {
32
+      init : function( options ) {
33
+
34
+        var settings = $.extend(true, {}, defaults);
35
+
36
+        settings.options = $.extend(true, settings.options, options);
37
+
38
+        var $siblingElements = this;
39
+
40
+        var uniqueForms = $.unique(
41
+          $siblingElements.map( function () {
42
+            return $(this).parents("form")[0];
43
+          }).toArray()
44
+        );
45
+
46
+        $(uniqueForms).bind("submit", function (e) {
47
+          var $form = $(this);
48
+          var warningsFound = 0;
49
+          var $inputs = $form.find("input,textarea,select").not("[type=submit],[type=image]").filter(settings.options.filter);
50
+          $inputs.trigger("submit.validation").trigger("validationLostFocus.validation");
51
+
52
+          $inputs.each(function (i, el) {
53
+            var $this = $(el),
54
+              $controlGroup = $this.parents(".control-group").first();
55
+            if (
56
+              $controlGroup.hasClass("has-warning")
57
+            ) {
58
+              $controlGroup.removeClass("has-warning").addClass("has-error");
59
+              warningsFound++;
60
+            }
61
+          });
62
+
63
+          $inputs.trigger("validationLostFocus.validation");
64
+
65
+          if (warningsFound) {
66
+            if (settings.options.preventSubmit) {
67
+              e.preventDefault();
68
+            }
69
+            $form.addClass("has-error");
70
+            if ($.isFunction(settings.options.submitError)) {
71
+              settings.options.submitError($form, e, $inputs.jqBootstrapValidation("collectErrors", true));
72
+            }
73
+          } else {
74
+            $form.removeClass("has-error");
75
+            if ($.isFunction(settings.options.submitSuccess)) {
76
+              settings.options.submitSuccess($form, e);
77
+            }
78
+          }
79
+        });
80
+
81
+        return this.each(function(){
82
+
83
+          // Get references to everything we're interested in
84
+          var $this = $(this),
85
+            $controlGroup = $this.parents(".control-group").first(),
86
+            $helpBlock = $controlGroup.find(".help-block").first(),
87
+            $form = $this.parents("form").first(),
88
+            validatorNames = [];
89
+
90
+          // create message container if not exists
91
+          if (!$helpBlock.length && settings.options.autoAdd && settings.options.autoAdd.helpBlocks) {
92
+              $helpBlock = $('<div class="help-block" />');
93
+              $controlGroup.find('.controls').append($helpBlock);
94
+							createdElements.push($helpBlock[0]);
95
+          }
96
+
97
+          // =============================================================
98
+          //                                     SNIFF HTML FOR VALIDATORS
99
+          // =============================================================
100
+
101
+          // *snort sniff snuffle*
102
+
103
+          if (settings.options.sniffHtml) {
104
+            var message = "";
105
+            // ---------------------------------------------------------
106
+            //                                                   PATTERN
107
+            // ---------------------------------------------------------
108
+            if ($this.attr("pattern") !== undefined) {
109
+              message = "Not in the expected format<!-- data-validation-pattern-message to override -->";
110
+              if ($this.data("validationPatternMessage")) {
111
+                message = $this.data("validationPatternMessage");
112
+              }
113
+              $this.data("validationPatternMessage", message);
114
+              $this.data("validationPatternRegex", $this.attr("pattern"));
115
+            }
116
+            // ---------------------------------------------------------
117
+            //                                                       MAX
118
+            // ---------------------------------------------------------
119
+            if ($this.attr("max") !== undefined || $this.attr("aria-valuemax") !== undefined) {
120
+              var max = ($this.attr("max") !== undefined ? $this.attr("max") : $this.attr("aria-valuemax"));
121
+              message = "Too high: Maximum of '" + max + "'<!-- data-validation-max-message to override -->";
122
+              if ($this.data("validationMaxMessage")) {
123
+                message = $this.data("validationMaxMessage");
124
+              }
125
+              $this.data("validationMaxMessage", message);
126
+              $this.data("validationMaxMax", max);
127
+            }
128
+            // ---------------------------------------------------------
129
+            //                                                       MIN
130
+            // ---------------------------------------------------------
131
+            if ($this.attr("min") !== undefined || $this.attr("aria-valuemin") !== undefined) {
132
+              var min = ($this.attr("min") !== undefined ? $this.attr("min") : $this.attr("aria-valuemin"));
133
+              message = "Too low: Minimum of '" + min + "'<!-- data-validation-min-message to override -->";
134
+              if ($this.data("validationMinMessage")) {
135
+                message = $this.data("validationMinMessage");
136
+              }
137
+              $this.data("validationMinMessage", message);
138
+              $this.data("validationMinMin", min);
139
+            }
140
+            // ---------------------------------------------------------
141
+            //                                                 MAXLENGTH
142
+            // ---------------------------------------------------------
143
+            if ($this.attr("maxlength") !== undefined) {
144
+              message = "Too long: Maximum of '" + $this.attr("maxlength") + "' characters<!-- data-validation-maxlength-message to override -->";
145
+              if ($this.data("validationMaxlengthMessage")) {
146
+                message = $this.data("validationMaxlengthMessage");
147
+              }
148
+              $this.data("validationMaxlengthMessage", message);
149
+              $this.data("validationMaxlengthMaxlength", $this.attr("maxlength"));
150
+            }
151
+            // ---------------------------------------------------------
152
+            //                                                 MINLENGTH
153
+            // ---------------------------------------------------------
154
+            if ($this.attr("minlength") !== undefined) {
155
+              message = "Too short: Minimum of '" + $this.attr("minlength") + "' characters<!-- data-validation-minlength-message to override -->";
156
+              if ($this.data("validationMinlengthMessage")) {
157
+                message = $this.data("validationMinlengthMessage");
158
+              }
159
+              $this.data("validationMinlengthMessage", message);
160
+              $this.data("validationMinlengthMinlength", $this.attr("minlength"));
161
+            }
162
+            // ---------------------------------------------------------
163
+            //                                                  REQUIRED
164
+            // ---------------------------------------------------------
165
+            if ($this.attr("required") !== undefined || $this.attr("aria-required") !== undefined) {
166
+              message = settings.builtInValidators.required.message;
167
+              if ($this.data("validationRequiredMessage")) {
168
+                message = $this.data("validationRequiredMessage");
169
+              }
170
+              $this.data("validationRequiredMessage", message);
171
+            }
172
+            // ---------------------------------------------------------
173
+            //                                                    NUMBER
174
+            // ---------------------------------------------------------
175
+            if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "number") {
176
+              message = settings.builtInValidators.number.message;
177
+              if ($this.data("validationNumberMessage")) {
178
+                message = $this.data("validationNumberMessage");
179
+              }
180
+              $this.data("validationNumberMessage", message);
181
+            }
182
+            // ---------------------------------------------------------
183
+            //                                                     EMAIL
184
+            // ---------------------------------------------------------
185
+            if ($this.attr("type") !== undefined && $this.attr("type").toLowerCase() === "email") {
186
+              message = "Not a valid email address<!-- data-validator-validemail-message to override -->";
187
+              if ($this.data("validationValidemailMessage")) {
188
+                message = $this.data("validationValidemailMessage");
189
+              } else if ($this.data("validationEmailMessage")) {
190
+                message = $this.data("validationEmailMessage");
191
+              }
192
+              $this.data("validationValidemailMessage", message);
193
+            }
194
+            // ---------------------------------------------------------
195
+            //                                                MINCHECKED
196
+            // ---------------------------------------------------------
197
+            if ($this.attr("minchecked") !== undefined) {
198
+              message = "Not enough options checked; Minimum of '" + $this.attr("minchecked") + "' required<!-- data-validation-minchecked-message to override -->";
199
+              if ($this.data("validationMincheckedMessage")) {
200
+                message = $this.data("validationMincheckedMessage");
201
+              }
202
+              $this.data("validationMincheckedMessage", message);
203
+              $this.data("validationMincheckedMinchecked", $this.attr("minchecked"));
204
+            }
205
+            // ---------------------------------------------------------
206
+            //                                                MAXCHECKED
207
+            // ---------------------------------------------------------
208
+            if ($this.attr("maxchecked") !== undefined) {
209
+              message = "Too many options checked; Maximum of '" + $this.attr("maxchecked") + "' required<!-- data-validation-maxchecked-message to override -->";
210
+              if ($this.data("validationMaxcheckedMessage")) {
211
+                message = $this.data("validationMaxcheckedMessage");
212
+              }
213
+              $this.data("validationMaxcheckedMessage", message);
214
+              $this.data("validationMaxcheckedMaxchecked", $this.attr("maxchecked"));
215
+            }
216
+          }
217
+
218
+          // =============================================================
219
+          //                                       COLLECT VALIDATOR NAMES
220
+          // =============================================================
221
+
222
+          // Get named validators
223
+          if ($this.data("validation") !== undefined) {
224
+            validatorNames = $this.data("validation").split(",");
225
+          }
226
+
227
+          // Get extra ones defined on the element's data attributes
228
+          $.each($this.data(), function (i, el) {
229
+            var parts = i.replace(/([A-Z])/g, ",$1").split(",");
230
+            if (parts[0] === "validation" && parts[1]) {
231
+              validatorNames.push(parts[1]);
232
+            }
233
+          });
234
+
235
+          // =============================================================
236
+          //                                     NORMALISE VALIDATOR NAMES
237
+          // =============================================================
238
+
239
+          var validatorNamesToInspect = validatorNames;
240
+          var newValidatorNamesToInspect = [];
241
+
242
+          do // repeatedly expand 'shortcut' validators into their real validators
243
+          {
244
+            // Uppercase only the first letter of each name
245
+            $.each(validatorNames, function (i, el) {
246
+              validatorNames[i] = formatValidatorName(el);
247
+            });
248
+
249
+            // Remove duplicate validator names
250
+            validatorNames = $.unique(validatorNames);
251
+
252
+            // Pull out the new validator names from each shortcut
253
+            newValidatorNamesToInspect = [];
254
+            $.each(validatorNamesToInspect, function(i, el) {
255
+              if ($this.data("validation" + el + "Shortcut") !== undefined) {
256
+                // Are these custom validators?
257
+                // Pull them out!
258
+                $.each($this.data("validation" + el + "Shortcut").split(","), function(i2, el2) {
259
+                  newValidatorNamesToInspect.push(el2);
260
+                });
261
+              } else if (settings.builtInValidators[el.toLowerCase()]) {
262
+                // Is this a recognised built-in?
263
+                // Pull it out!
264
+                var validator = settings.builtInValidators[el.toLowerCase()];
265
+                if (validator.type.toLowerCase() === "shortcut") {
266
+                  $.each(validator.shortcut.split(","), function (i, el) {
267
+                    el = formatValidatorName(el);
268
+                    newValidatorNamesToInspect.push(el);
269
+                    validatorNames.push(el);
270
+                  });
271
+                }
272
+              }
273
+            });
274
+
275
+            validatorNamesToInspect = newValidatorNamesToInspect;
276
+
277
+          } while (validatorNamesToInspect.length > 0)
278
+
279
+          // =============================================================
280
+          //                                       SET UP VALIDATOR ARRAYS
281
+          // =============================================================
282
+
283
+          var validators = {};
284
+
285
+          $.each(validatorNames, function (i, el) {
286
+            // Set up the 'override' message
287
+            var message = $this.data("validation" + el + "Message");
288
+            var hasOverrideMessage = (message !== undefined);
289
+            var foundValidator = false;
290
+            message =
291
+              (
292
+                message
293
+                  ? message
294
+                  : "'" + el + "' validation failed <!-- Add attribute 'data-validation-" + el.toLowerCase() + "-message' to input to change this message -->"
295
+              )
296
+            ;
297
+
298
+            $.each(
299
+              settings.validatorTypes,
300
+              function (validatorType, validatorTemplate) {
301
+                if (validators[validatorType] === undefined) {
302
+                  validators[validatorType] = [];
303
+                }
304
+                if (!foundValidator && $this.data("validation" + el + formatValidatorName(validatorTemplate.name)) !== undefined) {
305
+                  validators[validatorType].push(
306
+                    $.extend(
307
+                      true,
308
+                      {
309
+                        name: formatValidatorName(validatorTemplate.name),
310
+                        message: message
311
+                      },
312
+                      validatorTemplate.init($this, el)
313
+                    )
314
+                  );
315
+                  foundValidator = true;
316
+                }
317
+              }
318
+            );
319
+
320
+            if (!foundValidator && settings.builtInValidators[el.toLowerCase()]) {
321
+
322
+              var validator = $.extend(true, {}, settings.builtInValidators[el.toLowerCase()]);
323
+              if (hasOverrideMessage) {
324
+                validator.message = message;
325
+              }
326
+              var validatorType = validator.type.toLowerCase();
327
+
328
+              if (validatorType === "shortcut") {
329
+                foundValidator = true;
330
+              } else {
331
+                $.each(
332
+                  settings.validatorTypes,
333
+                  function (validatorTemplateType, validatorTemplate) {
334
+                    if (validators[validatorTemplateType] === undefined) {
335
+                      validators[validatorTemplateType] = [];
336
+                    }
337
+                    if (!foundValidator && validatorType === validatorTemplateType.toLowerCase()) {
338
+                      $this.data("validation" + el + formatValidatorName(validatorTemplate.name), validator[validatorTemplate.name.toLowerCase()]);
339
+                      validators[validatorType].push(
340
+                        $.extend(
341
+                          validator,
342
+                          validatorTemplate.init($this, el)
343
+                        )
344
+                      );
345
+                      foundValidator = true;
346
+                    }
347
+                  }
348
+                );
349
+              }
350
+            }
351
+
352
+            if (! foundValidator) {
353
+              $.error("Cannot find validation info for '" + el + "'");
354
+            }
355
+          });
356
+
357
+          // =============================================================
358
+          //                                         STORE FALLBACK VALUES
359
+          // =============================================================
360
+
361
+          $helpBlock.data(
362
+            "original-contents",
363
+            (
364
+              $helpBlock.data("original-contents")
365
+                ? $helpBlock.data("original-contents")
366
+                : $helpBlock.html()
367
+            )
368
+          );
369
+
370
+          $helpBlock.data(
371
+            "original-role",
372
+            (
373
+              $helpBlock.data("original-role")
374
+                ? $helpBlock.data("original-role")
375
+                : $helpBlock.attr("role")
376
+            )
377
+          );
378
+
379
+          $controlGroup.data(
380
+            "original-classes",
381
+            (
382
+              $controlGroup.data("original-clases")
383
+                ? $controlGroup.data("original-classes")
384
+                : $controlGroup.attr("class")
385
+            )
386
+          );
387
+
388
+          $this.data(
389
+            "original-aria-invalid",
390
+            (
391
+              $this.data("original-aria-invalid")
392
+                ? $this.data("original-aria-invalid")
393
+                : $this.attr("aria-invalid")
394
+            )
395
+          );
396
+
397
+          // =============================================================
398
+          //                                                    VALIDATION
399
+          // =============================================================
400
+
401
+          $this.bind(
402
+            "validation.validation",
403
+            function (event, params) {
404
+
405
+              var value = getValue($this);
406
+
407
+              // Get a list of the errors to apply
408
+              var errorsFound = [];
409
+
410
+              $.each(validators, function (validatorType, validatorTypeArray) {
411
+                if (value || value.length || (params && params.includeEmpty) || (!!settings.validatorTypes[validatorType].blockSubmit && params && !!params.submitting)) {
412
+                  $.each(validatorTypeArray, function (i, validator) {
413
+                    if (settings.validatorTypes[validatorType].validate($this, value, validator)) {
414
+                      errorsFound.push(validator.message);
415
+                    }
416
+                  });
417
+                }
418
+              });
419
+
420
+              return errorsFound;
421
+            }
422
+          );
423
+
424
+          $this.bind(
425
+            "getValidators.validation",
426
+            function () {
427
+              return validators;
428
+            }
429
+          );
430
+
431
+          // =============================================================
432
+          //                                             WATCH FOR CHANGES
433
+          // =============================================================
434
+          $this.bind(
435
+            "submit.validation",
436
+            function () {
437
+              return $this.triggerHandler("change.validation", {submitting: true});
438
+            }
439
+          );
440
+          $this.bind(
441
+            [
442
+              "keyup",
443
+              "focus",
444
+              "blur",
445
+              "click",
446
+              "keydown",
447
+              "keypress",
448
+              "change"
449
+            ].join(".validation ") + ".validation",
450
+            function (e, params) {
451
+
452
+              var value = getValue($this);
453
+
454
+              var errorsFound = [];
455
+
456
+              $controlGroup.find("input,textarea,select").each(function (i, el) {
457
+                var oldCount = errorsFound.length;
458
+                $.each($(el).triggerHandler("validation.validation", params), function (j, message) {
459
+                  errorsFound.push(message);
460
+                });
461
+                if (errorsFound.length > oldCount) {
462
+                  $(el).attr("aria-invalid", "true");
463
+                } else {
464
+                  var original = $this.data("original-aria-invalid");
465
+                  $(el).attr("aria-invalid", (original !== undefined ? original : false));
466
+                }
467
+              });
468
+
469
+              $form.find("input,select,textarea").not($this).not("[name=\"" + $this.attr("name") + "\"]").trigger("validationLostFocus.validation");
470
+
471
+              errorsFound = $.unique(errorsFound.sort());
472
+
473
+              // Were there any errors?
474
+              if (errorsFound.length) {
475
+                // Better flag it up as a warning.
476
+                $controlGroup.removeClass("has-success has-error").addClass("has-warning");
477
+
478
+                // How many errors did we find?
479
+                if (settings.options.semanticallyStrict && errorsFound.length === 1) {
480
+                  // Only one? Being strict? Just output it.
481
+                  $helpBlock.html(errorsFound[0] + 
482
+                    ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" ));
483
+                } else {
484
+                  // Multiple? Being sloppy? Glue them together into an UL.
485
+                  $helpBlock.html("<ul role=\"alert\"><li>" + errorsFound.join("</li><li>") + "</li></ul>" +
486
+                    ( settings.options.prependExistingHelpBlock ? $helpBlock.data("original-contents") : "" ));
487
+                }
488
+              } else {
489
+                $controlGroup.removeClass("has-warning has-error has-success");
490
+                if (value.length > 0) {
491
+                  $controlGroup.addClass("has-success");
492
+                }
493
+                $helpBlock.html($helpBlock.data("original-contents"));
494
+              }
495
+
496
+              if (e.type === "blur") {
497
+                $controlGroup.removeClass("has-success");
498
+              }
499
+            }
500
+          );
501
+          $this.bind("validationLostFocus.validation", function () {
502
+            $controlGroup.removeClass("has-success");
503
+          });
504
+        });
505
+      },
506
+      destroy : function( ) {
507
+
508
+        return this.each(
509
+          function() {
510
+
511
+            var
512
+              $this = $(this),
513
+              $controlGroup = $this.parents(".control-group").first(),
514
+              $helpBlock = $controlGroup.find(".help-block").first();
515
+
516
+            // remove our events
517
+            $this.unbind('.validation'); // events are namespaced.
518
+            // reset help text
519
+            $helpBlock.html($helpBlock.data("original-contents"));
520
+            // reset classes
521
+            $controlGroup.attr("class", $controlGroup.data("original-classes"));
522
+            // reset aria
523
+            $this.attr("aria-invalid", $this.data("original-aria-invalid"));
524
+            // reset role
525
+            $helpBlock.attr("role", $this.data("original-role"));
526
+						// remove all elements we created
527
+						if (createdElements.indexOf($helpBlock[0]) > -1) {
528
+							$helpBlock.remove();
529
+						}
530
+
531
+          }
532
+        );
533
+
534
+      },
535
+      collectErrors : function(includeEmpty) {
536
+
537
+        var errorMessages = {};
538
+        this.each(function (i, el) {
539
+          var $el = $(el);
540
+          var name = $el.attr("name");
541
+          var errors = $el.triggerHandler("validation.validation", {includeEmpty: true});
542
+          errorMessages[name] = $.extend(true, errors, errorMessages[name]);
543
+        });
544
+
545
+        $.each(errorMessages, function (i, el) {
546
+          if (el.length === 0) {
547
+            delete errorMessages[i];
548
+          }
549
+        });
550
+
551
+        return errorMessages;
552
+
553
+      },
554
+      hasErrors: function() {
555
+
556
+        var errorMessages = [];
557
+
558
+        this.each(function (i, el) {
559
+          errorMessages = errorMessages.concat(
560
+            $(el).triggerHandler("getValidators.validation") ? $(el).triggerHandler("validation.validation", {submitting: true}) : []
561
+          );
562
+        });
563
+
564
+        return (errorMessages.length > 0);
565
+      },
566
+      override : function (newDefaults) {
567
+        defaults = $.extend(true, defaults, newDefaults);
568
+      }
569
+    },
570
+		validatorTypes: {
571
+      callback: {
572
+        name: "callback",
573
+        init: function ($this, name) {
574
+          return {
575
+            validatorName: name,
576
+            callback: $this.data("validation" + name + "Callback"),
577
+            lastValue: $this.val(),
578
+            lastValid: true,
579
+            lastFinished: true
580
+          };
581
+        },
582
+        validate: function ($this, value, validator) {
583
+          if (validator.lastValue === value && validator.lastFinished) {
584
+            return !validator.lastValid;
585
+          }
586
+
587
+          if (validator.lastFinished === true)
588
+          {
589
+            validator.lastValue = value;
590
+            validator.lastValid = true;
591
+            validator.lastFinished = false;
592
+
593
+            var rrjqbvValidator = validator;
594
+            var rrjqbvThis = $this;
595
+            executeFunctionByName(
596
+              validator.callback,
597
+              window,
598
+              $this,
599
+              value,
600
+              function (data) {
601
+                if (rrjqbvValidator.lastValue === data.value) {
602
+                  rrjqbvValidator.lastValid = data.valid;
603
+                  if (data.message) {
604
+                    rrjqbvValidator.message = data.message;
605
+                  }
606
+                  rrjqbvValidator.lastFinished = true;
607
+                  rrjqbvThis.data("validation" + rrjqbvValidator.validatorName + "Message", rrjqbvValidator.message);
608
+                  // Timeout is set to avoid problems with the events being considered 'already fired'
609
+                  setTimeout(function () {
610
+                    rrjqbvThis.trigger("change.validation");
611
+                  }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst
612
+                }
613
+              }
614
+            );
615
+          }
616
+
617
+          return false;
618
+
619
+        }
620
+      },
621
+      ajax: {
622
+        name: "ajax",
623
+        init: function ($this, name) {
624
+          return {
625
+            validatorName: name,
626
+            url: $this.data("validation" + name + "Ajax"),
627
+            lastValue: $this.val(),
628
+            lastValid: true,
629
+            lastFinished: true
630
+          };
631
+        },
632
+        validate: function ($this, value, validator) {
633
+          if (""+validator.lastValue === ""+value && validator.lastFinished === true) {
634
+            return validator.lastValid === false;
635
+          }
636
+
637
+          if (validator.lastFinished === true)
638
+          {
639
+            validator.lastValue = value;
640
+            validator.lastValid = true;
641
+            validator.lastFinished = false;
642
+            $.ajax({
643
+              url: validator.url,
644
+              data: "value=" + value + "&field=" + $this.attr("name"),
645
+              dataType: "json",
646
+              success: function (data) {
647
+                if (""+validator.lastValue === ""+data.value) {
648
+                  validator.lastValid = !!(data.valid);
649
+                  if (data.message) {
650
+                    validator.message = data.message;
651
+                  }
652
+                  validator.lastFinished = true;
653
+                  $this.data("validation" + validator.validatorName + "Message", validator.message);
654
+                  // Timeout is set to avoid problems with the events being considered 'already fired'
655
+                  setTimeout(function () {
656
+                    $this.trigger("change.validation");
657
+                  }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst
658
+                }
659
+              },
660
+              failure: function () {
661
+                validator.lastValid = true;
662
+                validator.message = "ajax call failed";
663
+                validator.lastFinished = true;
664
+                $this.data("validation" + validator.validatorName + "Message", validator.message);
665
+                // Timeout is set to avoid problems with the events being considered 'already fired'
666
+                setTimeout(function () {
667
+                  $this.trigger("change.validation");
668
+                }, 1); // doesn't need a long timeout, just long enough for the event bubble to burst
669
+              }
670
+            });
671
+          }
672
+
673
+          return false;
674
+
675
+        }
676
+      },
677
+			regex: {
678
+				name: "regex",
679
+				init: function ($this, name) {
680
+					return {regex: regexFromString($this.data("validation" + name + "Regex"))};
681
+				},
682
+				validate: function ($this, value, validator) {
683
+					return (!validator.regex.test(value) && ! validator.negative)
684
+						|| (validator.regex.test(value) && validator.negative);
685
+				}
686
+			},
687
+			required: {
688
+				name: "required",
689
+				init: function ($this, name) {
690
+					return {};
691
+				},
692
+				validate: function ($this, value, validator) {
693
+					return !!(value.length === 0  && ! validator.negative)
694
+						|| !!(value.length > 0 && validator.negative);
695
+				},
696
+        blockSubmit: true
697
+			},
698
+			match: {
699
+				name: "match",
700
+				init: function ($this, name) {
701
+					var element = $this.parents("form").first().find("[name=\"" + $this.data("validation" + name + "Match") + "\"]").first();
702
+					element.bind("validation.validation", function () {
703
+						$this.trigger("change.validation", {submitting: true});
704
+					});
705
+					return {"element": element};
706
+				},
707
+				validate: function ($this, value, validator) {
708
+					return (value !== validator.element.val() && ! validator.negative)
709
+						|| (value === validator.element.val() && validator.negative);
710
+				},
711
+        blockSubmit: true
712
+			},
713
+			max: {
714
+				name: "max",
715
+				init: function ($this, name) {
716
+					return {max: $this.data("validation" + name + "Max")};
717
+				},
718
+				validate: function ($this, value, validator) {
719
+					return (parseFloat(value, 10) > parseFloat(validator.max, 10) && ! validator.negative)
720
+						|| (parseFloat(value, 10) <= parseFloat(validator.max, 10) && validator.negative);
721
+				}
722
+			},
723
+			min: {
724
+				name: "min",
725
+				init: function ($this, name) {
726
+					return {min: $this.data("validation" + name + "Min")};
727
+				},
728
+				validate: function ($this, value, validator) {
729
+					return (parseFloat(value) < parseFloat(validator.min) && ! validator.negative)
730
+						|| (parseFloat(value) >= parseFloat(validator.min) && validator.negative);
731
+				}
732
+			},
733
+			maxlength: {
734
+				name: "maxlength",
735
+				init: function ($this, name) {
736
+					return {maxlength: $this.data("validation" + name + "Maxlength")};
737
+				},
738
+				validate: function ($this, value, validator) {
739
+					return ((value.length > validator.maxlength) && ! validator.negative)
740
+						|| ((value.length <= validator.maxlength) && validator.negative);
741
+				}
742
+			},
743
+			minlength: {
744
+				name: "minlength",
745
+				init: function ($this, name) {
746
+					return {minlength: $this.data("validation" + name + "Minlength")};
747
+				},
748
+				validate: function ($this, value, validator) {
749
+					return ((value.length < validator.minlength) && ! validator.negative)
750
+						|| ((value.length >= validator.minlength) && validator.negative);
751
+				}
752
+			},
753
+			maxchecked: {
754
+				name: "maxchecked",
755
+				init: function ($this, name) {
756
+					var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]");
757
+					elements.bind("click.validation", function () {
758
+						$this.trigger("change.validation", {includeEmpty: true});
759
+					});
760
+					return {maxchecked: $this.data("validation" + name + "Maxchecked"), elements: elements};
761
+				},
762
+				validate: function ($this, value, validator) {
763
+					return (validator.elements.filter(":checked").length > validator.maxchecked && ! validator.negative)
764
+						|| (validator.elements.filter(":checked").length <= validator.maxchecked && validator.negative);
765
+				},
766
+        blockSubmit: true
767
+			},
768
+			minchecked: {
769
+				name: "minchecked",
770
+				init: function ($this, name) {
771
+					var elements = $this.parents("form").first().find("[name=\"" + $this.attr("name") + "\"]");
772
+					elements.bind("click.validation", function () {
773
+						$this.trigger("change.validation", {includeEmpty: true});
774
+					});
775
+					return {minchecked: $this.data("validation" + name + "Minchecked"), elements: elements};
776
+				},
777
+				validate: function ($this, value, validator) {
778
+					return (validator.elements.filter(":checked").length < validator.minchecked && ! validator.negative)
779
+						|| (validator.elements.filter(":checked").length >= validator.minchecked && validator.negative);
780
+				},
781
+        blockSubmit: true
782
+			}
783
+		},
784
+		builtInValidators: {
785
+			email: {
786
+				name: "Email",
787
+				type: "shortcut",
788
+				shortcut: "validemail"
789
+			},
790
+			validemail: {
791
+				name: "Validemail",
792
+				type: "regex",
793
+				regex: "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\\.[A-Za-z]{2,4}",
794
+				message: "Not a valid email address<!-- data-validator-validemail-message to override -->"
795
+			},
796
+			passwordagain: {
797
+				name: "Passwordagain",
798
+				type: "match",
799
+				match: "password",
800
+				message: "Does not match the given password<!-- data-validator-paswordagain-message to override -->"
801
+			},
802
+			positive: {
803
+				name: "Positive",
804
+				type: "shortcut",
805
+				shortcut: "number,positivenumber"
806
+			},
807
+			negative: {
808
+				name: "Negative",
809
+				type: "shortcut",
810
+				shortcut: "number,negativenumber"
811
+			},
812
+			number: {
813
+				name: "Number",
814
+				type: "regex",
815
+				regex: "([+-]?\\\d+(\\\.\\\d*)?([eE][+-]?[0-9]+)?)?",
816
+				message: "Must be a number<!-- data-validator-number-message to override -->"
817
+			},
818
+			integer: {
819
+				name: "Integer",
820
+				type: "regex",
821
+				regex: "[+-]?\\\d+",
822
+				message: "No decimal places allowed<!-- data-validator-integer-message to override -->"
823
+			},
824
+			positivenumber: {
825
+				name: "Positivenumber",
826
+				type: "min",
827
+				min: 0,
828
+				message: "Must be a positive number<!-- data-validator-positivenumber-message to override -->"
829
+			},
830
+			negativenumber: {
831
+				name: "Negativenumber",
832
+				type: "max",
833
+				max: 0,
834
+				message: "Must be a negative number<!-- data-validator-negativenumber-message to override -->"
835
+			},
836
+			required: {
837
+				name: "Required",
838
+				type: "required",
839
+				message: "This is required<!-- data-validator-required-message to override -->"
840
+			},
841
+			checkone: {
842
+				name: "Checkone",
843
+				type: "minchecked",
844
+				minchecked: 1,
845
+				message: "Check at least one option<!-- data-validation-checkone-message to override -->"
846
+			}
847
+		}
848
+	};
849
+
850
+	var formatValidatorName = function (name) {
851
+		return name
852
+			.toLowerCase()
853
+			.replace(
854
+				/(^|\s)([a-z])/g ,
855
+				function(m,p1,p2) {
856
+					return p1+p2.toUpperCase();
857
+				}
858
+			)
859
+		;
860
+	};
861
+
862
+	var getValue = function ($this) {
863
+		// Extract the value we're talking about
864
+		var value = $this.val();
865
+		var type = $this.attr("type");
866
+		if (type === "checkbox") {
867
+			value = ($this.is(":checked") ? value : "");
868
+		}
869
+		if (type === "radio") {
870
+			value = ($('input[name="' + $this.attr("name") + '"]:checked').length > 0 ? value : "");
871
+		}
872
+		return value;
873
+	};
874
+
875
+  function regexFromString(inputstring) {
876
+		return new RegExp("^" + inputstring + "$");
877
+	}
878
+
879
+  /**
880
+   * Thanks to Jason Bunting via StackOverflow.com
881
+   *
882
+   * http://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string#answer-359910
883
+   * Short link: http://tinyurl.com/executeFunctionByName
884
+  **/
885
+  function executeFunctionByName(functionName, context /*, args*/) {
886
+    var args = Array.prototype.slice.call(arguments).splice(2);
887
+    var namespaces = functionName.split(".");
888
+    var func = namespaces.pop();
889
+    for(var i = 0; i < namespaces.length; i++) {
890
+      context = context[namespaces[i]];
891
+    }
892
+    return context[func].apply(this, args);
893
+  }
894
+
895
+	$.fn.jqBootstrapValidation = function( method ) {
896
+
897
+		if ( defaults.methods[method] ) {
898
+			return defaults.methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
899
+		} else if ( typeof method === 'object' || ! method ) {
900
+			return defaults.methods.init.apply( this, arguments );
901
+		} else {
902
+		$.error( 'Method ' +  method + ' does not exist on jQuery.jqBootstrapValidation' );
903
+			return null;
904
+		}
905
+
906
+	};
907
+
908
+  $.jqBootstrapValidation = function (options) {
909
+    $(":input").not("[type=image],[type=submit]").jqBootstrapValidation.apply(this,arguments);
910
+  };
911
+
912
+})( jQuery );

File diff suppressed because it is too large
+ 4 - 0
assets/js/jquery.js


+ 26 - 0
bin/contact_me.php

@@ -0,0 +1,26 @@
1
+<?php
2
+// Check for empty fields
3
+if(empty($_POST['name'])      ||
4
+   empty($_POST['email'])     ||
5
+   empty($_POST['phone'])     ||
6
+   empty($_POST['message'])   ||
7
+   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
8
+   {
9
+   echo "No arguments Provided!";
10
+   return false;
11
+   }
12
+   
13
+$name = strip_tags(htmlspecialchars($_POST['name']));
14
+$email_address = strip_tags(htmlspecialchars($_POST['email']));
15
+$phone = strip_tags(htmlspecialchars($_POST['phone']));
16
+$message = strip_tags(htmlspecialchars($_POST['message']));
17
+   
18
+// Create the email and send the message
19
+$to = 'yourname@yourdomain.com'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.
20
+$email_subject = "Website Contact Form:  $name";
21
+$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
22
+$headers = "From: noreply@yourdomain.com\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.
23
+$headers .= "Reply-To: $email_address";   
24
+mail($to,$email_subject,$email_body,$headers);
25
+return true;         
26
+?>

+ 291 - 0
blog-home-1.html

@@ -0,0 +1,291 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+
4
+<head>
5
+
6
+    <meta charset="utf-8">
7
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+    <meta name="viewport" content="width=device-width, initial-scale=1">
9
+    <meta name="description" content="">
10
+    <meta name="author" content="">
11
+
12
+    <title>Modern Business - Start Bootstrap Template</title>
13
+
14
+    <!-- Bootstrap Core CSS -->
15
+    <link href="css/bootstrap.min.css" rel="stylesheet">
16
+
17
+    <!-- Custom CSS -->
18
+    <link href="css/modern-business.css" rel="stylesheet">
19
+
20
+    <!-- Custom Fonts -->
21
+    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
22
+
23
+    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
24
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
25
+    <!--[if lt IE 9]>
26
+        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
27
+        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
28
+    <![endif]-->
29
+
30
+</head>
31
+
32
+<body>
33
+
34
+    <!-- Navigation -->
35
+    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+        <div class="container">
37
+            <!-- Brand and toggle get grouped for better mobile display -->
38
+            <div class="navbar-header">
39
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
40
+                    <span class="sr-only">Toggle navigation</span>
41
+                    <span class="icon-bar"></span>
42
+                    <span class="icon-bar"></span>
43
+                    <span class="icon-bar"></span>
44
+                </button>
45
+                <a class="navbar-brand" href="index.html">Start Bootstrap</a>
46
+            </div>
47
+            <!-- Collect the nav links, forms, and other content for toggling -->
48
+            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
49
+                <ul class="nav navbar-nav navbar-right">
50
+                    <li>
51
+                        <a href="about.html">About</a>
52
+                    </li>
53
+                    <li>
54
+                        <a href="services.html">Services</a>
55
+                    </li>
56
+                    <li>
57
+                        <a href="contact.html">Contact</a>
58
+                    </li>
59
+                    <li class="dropdown">
60
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Portfolio <b class="caret"></b></a>
61
+                        <ul class="dropdown-menu">
62
+                            <li>
63
+                                <a href="portfolio-1-col.html">1 Column Portfolio</a>
64
+                            </li>
65
+                            <li>
66
+                                <a href="portfolio-2-col.html">2 Column Portfolio</a>
67
+                            </li>
68
+                            <li>
69
+                                <a href="portfolio-3-col.html">3 Column Portfolio</a>
70
+                            </li>
71
+                            <li>
72
+                                <a href="portfolio-4-col.html">4 Column Portfolio</a>
73
+                            </li>
74
+                            <li>
75
+                                <a href="portfolio-item.html">Single Portfolio Item</a>
76
+                            </li>
77
+                        </ul>
78
+                    </li>
79
+                    <li class="dropdown active">
80
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Blog <b class="caret"></b></a>
81
+                        <ul class="dropdown-menu">
82
+                            <li class="active">
83
+                                <a href="blog-home-1.html">Blog Home 1</a>
84
+                            </li>
85
+                            <li>
86
+                                <a href="blog-home-2.html">Blog Home 2</a>
87
+                            </li>
88
+                            <li>
89
+                                <a href="blog-post.html">Blog Post</a>
90
+                            </li>
91
+                        </ul>
92
+                    </li>
93
+                    <li class="dropdown">
94
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Other Pages <b class="caret"></b></a>
95
+                        <ul class="dropdown-menu">
96
+                            <li>
97
+                                <a href="full-width.html">Full Width Page</a>
98
+                            </li>
99
+                            <li>
100
+                                <a href="sidebar.html">Sidebar Page</a>
101
+                            </li>
102
+                            <li>
103
+                                <a href="faq.html">FAQ</a>
104
+                            </li>
105
+                            <li>
106
+                                <a href="404.html">404</a>
107
+                            </li>
108
+                            <li>
109
+                                <a href="pricing.html">Pricing Table</a>
110
+                            </li>
111
+                        </ul>
112
+                    </li>
113
+                </ul>
114
+            </div>
115
+            <!-- /.navbar-collapse -->
116
+        </div>
117
+        <!-- /.container -->
118
+    </nav>
119
+
120
+    <!-- Page Content -->
121
+    <div class="container">
122
+
123
+        <!-- Page Heading/Breadcrumbs -->
124
+        <div class="row">
125
+            <div class="col-lg-12">
126
+                <h1 class="page-header">Blog Home One
127
+                    <small>Subheading</small>
128
+                </h1>
129
+                <ol class="breadcrumb">
130
+                    <li><a href="index.html">Home</a>
131
+                    </li>
132
+                    <li class="active">Blog Home One</li>
133
+                </ol>
134
+            </div>
135
+        </div>
136
+        <!-- /.row -->
137
+
138
+        <div class="row">
139
+
140
+            <!-- Blog Entries Column -->
141
+            <div class="col-md-8">
142
+
143
+                <!-- First Blog Post -->
144
+                <h2>
145
+                    <a href="#">Blog Post Title</a>
146
+                </h2>
147
+                <p class="lead">
148
+                    by <a href="index.php">Start Bootstrap</a>
149
+                </p>
150
+                <p><i class="fa fa-clock-o"></i> Posted on August 28, 2013 at 10:00 PM</p>
151
+                <hr>
152
+                <a href="blog-post.html">
153
+                    <img class="img-responsive img-hover" src="http://placehold.it/900x300" alt="">
154
+                </a>
155
+                <hr>
156
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, veritatis, tempora, necessitatibus inventore nisi quam quia repellat ut tempore laborum possimus eum dicta id animi corrupti debitis ipsum officiis rerum.</p>
157
+                <a class="btn btn-primary" href="#">Read More <i class="fa fa-angle-right"></i></a>
158
+
159
+                <hr>
160
+
161
+                <!-- Second Blog Post -->
162
+                <h2>
163
+                    <a href="#">Blog Post Title</a>
164
+                </h2>
165
+                <p class="lead">
166
+                    by <a href="index.php">Start Bootstrap</a>
167
+                </p>
168
+                <p><i class="fa fa-clock-o"></i> Posted on August 28, 2013 at 10:45 PM</p>
169
+                <hr>
170
+                <a href="blog-post.html">
171
+                    <img class="img-responsive img-hover" src="http://placehold.it/900x300" alt="">
172
+                </a>
173
+                <hr>
174
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam, quasi, fugiat, asperiores harum voluptatum tenetur a possimus nesciunt quod accusamus saepe tempora ipsam distinctio minima dolorum perferendis labore impedit voluptates!</p>
175
+                <a class="btn btn-primary" href="#">Read More <i class="fa fa-angle-right"></i></a>
176
+
177
+                <hr>
178
+
179
+                <!-- Third Blog Post -->
180
+                <h2>
181
+                    <a href="#">Blog Post Title</a>
182
+                </h2>
183
+                <p class="lead">
184
+                    by <a href="index.php">Start Bootstrap</a>
185
+                </p>
186
+                <p><i class="fa fa-clock-o"></i> Posted on August 28, 2013 at 10:45 PM</p>
187
+                <hr>
188
+                <a href="blog-post.html">
189
+                    <img class="img-responsive img-hover" src="http://placehold.it/900x300" alt="">
190
+                </a>
191
+                <hr>
192
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate, voluptates, voluptas dolore ipsam cumque quam veniam accusantium laudantium adipisci architecto itaque dicta aperiam maiores provident id incidunt autem. Magni, ratione.</p>
193
+                <a class="btn btn-primary" href="#">Read More <i class="fa fa-angle-right"></i></a>
194
+
195
+                <hr>
196
+
197
+                <!-- Pager -->
198
+                <ul class="pager">
199
+                    <li class="previous">
200
+                        <a href="#">&larr; Older</a>
201
+                    </li>
202
+                    <li class="next">
203
+                        <a href="#">Newer &rarr;</a>
204
+                    </li>
205
+                </ul>
206
+
207
+            </div>
208
+
209
+            <!-- Blog Sidebar Widgets Column -->
210
+            <div class="col-md-4">
211
+
212
+                <!-- Blog Search Well -->
213
+                <div class="well">
214
+                    <h4>Blog Search</h4>
215
+                    <div class="input-group">
216
+                        <input type="text" class="form-control">
217
+                        <span class="input-group-btn">
218
+                            <button class="btn btn-default" type="button"><i class="fa fa-search"></i></button>
219
+                        </span>
220
+                    </div>
221
+                    <!-- /.input-group -->
222
+                </div>
223
+
224
+                <!-- Blog Categories Well -->
225
+                <div class="well">
226
+                    <h4>Blog Categories</h4>
227
+                    <div class="row">
228
+                        <div class="col-lg-6">
229
+                            <ul class="list-unstyled">
230
+                                <li><a href="#">Category Name</a>
231
+                                </li>
232
+                                <li><a href="#">Category Name</a>
233
+                                </li>
234
+                                <li><a href="#">Category Name</a>
235
+                                </li>
236
+                                <li><a href="#">Category Name</a>
237
+                                </li>
238
+                            </ul>
239
+                        </div>
240
+                        <!-- /.col-lg-6 -->
241
+                        <div class="col-lg-6">
242
+                            <ul class="list-unstyled">
243
+                                <li><a href="#">Category Name</a>
244
+                                </li>
245
+                                <li><a href="#">Category Name</a>
246
+                                </li>
247
+                                <li><a href="#">Category Name</a>
248
+                                </li>
249
+                                <li><a href="#">Category Name</a>
250
+                                </li>
251
+                            </ul>
252
+                        </div>
253
+                        <!-- /.col-lg-6 -->
254
+                    </div>
255
+                    <!-- /.row -->
256
+                </div>
257
+
258
+                <!-- Side Widget Well -->
259
+                <div class="well">
260
+                    <h4>Side Widget Well</h4>
261
+                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore, perspiciatis adipisci accusamus laudantium odit aliquam repellat tempore quos aspernatur vero.</p>
262
+                </div>
263
+
264
+            </div>
265
+
266
+        </div>
267
+        <!-- /.row -->
268
+
269
+        <hr>
270
+
271
+        <!-- Footer -->
272
+        <footer>
273
+            <div class="row">
274
+                <div class="col-lg-12">
275
+                    <p>Copyright &copy; Your Website 2014</p>
276
+                </div>
277
+            </div>
278
+        </footer>
279
+
280
+    </div>
281
+    <!-- /.container -->
282
+
283
+    <!-- jQuery -->
284
+    <script src="js/jquery.js"></script>
285
+
286
+    <!-- Bootstrap Core JavaScript -->
287
+    <script src="js/bootstrap.min.js"></script>
288
+
289
+</body>
290
+
291
+</html>

+ 246 - 0
blog-home-2.html

@@ -0,0 +1,246 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+
4
+<head>
5
+
6
+    <meta charset="utf-8">
7
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+    <meta name="viewport" content="width=device-width, initial-scale=1">
9
+    <meta name="description" content="">
10
+    <meta name="author" content="">
11
+
12
+    <title>Modern Business - Start Bootstrap Template</title>
13
+
14
+    <!-- Bootstrap Core CSS -->
15
+    <link href="css/bootstrap.min.css" rel="stylesheet">
16
+
17
+    <!-- Custom CSS -->
18
+    <link href="css/modern-business.css" rel="stylesheet">
19
+
20
+    <!-- Custom Fonts -->
21
+    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
22
+
23
+    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
24
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
25
+    <!--[if lt IE 9]>
26
+        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
27
+        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
28
+    <![endif]-->
29
+
30
+</head>
31
+
32
+<body>
33
+
34
+    <!-- Navigation -->
35
+    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+        <div class="container">
37
+            <!-- Brand and toggle get grouped for better mobile display -->
38
+            <div class="navbar-header">
39
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
40
+                    <span class="sr-only">Toggle navigation</span>
41
+                    <span class="icon-bar"></span>
42
+                    <span class="icon-bar"></span>
43
+                    <span class="icon-bar"></span>
44
+                </button>
45
+                <a class="navbar-brand" href="index.html">Start Bootstrap</a>
46
+            </div>
47
+            <!-- Collect the nav links, forms, and other content for toggling -->
48
+            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
49
+                <ul class="nav navbar-nav navbar-right">
50
+                    <li>
51
+                        <a href="about.html">About</a>
52
+                    </li>
53
+                    <li>
54
+                        <a href="services.html">Services</a>
55
+                    </li>
56
+                    <li>
57
+                        <a href="contact.html">Contact</a>
58
+                    </li>
59
+                    <li class="dropdown">
60
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Portfolio <b class="caret"></b></a>
61
+                        <ul class="dropdown-menu">
62
+                            <li>
63
+                                <a href="portfolio-1-col.html">1 Column Portfolio</a>
64
+                            </li>
65
+                            <li>
66
+                                <a href="portfolio-2-col.html">2 Column Portfolio</a>
67
+                            </li>
68
+                            <li>
69
+                                <a href="portfolio-3-col.html">3 Column Portfolio</a>
70
+                            </li>
71
+                            <li>
72
+                                <a href="portfolio-4-col.html">4 Column Portfolio</a>
73
+                            </li>
74
+                            <li>
75
+                                <a href="portfolio-item.html">Single Portfolio Item</a>
76
+                            </li>
77
+                        </ul>
78
+                    </li>
79
+                    <li class="dropdown active">
80
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Blog <b class="caret"></b></a>
81
+                        <ul class="dropdown-menu">
82
+                            <li>
83
+                                <a href="blog-home-1.html">Blog Home 1</a>
84
+                            </li>
85
+                            <li class="active">
86
+                                <a href="blog-home-2.html">Blog Home 2</a>
87
+                            </li>
88
+                            <li>
89
+                                <a href="blog-post.html">Blog Post</a>
90
+                            </li>
91
+                        </ul>
92
+                    </li>
93
+                    <li class="dropdown">
94
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Other Pages <b class="caret"></b></a>
95
+                        <ul class="dropdown-menu">
96
+                            <li>
97
+                                <a href="full-width.html">Full Width Page</a>
98
+                            </li>
99
+                            <li>
100
+                                <a href="sidebar.html">Sidebar Page</a>
101
+                            </li>
102
+                            <li>
103
+                                <a href="faq.html">FAQ</a>
104
+                            </li>
105
+                            <li>
106
+                                <a href="404.html">404</a>
107
+                            </li>
108
+                            <li>
109
+                                <a href="pricing.html">Pricing Table</a>
110
+                            </li>
111
+                        </ul>
112
+                    </li>
113
+                </ul>
114
+            </div>
115
+            <!-- /.navbar-collapse -->
116
+        </div>
117
+        <!-- /.container -->
118
+    </nav>
119
+
120
+    <!-- Page Content -->
121
+    <div class="container">
122
+
123
+        <div class="row">
124
+            <div class="col-lg-12">
125
+                <h1 class="page-header">Blog Home Two
126
+                    <small>Subheading</small>
127
+                </h1>
128
+                <ol class="breadcrumb">
129
+                    <li><a href="index.html">Home</a>
130
+                    </li>
131
+                    <li class="active">Blog Home Two</li>
132
+                </ol>
133
+            </div>
134
+        </div>
135
+        <!-- /.row -->
136
+
137
+        <!-- Blog Post Row -->
138
+        <div class="row">
139
+            <div class="col-md-1 text-center">
140
+                <p><i class="fa fa-camera fa-4x"></i>
141
+                </p>
142
+                <p>June 17, 2014</p>
143
+            </div>
144
+            <div class="col-md-5">
145
+                <a href="blog-post.html">
146
+                    <img class="img-responsive img-hover" src="http://placehold.it/600x300" alt="">
147
+                </a>
148
+            </div>
149
+            <div class="col-md-6">
150
+                <h3>
151
+                    <a href="blog-post.html">Blog Post Title</a>
152
+                </h3>
153
+                <p>by <a href="#">Start Bootstrap</a>
154
+                </p>
155
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
156
+                <a class="btn btn-primary" href="blog-post.html">Read More <i class="fa fa-angle-right"></i></a>
157
+            </div>
158
+        </div>
159
+        <!-- /.row -->
160
+
161
+        <hr>
162
+
163
+        <!-- Blog Post Row -->
164
+        <div class="row">
165
+            <div class="col-md-1 text-center">
166
+                <p><i class="fa fa-film fa-4x"></i>
167
+                </p>
168
+                <p>June 17, 2014</p>
169
+            </div>
170
+            <div class="col-md-5">
171
+                <a href="blog-post.html">
172
+                    <img class="img-responsive img-hover" src="http://placehold.it/600x300" alt="">
173
+                </a>
174
+            </div>
175
+            <div class="col-md-6">
176
+                <h3><a href="blog-post.html">Blog Post Title</a>
177
+                </h3>
178
+                <p>by <a href="#">Start Bootstrap</a>
179
+                </p>
180
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
181
+                <a class="btn btn-primary" href="blog-post.html">Read More <i class="fa fa-angle-right"></i></a>
182
+            </div>
183
+        </div>
184
+        <!-- /.row -->
185
+
186
+        <hr>
187
+
188
+        <!-- Blog Post Row -->
189
+        <div class="row">
190
+            <div class="col-md-1 text-center">
191
+                <p><i class="fa fa-file-text fa-4x"></i>
192
+                </p>
193
+                <p>June 17, 2014</p>
194
+            </div>
195
+            <div class="col-md-5">
196
+                <a href="blog-post.html">
197
+                    <img class="img-responsive img-hover" src="http://placehold.it/600x300" alt="">
198
+                </a>
199
+            </div>
200
+            <div class="col-md-6">
201
+                <h3><a href="blog-post.html">Blog Post Title</a>
202
+                </h3>
203
+                <p>by <a href="#">Start Bootstrap</a>
204
+                </p>
205
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
206
+                <a class="btn btn-primary" href="blog-post.html">Read More <i class="fa fa-angle-right"></i></a>
207
+            </div>
208
+        </div>
209
+        <!-- /.row -->
210
+
211
+        <hr>
212
+
213
+        <!-- Pager -->
214
+        <div class="row">
215
+            <ul class="pager">
216
+                <li class="previous"><a href="#">&larr; Older</a>
217
+                </li>
218
+                <li class="next"><a href="#">Newer &rarr;</a>
219
+                </li>
220
+            </ul>
221
+        </div>
222
+        <!-- /.row -->
223
+
224
+        <hr>
225
+
226
+        <!-- Footer -->
227
+        <footer>
228
+            <div class="row">
229
+                <div class="col-lg-12">
230
+                    <p>Copyright &copy; Your Website 2014</p>
231
+                </div>
232
+            </div>
233
+        </footer>
234
+
235
+    </div>
236
+    <!-- /.container -->
237
+
238
+    <!-- jQuery -->
239
+    <script src="js/jquery.js"></script>
240
+
241
+    <!-- Bootstrap Core JavaScript -->
242
+    <script src="js/bootstrap.min.js"></script>
243
+
244
+</body>
245
+
246
+</html>

+ 306 - 0
blog-post.html

@@ -0,0 +1,306 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+
4
+<head>
5
+
6
+    <meta charset="utf-8">
7
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+    <meta name="viewport" content="width=device-width, initial-scale=1">
9
+    <meta name="description" content="">
10
+    <meta name="author" content="">
11
+
12
+    <title>Modern Business - Start Bootstrap Template</title>
13
+
14
+    <!-- Bootstrap Core CSS -->
15
+    <link href="css/bootstrap.min.css" rel="stylesheet">
16
+
17
+    <!-- Custom CSS -->
18
+    <link href="css/modern-business.css" rel="stylesheet">
19
+
20
+    <!-- Custom Fonts -->
21
+    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
22
+
23
+    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
24
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
25
+    <!--[if lt IE 9]>
26
+        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
27
+        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
28
+    <![endif]-->
29
+
30
+</head>
31
+
32
+<body>
33
+
34
+    <!-- Navigation -->
35
+    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
36
+        <div class="container">
37
+            <!-- Brand and toggle get grouped for better mobile display -->
38
+            <div class="navbar-header">
39
+                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
40
+                    <span class="sr-only">Toggle navigation</span>
41
+                    <span class="icon-bar"></span>
42
+                    <span class="icon-bar"></span>
43
+                    <span class="icon-bar"></span>
44
+                </button>
45
+                <a class="navbar-brand" href="index.html">Start Bootstrap</a>
46
+            </div>
47
+            <!-- Collect the nav links, forms, and other content for toggling -->
48
+            <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
49
+                <ul class="nav navbar-nav navbar-right">
50
+                    <li>
51
+                        <a href="about.html">About</a>
52
+                    </li>
53
+                    <li>
54
+                        <a href="services.html">Services</a>
55
+                    </li>
56
+                    <li>
57
+                        <a href="contact.html">Contact</a>
58
+                    </li>
59
+                    <li class="dropdown">
60
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Portfolio <b class="caret"></b></a>
61
+                        <ul class="dropdown-menu">
62
+                            <li>
63
+                                <a href="portfolio-1-col.html">1 Column Portfolio</a>
64
+                            </li>
65
+                            <li>
66
+                                <a href="portfolio-2-col.html">2 Column Portfolio</a>
67
+                            </li>
68
+                            <li>
69
+                                <a href="portfolio-3-col.html">3 Column Portfolio</a>
70
+                            </li>
71
+                            <li>
72
+                                <a href="portfolio-4-col.html">4 Column Portfolio</a>
73
+                            </li>
74
+                            <li>
75
+                                <a href="portfolio-item.html">Single Portfolio Item</a>
76
+                            </li>
77
+                        </ul>
78
+                    </li>
79
+                    <li class="dropdown active">
80
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Blog <b class="caret"></b></a>
81
+                        <ul class="dropdown-menu">
82
+                            <li>
83
+                                <a href="blog-home-1.html">Blog Home 1</a>
84
+                            </li>
85
+                            <li>
86
+                                <a href="blog-home-2.html">Blog Home 2</a>
87
+                            </li>
88
+                            <li class="active">
89
+                                <a href="blog-post.html">Blog Post</a>
90
+                            </li>
91
+                        </ul>
92
+                    </li>
93
+                    <li class="dropdown">
94
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Other Pages <b class="caret"></b></a>
95
+                        <ul class="dropdown-menu">
96
+                            <li>
97
+                                <a href="full-width.html">Full Width Page</a>
98
+                            </li>
99
+                            <li>
100
+                                <a href="sidebar.html">Sidebar Page</a>
101
+                            </li>
102
+                            <li>
103
+                                <a href="faq.html">FAQ</a>
104
+                            </li>
105
+                            <li>
106
+                                <a href="404.html">404</a>
107
+                            </li>
108
+                            <li>
109
+                                <a href="pricing.html">Pricing Table</a>
110
+                            </li>
111
+                        </ul>
112
+                    </li>
113
+                </ul>
114
+            </div>
115
+            <!-- /.navbar-collapse -->
116
+        </div>
117
+        <!-- /.container -->
118
+    </nav>
119
+
120
+    <!-- Page Content -->
121
+    <div class="container">
122
+
123
+        <!-- Page Heading/Breadcrumbs -->
124
+        <div class="row">
125
+            <div class="col-lg-12">
126
+                <h1 class="page-header">Blog Post
127
+                    <small>by <a href="#">Start Bootstrap</a>
128
+                    </small>
129
+                </h1>
130
+                <ol class="breadcrumb">
131
+                    <li><a href="index.html">Home</a>
132
+                    </li>
133
+                    <li class="active">Blog Post</li>
134
+                </ol>
135
+            </div>
136
+        </div>
137
+        <!-- /.row -->
138
+
139
+        <!-- Content Row -->
140
+        <div class="row">
141
+
142
+            <!-- Blog Post Content Column -->
143
+            <div class="col-lg-8">
144
+
145
+                <!-- Blog Post -->
146
+
147
+                <hr>
148
+
149
+                <!-- Date/Time -->
150
+                <p><i class="fa fa-clock-o"></i> Posted on August 24, 2013 at 9:00 PM</p>
151
+
152
+                <hr>
153
+
154
+                <!-- Preview Image -->
155
+                <img class="img-responsive" src="http://placehold.it/900x300" alt="">
156
+
157
+                <hr>
158
+
159
+                <!-- Post Content -->
160
+                <p class="lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ducimus, vero, obcaecati, aut, error quam sapiente nemo saepe quibusdam sit excepturi nam quia corporis eligendi eos magni recusandae laborum minus inventore?</p>
161
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut, tenetur natus doloremque laborum quos iste ipsum rerum obcaecati impedit odit illo dolorum ab tempora nihil dicta earum fugiat. Temporibus, voluptatibus.</p>
162
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eos, doloribus, dolorem iusto blanditiis unde eius illum consequuntur neque dicta incidunt ullam ea hic porro optio ratione repellat perspiciatis. Enim, iure!</p>
163
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Error, nostrum, aliquid, animi, ut quas placeat totam sunt tempora commodi nihil ullam alias modi dicta saepe minima ab quo voluptatem obcaecati?</p>
164
+                <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum, dolor quis. Sunt, ut, explicabo, aliquam tenetur ratione tempore quidem voluptates cupiditate voluptas illo saepe quaerat numquam recusandae? Qui, necessitatibus, est!</p>
165
+
166
+                <hr>
167
+
168
+                <!-- Blog Comments -->
169
+
170
+                <!-- Comments Form -->
171
+                <div class="well">
172
+                    <h4>Leave a Comment:</h4>
173
+                    <form role="form">
174
+                        <div class="form-group">
175
+                            <textarea class="form-control" rows="3"></textarea>
176
+                        </div>
177
+                        <button type="submit" class="btn btn-primary">Submit</button>
178
+                    </form>
179
+                </div>
180
+
181
+                <hr>
182
+
183
+                <!-- Posted Comments -->
184
+
185
+                <!-- Comment -->
186
+                <div class="media">
187
+                    <a class="pull-left" href="#">
188
+                        <img class="media-object" src="http://placehold.it/64x64" alt="">
189
+                    </a>
190
+                    <div class="media-body">
191
+                        <h4 class="media-heading">Start Bootstrap
192
+                            <small>August 25, 2014 at 9:30 PM</small>
193
+                        </h4>
194
+                        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
195
+                    </div>
196
+                </div>
197
+
198
+                <!-- Comment -->
199
+                <div class="media">
200
+                    <a class="pull-left" href="#">
201
+                        <img class="media-object" src="http://placehold.it/64x64" alt="">
202
+                    </a>
203
+                    <div class="media-body">
204
+                        <h4 class="media-heading">Start Bootstrap
205
+                            <small>August 25, 2014 at 9:30 PM</small>
206
+                        </h4>
207
+                        Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
208
+                        <!-- Nested Comment -->
209
+                        <div class="media">
210
+                            <a class="pull-left" href="#">
211
+                                <img class="media-object" src="http://placehold.it/64x64" alt="">
212
+                            </a>
213
+                            <div class="media-body">
214
+                                <h4 class="media-heading">Nested Start Bootstrap
215
+                                    <small>August 25, 2014 at 9:30 PM</small>
216
+                                </h4>
217
+                                Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
218
+                            </div>
219
+                        </div>
220
+                        <!-- End Nested Comment -->
221
+                    </div>
222
+                </div>
223
+
224
+            </div>
225
+
226
+            <!-- Blog Sidebar Widgets Column -->
227
+            <div class="col-md-4">
228
+
229
+                <!-- Blog Search Well -->
230
+                <div class="well">
231
+                    <h4>Blog Search</h4>
232
+                    <div class="input-group">
233
+                        <input type="text" class="form-control">
234
+                        <span class="input-group-btn">
235
+                            <button class="btn btn-default" type="button"><i class="fa fa-search"></i></button>
236
+                        </span>
237
+                    </div>
238
+                    <!-- /.input-group -->
239
+                </div>
240
+
241
+                <!-- Blog Categories Well -->
242
+                <div class="well">
243
+                    <h4>Blog Categories</h4>
244
+                    <div class="row">
245
+                        <div class="col-lg-6">
246
+                            <ul class="list-unstyled">
247
+                                <li><a href="#">Category Name</a>
248
+                                </li>
249
+                                <li><a href="#">Category Name</a>
250
+                                </li>
251
+                                <li><a href="#">Category Name</a>
252
+                                </li>
253
+                                <li><a href="#">Category Name</a>
254
+                                </li>
255
+                            </ul>
256
+                        </div>
257
+                        <div class="col-lg-6">
258
+                            <ul class="list-unstyled">
259
+                                <li><a href="#">Category Name</a>
260
+                                </li>
261
+                                <li><a href="#">Category Name</a>
262
+                                </li>
263
+                                <li><a href="#">Category Name</a>
264
+                                </li>
265
+                                <li><a href="#">Category Name</a>
266
+                                </li>
267
+                            </ul>
268
+                        </div>
269
+                    </div>
270
+                    <!-- /.row -->
271
+                </div>
272
+
273
+                <!-- Side Widget Well -->
274
+                <div class="well">
275
+                    <h4>Side Widget Well</h4>
276
+                    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore, perspiciatis adipisci accusamus laudantium odit aliquam repellat tempore quos aspernatur vero.</p>
277
+                </div>
278
+
279
+            </div>
280
+
281
+        </div>
282
+        <!-- /.row -->
283
+
284
+        <hr>
285
+
286
+        <!-- Footer -->
287
+        <footer>
288
+            <div class="row">
289
+                <div class="col-lg-12">
290
+                    <p>Copyright &copy; Your Website 2014</p>
291
+                </div>
292
+            </div>
293
+        </footer>
294
+
295
+    </div>
296
+    <!-- /.container -->
297
+
298
+    <!-- jQuery -->
299
+    <script src="js/jquery.js"></script>
300
+
301
+    <!-- Bootstrap Core JavaScript -->
302
+    <script src="js/bootstrap.min.js"></script>
303
+
304
+</body>
305
+
306
+</html>

+ 93 - 0
bootstrap/css/modern-business.css

@@ -0,0 +1,93 @@
1
+/*!
2
+ * Start Bootstrap - Modern Business (http://startbootstrap.com/)
3
+ * Copyright 2013-2016 Start Bootstrap
4
+ * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE)
5
+ */
6
+
7
+/* Global Styles */
8
+
9
+html,
10
+body {
11
+    height: 100%;
12
+}
13
+
14
+body {
15
+    padding-top: 50px; /* Required padding for .navbar-fixed-top. Remove if using .navbar-static-top. Change if height of navigation changes. */
16
+}
17
+
18
+.img-portfolio {
19
+    margin-bottom: 30px;
20
+}
21
+
22
+.img-hover:hover {
23
+    opacity: 0.8;
24
+}
25
+
26
+/* Home Page Carousel */
27
+
28
+header.carousel {
29
+    height: 50%;
30
+}
31
+
32
+header.carousel .item,
33
+header.carousel .item.active,
34
+header.carousel .carousel-inner {
35
+    height: 100%;
36
+}
37
+
38
+header.carousel .fill {
39
+    width: 100%;
40
+    height: 100%;
41
+    background-position: center;
42
+    background-size: cover;
43
+}
44
+
45
+/* 404 Page Styles */
46
+
47
+.error-404 {
48
+    font-size: 100px;
49
+}
50
+
51
+/* Pricing Page Styles */
52
+
53
+.price {
54
+    display: block;
55
+    font-size: 50px;
56
+    line-height: 50px;
57
+}
58
+
59
+.price sup {
60
+    top: -20px;
61
+    left: 2px;
62
+    font-size: 20px;
63
+}
64
+
65
+.period {
66
+    display: block;
67
+    font-style: italic;
68
+}
69
+
70
+/* Footer Styles */
71
+
72
+footer {
73
+    margin: 50px 0;
74
+}
75
+
76
+/* Responsive Styles */
77
+
78
+@media(max-width:991px) {
79
+    .customer-img,
80
+    .img-related {
81
+        margin-bottom: 30px;
82
+    }
83
+}
84
+
85
+@media(max-width:767px) {
86
+    .img-portfolio {
87
+        margin-bottom: 15px;
88
+    }
89
+
90
+    header.carousel .carousel {
91
+        height: 70%;
92
+    }
93
+}

+ 0 - 134
carousel.css

@@ -1,134 +0,0 @@
1
-/* GLOBAL STYLES
2
--------------------------------------------------- */
3
-/* Padding below the footer and lighter body text */
4
-
5
-body {
6
-  padding-bottom: 40px;
7
-  color: #5a5a5a;
8
-}
9
-
10
-
11
-/* CUSTOMIZE THE NAVBAR
12
--------------------------------------------------- */
13
-
14
-/* Special class on .container surrounding .navbar, used for positioning it into place. */
15
-.navbar-wrapper {
16
-  position: absolute;
17
-  top: 0;
18
-  right: 0;
19
-  left: 0;
20
-  z-index: 20;
21
-}
22
-
23
-/* Flip around the padding for proper display in narrow viewports */
24
-.navbar-wrapper > .container {
25
-  padding-right: 0;
26
-  padding-left: 0;
27
-}
28
-.navbar-wrapper .navbar {
29
-  padding-right: 15px;
30
-  padding-left: 15px;
31
-}
32
-.navbar-wrapper .navbar .container {
33
-  width: auto;
34
-}
35
-
36
-
37
-/* CUSTOMIZE THE CAROUSEL
38
--------------------------------------------------- */
39
-
40
-/* Carousel base class */
41
-.carousel {
42
-  height: 500px;
43
-  margin-bottom: 60px;
44
-}
45
-/* Since positioning the image, we need to help out the caption */
46
-.carousel-caption {
47
-  z-index: 10;
48
-}
49
-
50
-/* Declare heights because of positioning of img element */
51
-.carousel .item {
52
-  height: 500px;
53
-  background-color: #777;
54
-}
55
-.carousel-inner > .item > img {
56
-  position: absolute;
57
-  top: 0;
58
-  left: 0;
59
-  min-width: 100%;
60
-  height: 500px;
61
-}
62
-
63
-
64
-/* MARKETING CONTENT
65
--------------------------------------------------- */
66
-
67
-/* Center align the text within the three columns below the carousel */
68
-.marketing .col-lg-4 {
69
-  margin-bottom: 20px;
70
-  text-align: center;
71
-}
72
-.marketing h2 {
73
-  font-weight: normal;
74
-}
75
-.marketing .col-lg-4 p {
76
-  margin-right: 10px;
77
-  margin-left: 10px;
78
-}
79
-
80
-
81
-/* Featurettes
82
-------------------------- */
83
-
84
-.featurette-divider {
85
-  margin: 80px 0; /* Space out the Bootstrap <hr> more */
86
-}
87
-
88
-/* Thin out the marketing headings */
89
-.featurette-heading {
90
-  font-weight: 300;
91
-  line-height: 1;
92
-  letter-spacing: -1px;
93
-}
94
-
95
-
96
-/* RESPONSIVE CSS
97
--------------------------------------------------- */
98
-
99
-@media (min-width: 768px) {
100
-  /* Navbar positioning foo */
101
-  .navbar-wrapper {
102
-    margin-top: 20px;
103
-  }
104
-  .navbar-wrapper .container {
105
-    padding-right: 15px;
106
-    padding-left: 15px;
107
-  }
108
-  .navbar-wrapper .navbar {
109
-    padding-right: 0;
110
-    padding-left: 0;
111
-  }
112
-
113
-  /* The navbar becomes detached from the top, so we round the corners */
114
-  .navbar-wrapper .navbar {
115
-    border-radius: 4px;
116
-  }
117
-
118
-  /* Bump up size of carousel content */
119
-  .carousel-caption p {
120
-    margin-bottom: 20px;
121
-    font-size: 21px;
122
-    line-height: 1.4;
123
-  }
124
-
125
-  .featurette-heading {
126
-    font-size: 50px;
127
-  }
128
-}
129
-
130
-@media (min-width: 992px) {
131
-  .featurette-heading {
132
-    margin-top: 120px;
133
-  }
134
-}

+ 0 - 199
carousel.html

@@ -1,199 +0,0 @@
1
-<!DOCTYPE html>
2
-<html lang="en">
3
-    <head>
4
-        <meta charset="utf-8">
5
-        <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
-        <meta name="viewport" content="width=device-width, initial-scale=1">
7
-        <meta name="description" content="">
8
-        <meta name="author" content="">
9
-        <title>Carousel Template for Bootstrap</title>
10
-        <!-- Bootstrap core CSS -->
11
-        <link href="bootstrap/css/bootstrap.css" rel="stylesheet">
12
-        <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
13
-        <!--[if lt IE 9]>
14
-      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
15
-      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
16
-    <![endif]-->
17
-        <!-- Custom styles for this template -->
18
-        <link href="carousel.css" rel="stylesheet">
19
-    </head>
20
-    <!-- NAVBAR
21
-================================================== -->
22
-    <body>
23
-        <div class="navbar-wrapper">
24
-            <div class="container">
25
-                <nav class="navbar navbar-inverse navbar-static-top">
26
-                    <div class="container">
27
-                        <div class="navbar-header">
28
-                            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
29
-                                <span class="sr-only">Toggle navigation</span>
30
-                                <span class="icon-bar"></span>
31
-                                <span class="icon-bar"></span>
32
-                                <span class="icon-bar"></span>
33
-                            </button>
34
-                            <a class="navbar-brand" href="#">Dowse</a>
35
-                        </div>
36
-                        <div id="navbar" class="navbar-collapse collapse">
37
-                            <ul class="nav navbar-nav">
38
-                                <li class="active">
39
-                                    <a href="#">Home</a>
40
-                                </li>
41
-                                <li>
42
-                                    <a href="#about">About</a>
43
-                                </li>
44
-                                <li>
45
-                                    <a href="#contact">Contact</a>
46
-                                </li>
47
-                                <li class="dropdown">
48
-                                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
49
-                                    <ul class="dropdown-menu">
50
-                                        <li>
51
-                                            <a href="#">Action</a>
52
-                                        </li>