28 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/conecta.php:
--------------------------------------------------------------------------------
1 | li > a:hover,
188 | .dropdown-menu > li > a:focus {
189 | background-color: #e8e8e8;
190 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8));
191 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
192 | background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
193 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
194 | background-repeat: repeat-x;
195 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
196 | }
197 |
198 | .dropdown-menu > .active > a,
199 | .dropdown-menu > .active > a:hover,
200 | .dropdown-menu > .active > a:focus {
201 | background-color: #357ebd;
202 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
203 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
204 | background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
205 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
206 | background-repeat: repeat-x;
207 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
208 | }
209 |
210 | .navbar-default {
211 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8));
212 | background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
213 | background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
214 | background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
215 | background-repeat: repeat-x;
216 | border-radius: 4px;
217 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
218 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
219 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
220 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
221 | }
222 |
223 | .navbar-default .navbar-nav > .active > a {
224 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f3f3f3));
225 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
226 | background-image: -moz-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
227 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
228 | background-repeat: repeat-x;
229 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
230 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
231 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
232 | }
233 |
234 | .navbar-brand,
235 | .navbar-nav > li > a {
236 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
237 | }
238 |
239 | .navbar-inverse {
240 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222));
241 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
242 | background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%);
243 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
244 | background-repeat: repeat-x;
245 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
246 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
247 | }
248 |
249 | .navbar-inverse .navbar-nav > .active > a {
250 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#222222), to(#282828));
251 | background-image: -webkit-linear-gradient(top, #222222 0%, #282828 100%);
252 | background-image: -moz-linear-gradient(top, #222222 0%, #282828 100%);
253 | background-image: linear-gradient(to bottom, #222222 0%, #282828 100%);
254 | background-repeat: repeat-x;
255 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
256 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
257 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
258 | }
259 |
260 | .navbar-inverse .navbar-brand,
261 | .navbar-inverse .navbar-nav > li > a {
262 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
263 | }
264 |
265 | .navbar-static-top,
266 | .navbar-fixed-top,
267 | .navbar-fixed-bottom {
268 | border-radius: 0;
269 | }
270 |
271 | .alert {
272 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
273 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
274 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
275 | }
276 |
277 | .alert-success {
278 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc));
279 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
280 | background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
281 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
282 | background-repeat: repeat-x;
283 | border-color: #b2dba1;
284 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
285 | }
286 |
287 | .alert-info {
288 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0));
289 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
290 | background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
291 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
292 | background-repeat: repeat-x;
293 | border-color: #9acfea;
294 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
295 | }
296 |
297 | .alert-warning {
298 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0));
299 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
300 | background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
301 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
302 | background-repeat: repeat-x;
303 | border-color: #f5e79e;
304 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
305 | }
306 |
307 | .alert-danger {
308 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3));
309 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
310 | background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
311 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
312 | background-repeat: repeat-x;
313 | border-color: #dca7a7;
314 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
315 | }
316 |
317 | .progress {
318 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5));
319 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
320 | background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
321 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
322 | background-repeat: repeat-x;
323 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
324 | }
325 |
326 | .progress-bar {
327 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9));
328 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
329 | background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%);
330 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
331 | background-repeat: repeat-x;
332 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
333 | }
334 |
335 | .progress-bar-success {
336 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44));
337 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
338 | background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%);
339 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
340 | background-repeat: repeat-x;
341 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
342 | }
343 |
344 | .progress-bar-info {
345 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5));
346 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
347 | background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
348 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
349 | background-repeat: repeat-x;
350 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
351 | }
352 |
353 | .progress-bar-warning {
354 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f));
355 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
356 | background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
357 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
358 | background-repeat: repeat-x;
359 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
360 | }
361 |
362 | .progress-bar-danger {
363 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c));
364 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
365 | background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%);
366 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
367 | background-repeat: repeat-x;
368 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
369 | }
370 |
371 | .list-group {
372 | border-radius: 4px;
373 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
374 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
375 | }
376 |
377 | .list-group-item.active,
378 | .list-group-item.active:hover,
379 | .list-group-item.active:focus {
380 | text-shadow: 0 -1px 0 #3071a9;
381 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3));
382 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
383 | background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%);
384 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
385 | background-repeat: repeat-x;
386 | border-color: #3278b3;
387 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
388 | }
389 |
390 | .panel {
391 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
392 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
393 | }
394 |
395 | .panel-default > .panel-heading {
396 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8));
397 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
398 | background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
399 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
400 | background-repeat: repeat-x;
401 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
402 | }
403 |
404 | .panel-primary > .panel-heading {
405 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd));
406 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
407 | background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%);
408 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
409 | background-repeat: repeat-x;
410 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
411 | }
412 |
413 | .panel-success > .panel-heading {
414 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6));
415 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
416 | background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
417 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
418 | background-repeat: repeat-x;
419 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
420 | }
421 |
422 | .panel-info > .panel-heading {
423 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3));
424 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
425 | background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
426 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
427 | background-repeat: repeat-x;
428 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
429 | }
430 |
431 | .panel-warning > .panel-heading {
432 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc));
433 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
434 | background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
435 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
436 | background-repeat: repeat-x;
437 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
438 | }
439 |
440 | .panel-danger > .panel-heading {
441 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc));
442 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
443 | background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
444 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
445 | background-repeat: repeat-x;
446 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
447 | }
448 |
449 | .well {
450 | background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5));
451 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
452 | background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
453 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
454 | background-repeat: repeat-x;
455 | border-color: #dcdcdc;
456 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
457 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
458 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
459 | }
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/css/bootstrap-theme.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.1 by @fat and @mdo
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | *
6 | * Designed and built with all the love in the world by @mdo and @fat.
7 | */
8 |
9 | .btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:active,.btn.active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#e0e0e0));background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-moz-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe0e0e0',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#2d6ca2));background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:-moz-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);background-repeat:repeat-x;border-color:#2b669a;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff2d6ca2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#419641));background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff419641',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#eb9316));background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffeb9316',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c12e2a));background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);background-repeat:repeat-x;border-color:#b92c28;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc12e2a',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#2aabd2));background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2aabd2',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-color:#e8e8e8;background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-color:#357ebd;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.navbar-default{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fff),to(#f8f8f8));background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-moz-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff8f8f8',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f3f3f3));background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff3f3f3',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-gradient(linear,left 0,left 100%,from(#3c3c3c),to(#222));background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-moz-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-gradient(linear,left 0,left 100%,from(#222),to(#282828));background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:-moz-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff282828',GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#c8e5bc));background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border-color:#b2dba1;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffc8e5bc',GradientType=0)}.alert-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#b9def0));background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffb9def0',GradientType=0)}.alert-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#f8efc0));background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;border-color:#f5e79e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fff8efc0',GradientType=0)}.alert-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#e7c3c3));background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-moz-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;border-color:#dca7a7;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffe7c3c3',GradientType=0)}.progress{background-image:-webkit-gradient(linear,left 0,left 100%,from(#ebebeb),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb',endColorstr='#fff5f5f5',GradientType=0)}.progress-bar{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3071a9));background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:-moz-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3071a9',GradientType=0)}.progress-bar-success{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5cb85c),to(#449d44));background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-moz-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',endColorstr='#ff449d44',GradientType=0)}.progress-bar-info{background-image:-webkit-gradient(linear,left 0,left 100%,from(#5bc0de),to(#31b0d5));background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-moz-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff31b0d5',GradientType=0)}.progress-bar-warning{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f0ad4e),to(#ec971f));background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-moz-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',endColorstr='#ffec971f',GradientType=0)}.progress-bar-danger{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9534f),to(#c9302c));background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-moz-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',endColorstr='#ffc9302c',GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#3278b3));background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:-moz-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff3278b3',GradientType=0)}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f5f5f5),to(#e8e8e8));background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-moz-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#ffe8e8e8',GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#428bca),to(#357ebd));background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:-moz-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca',endColorstr='#ff357ebd',GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#dff0d8),to(#d0e9c6));background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-moz-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',endColorstr='#ffd0e9c6',GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#d9edf7),to(#c4e3f3));background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-moz-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',endColorstr='#ffc4e3f3',GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#fcf8e3),to(#faf2cc));background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-moz-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',endColorstr='#fffaf2cc',GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-gradient(linear,left 0,left 100%,from(#f2dede),to(#ebcccc));background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-moz-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede',endColorstr='#ffebcccc',GradientType=0)}.well{background-image:-webkit-gradient(linear,left 0,left 100%,from(#e8e8e8),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-moz-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/css/loja.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 50px;
3 | }
4 | .principal {
5 | padding: 40px 15px;
6 | text-align: center;
7 | }
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alura-cursos/php-mysql-e-fundamentos-da-web/099c04caa78ca1a48e507d30eef04239d2da2211/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alura-cursos/php-mysql-e-fundamentos-da-web/099c04caa78ca1a48e507d30eef04239d2da2211/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alura-cursos/php-mysql-e-fundamentos-da-web/099c04caa78ca1a48e507d30eef04239d2da2211/loja-fim-apos-exercicios/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/index.php:
--------------------------------------------------------------------------------
1 |
2 |
Bem vindo!
3 |
4 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/js/bootstrap.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.1 by @fat and @mdo
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | *
6 | * Designed and built with all the love in the world by @mdo and @fat.
7 | */
8 |
9 | if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }
10 |
11 | /* ========================================================================
12 | * Bootstrap: transition.js v3.0.0
13 | * http://getbootstrap.com/javascript/#transitions
14 | * ========================================================================
15 | * Copyright 2013 Twitter, Inc.
16 | *
17 | * Licensed under the Apache License, Version 2.0 (the "License");
18 | * you may not use this file except in compliance with the License.
19 | * You may obtain a copy of the License at
20 | *
21 | * http://www.apache.org/licenses/LICENSE-2.0
22 | *
23 | * Unless required by applicable law or agreed to in writing, software
24 | * distributed under the License is distributed on an "AS IS" BASIS,
25 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26 | * See the License for the specific language governing permissions and
27 | * limitations under the License.
28 | * ======================================================================== */
29 |
30 |
31 | +function ($) { "use strict";
32 |
33 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
34 | // ============================================================
35 |
36 | function transitionEnd() {
37 | var el = document.createElement('bootstrap')
38 |
39 | var transEndEventNames = {
40 | 'WebkitTransition' : 'webkitTransitionEnd'
41 | , 'MozTransition' : 'transitionend'
42 | , 'OTransition' : 'oTransitionEnd otransitionend'
43 | , 'transition' : 'transitionend'
44 | }
45 |
46 | for (var name in transEndEventNames) {
47 | if (el.style[name] !== undefined) {
48 | return { end: transEndEventNames[name] }
49 | }
50 | }
51 | }
52 |
53 | // http://blog.alexmaccaw.com/css-transitions
54 | $.fn.emulateTransitionEnd = function (duration) {
55 | var called = false, $el = this
56 | $(this).one($.support.transition.end, function () { called = true })
57 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
58 | setTimeout(callback, duration)
59 | return this
60 | }
61 |
62 | $(function () {
63 | $.support.transition = transitionEnd()
64 | })
65 |
66 | }(window.jQuery);
67 |
68 | /* ========================================================================
69 | * Bootstrap: alert.js v3.0.0
70 | * http://getbootstrap.com/javascript/#alerts
71 | * ========================================================================
72 | * Copyright 2013 Twitter, Inc.
73 | *
74 | * Licensed under the Apache License, Version 2.0 (the "License");
75 | * you may not use this file except in compliance with the License.
76 | * You may obtain a copy of the License at
77 | *
78 | * http://www.apache.org/licenses/LICENSE-2.0
79 | *
80 | * Unless required by applicable law or agreed to in writing, software
81 | * distributed under the License is distributed on an "AS IS" BASIS,
82 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
83 | * See the License for the specific language governing permissions and
84 | * limitations under the License.
85 | * ======================================================================== */
86 |
87 |
88 | +function ($) { "use strict";
89 |
90 | // ALERT CLASS DEFINITION
91 | // ======================
92 |
93 | var dismiss = '[data-dismiss="alert"]'
94 | var Alert = function (el) {
95 | $(el).on('click', dismiss, this.close)
96 | }
97 |
98 | Alert.prototype.close = function (e) {
99 | var $this = $(this)
100 | var selector = $this.attr('data-target')
101 |
102 | if (!selector) {
103 | selector = $this.attr('href')
104 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
105 | }
106 |
107 | var $parent = $(selector)
108 |
109 | if (e) e.preventDefault()
110 |
111 | if (!$parent.length) {
112 | $parent = $this.hasClass('alert') ? $this : $this.parent()
113 | }
114 |
115 | $parent.trigger(e = $.Event('close.bs.alert'))
116 |
117 | if (e.isDefaultPrevented()) return
118 |
119 | $parent.removeClass('in')
120 |
121 | function removeElement() {
122 | $parent.trigger('closed.bs.alert').remove()
123 | }
124 |
125 | $.support.transition && $parent.hasClass('fade') ?
126 | $parent
127 | .one($.support.transition.end, removeElement)
128 | .emulateTransitionEnd(150) :
129 | removeElement()
130 | }
131 |
132 |
133 | // ALERT PLUGIN DEFINITION
134 | // =======================
135 |
136 | var old = $.fn.alert
137 |
138 | $.fn.alert = function (option) {
139 | return this.each(function () {
140 | var $this = $(this)
141 | var data = $this.data('bs.alert')
142 |
143 | if (!data) $this.data('bs.alert', (data = new Alert(this)))
144 | if (typeof option == 'string') data[option].call($this)
145 | })
146 | }
147 |
148 | $.fn.alert.Constructor = Alert
149 |
150 |
151 | // ALERT NO CONFLICT
152 | // =================
153 |
154 | $.fn.alert.noConflict = function () {
155 | $.fn.alert = old
156 | return this
157 | }
158 |
159 |
160 | // ALERT DATA-API
161 | // ==============
162 |
163 | $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
164 |
165 | }(window.jQuery);
166 |
167 | /* ========================================================================
168 | * Bootstrap: button.js v3.0.0
169 | * http://getbootstrap.com/javascript/#buttons
170 | * ========================================================================
171 | * Copyright 2013 Twitter, Inc.
172 | *
173 | * Licensed under the Apache License, Version 2.0 (the "License");
174 | * you may not use this file except in compliance with the License.
175 | * You may obtain a copy of the License at
176 | *
177 | * http://www.apache.org/licenses/LICENSE-2.0
178 | *
179 | * Unless required by applicable law or agreed to in writing, software
180 | * distributed under the License is distributed on an "AS IS" BASIS,
181 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
182 | * See the License for the specific language governing permissions and
183 | * limitations under the License.
184 | * ======================================================================== */
185 |
186 |
187 | +function ($) { "use strict";
188 |
189 | // BUTTON PUBLIC CLASS DEFINITION
190 | // ==============================
191 |
192 | var Button = function (element, options) {
193 | this.$element = $(element)
194 | this.options = $.extend({}, Button.DEFAULTS, options)
195 | }
196 |
197 | Button.DEFAULTS = {
198 | loadingText: 'loading...'
199 | }
200 |
201 | Button.prototype.setState = function (state) {
202 | var d = 'disabled'
203 | var $el = this.$element
204 | var val = $el.is('input') ? 'val' : 'html'
205 | var data = $el.data()
206 |
207 | state = state + 'Text'
208 |
209 | if (!data.resetText) $el.data('resetText', $el[val]())
210 |
211 | $el[val](data[state] || this.options[state])
212 |
213 | // push to event loop to allow forms to submit
214 | setTimeout(function () {
215 | state == 'loadingText' ?
216 | $el.addClass(d).attr(d, d) :
217 | $el.removeClass(d).removeAttr(d);
218 | }, 0)
219 | }
220 |
221 | Button.prototype.toggle = function () {
222 | var $parent = this.$element.closest('[data-toggle="buttons"]')
223 |
224 | if ($parent.length) {
225 | var $input = this.$element.find('input')
226 | .prop('checked', !this.$element.hasClass('active'))
227 | .trigger('change')
228 | if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
229 | }
230 |
231 | this.$element.toggleClass('active')
232 | }
233 |
234 |
235 | // BUTTON PLUGIN DEFINITION
236 | // ========================
237 |
238 | var old = $.fn.button
239 |
240 | $.fn.button = function (option) {
241 | return this.each(function () {
242 | var $this = $(this)
243 | var data = $this.data('bs.button')
244 | var options = typeof option == 'object' && option
245 |
246 | if (!data) $this.data('bs.button', (data = new Button(this, options)))
247 |
248 | if (option == 'toggle') data.toggle()
249 | else if (option) data.setState(option)
250 | })
251 | }
252 |
253 | $.fn.button.Constructor = Button
254 |
255 |
256 | // BUTTON NO CONFLICT
257 | // ==================
258 |
259 | $.fn.button.noConflict = function () {
260 | $.fn.button = old
261 | return this
262 | }
263 |
264 |
265 | // BUTTON DATA-API
266 | // ===============
267 |
268 | $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
269 | var $btn = $(e.target)
270 | if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
271 | $btn.button('toggle')
272 | e.preventDefault()
273 | })
274 |
275 | }(window.jQuery);
276 |
277 | /* ========================================================================
278 | * Bootstrap: carousel.js v3.0.0
279 | * http://getbootstrap.com/javascript/#carousel
280 | * ========================================================================
281 | * Copyright 2013 Twitter, Inc.
282 | *
283 | * Licensed under the Apache License, Version 2.0 (the "License");
284 | * you may not use this file except in compliance with the License.
285 | * You may obtain a copy of the License at
286 | *
287 | * http://www.apache.org/licenses/LICENSE-2.0
288 | *
289 | * Unless required by applicable law or agreed to in writing, software
290 | * distributed under the License is distributed on an "AS IS" BASIS,
291 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
292 | * See the License for the specific language governing permissions and
293 | * limitations under the License.
294 | * ======================================================================== */
295 |
296 |
297 | +function ($) { "use strict";
298 |
299 | // CAROUSEL CLASS DEFINITION
300 | // =========================
301 |
302 | var Carousel = function (element, options) {
303 | this.$element = $(element)
304 | this.$indicators = this.$element.find('.carousel-indicators')
305 | this.options = options
306 | this.paused =
307 | this.sliding =
308 | this.interval =
309 | this.$active =
310 | this.$items = null
311 |
312 | this.options.pause == 'hover' && this.$element
313 | .on('mouseenter', $.proxy(this.pause, this))
314 | .on('mouseleave', $.proxy(this.cycle, this))
315 | }
316 |
317 | Carousel.DEFAULTS = {
318 | interval: 5000
319 | , pause: 'hover'
320 | , wrap: true
321 | }
322 |
323 | Carousel.prototype.cycle = function (e) {
324 | e || (this.paused = false)
325 |
326 | this.interval && clearInterval(this.interval)
327 |
328 | this.options.interval
329 | && !this.paused
330 | && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
331 |
332 | return this
333 | }
334 |
335 | Carousel.prototype.getActiveIndex = function () {
336 | this.$active = this.$element.find('.item.active')
337 | this.$items = this.$active.parent().children()
338 |
339 | return this.$items.index(this.$active)
340 | }
341 |
342 | Carousel.prototype.to = function (pos) {
343 | var that = this
344 | var activeIndex = this.getActiveIndex()
345 |
346 | if (pos > (this.$items.length - 1) || pos < 0) return
347 |
348 | if (this.sliding) return this.$element.one('slid', function () { that.to(pos) })
349 | if (activeIndex == pos) return this.pause().cycle()
350 |
351 | return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
352 | }
353 |
354 | Carousel.prototype.pause = function (e) {
355 | e || (this.paused = true)
356 |
357 | if (this.$element.find('.next, .prev').length && $.support.transition.end) {
358 | this.$element.trigger($.support.transition.end)
359 | this.cycle(true)
360 | }
361 |
362 | this.interval = clearInterval(this.interval)
363 |
364 | return this
365 | }
366 |
367 | Carousel.prototype.next = function () {
368 | if (this.sliding) return
369 | return this.slide('next')
370 | }
371 |
372 | Carousel.prototype.prev = function () {
373 | if (this.sliding) return
374 | return this.slide('prev')
375 | }
376 |
377 | Carousel.prototype.slide = function (type, next) {
378 | var $active = this.$element.find('.item.active')
379 | var $next = next || $active[type]()
380 | var isCycling = this.interval
381 | var direction = type == 'next' ? 'left' : 'right'
382 | var fallback = type == 'next' ? 'first' : 'last'
383 | var that = this
384 |
385 | if (!$next.length) {
386 | if (!this.options.wrap) return
387 | $next = this.$element.find('.item')[fallback]()
388 | }
389 |
390 | this.sliding = true
391 |
392 | isCycling && this.pause()
393 |
394 | var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
395 |
396 | if ($next.hasClass('active')) return
397 |
398 | if (this.$indicators.length) {
399 | this.$indicators.find('.active').removeClass('active')
400 | this.$element.one('slid', function () {
401 | var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
402 | $nextIndicator && $nextIndicator.addClass('active')
403 | })
404 | }
405 |
406 | if ($.support.transition && this.$element.hasClass('slide')) {
407 | this.$element.trigger(e)
408 | if (e.isDefaultPrevented()) return
409 | $next.addClass(type)
410 | $next[0].offsetWidth // force reflow
411 | $active.addClass(direction)
412 | $next.addClass(direction)
413 | $active
414 | .one($.support.transition.end, function () {
415 | $next.removeClass([type, direction].join(' ')).addClass('active')
416 | $active.removeClass(['active', direction].join(' '))
417 | that.sliding = false
418 | setTimeout(function () { that.$element.trigger('slid') }, 0)
419 | })
420 | .emulateTransitionEnd(600)
421 | } else {
422 | this.$element.trigger(e)
423 | if (e.isDefaultPrevented()) return
424 | $active.removeClass('active')
425 | $next.addClass('active')
426 | this.sliding = false
427 | this.$element.trigger('slid')
428 | }
429 |
430 | isCycling && this.cycle()
431 |
432 | return this
433 | }
434 |
435 |
436 | // CAROUSEL PLUGIN DEFINITION
437 | // ==========================
438 |
439 | var old = $.fn.carousel
440 |
441 | $.fn.carousel = function (option) {
442 | return this.each(function () {
443 | var $this = $(this)
444 | var data = $this.data('bs.carousel')
445 | var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
446 | var action = typeof option == 'string' ? option : options.slide
447 |
448 | if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
449 | if (typeof option == 'number') data.to(option)
450 | else if (action) data[action]()
451 | else if (options.interval) data.pause().cycle()
452 | })
453 | }
454 |
455 | $.fn.carousel.Constructor = Carousel
456 |
457 |
458 | // CAROUSEL NO CONFLICT
459 | // ====================
460 |
461 | $.fn.carousel.noConflict = function () {
462 | $.fn.carousel = old
463 | return this
464 | }
465 |
466 |
467 | // CAROUSEL DATA-API
468 | // =================
469 |
470 | $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
471 | var $this = $(this), href
472 | var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
473 | var options = $.extend({}, $target.data(), $this.data())
474 | var slideIndex = $this.attr('data-slide-to')
475 | if (slideIndex) options.interval = false
476 |
477 | $target.carousel(options)
478 |
479 | if (slideIndex = $this.attr('data-slide-to')) {
480 | $target.data('bs.carousel').to(slideIndex)
481 | }
482 |
483 | e.preventDefault()
484 | })
485 |
486 | $(window).on('load', function () {
487 | $('[data-ride="carousel"]').each(function () {
488 | var $carousel = $(this)
489 | $carousel.carousel($carousel.data())
490 | })
491 | })
492 |
493 | }(window.jQuery);
494 |
495 | /* ========================================================================
496 | * Bootstrap: collapse.js v3.0.0
497 | * http://getbootstrap.com/javascript/#collapse
498 | * ========================================================================
499 | * Copyright 2013 Twitter, Inc.
500 | *
501 | * Licensed under the Apache License, Version 2.0 (the "License");
502 | * you may not use this file except in compliance with the License.
503 | * You may obtain a copy of the License at
504 | *
505 | * http://www.apache.org/licenses/LICENSE-2.0
506 | *
507 | * Unless required by applicable law or agreed to in writing, software
508 | * distributed under the License is distributed on an "AS IS" BASIS,
509 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
510 | * See the License for the specific language governing permissions and
511 | * limitations under the License.
512 | * ======================================================================== */
513 |
514 |
515 | +function ($) { "use strict";
516 |
517 | // COLLAPSE PUBLIC CLASS DEFINITION
518 | // ================================
519 |
520 | var Collapse = function (element, options) {
521 | this.$element = $(element)
522 | this.options = $.extend({}, Collapse.DEFAULTS, options)
523 | this.transitioning = null
524 |
525 | if (this.options.parent) this.$parent = $(this.options.parent)
526 | if (this.options.toggle) this.toggle()
527 | }
528 |
529 | Collapse.DEFAULTS = {
530 | toggle: true
531 | }
532 |
533 | Collapse.prototype.dimension = function () {
534 | var hasWidth = this.$element.hasClass('width')
535 | return hasWidth ? 'width' : 'height'
536 | }
537 |
538 | Collapse.prototype.show = function () {
539 | if (this.transitioning || this.$element.hasClass('in')) return
540 |
541 | var startEvent = $.Event('show.bs.collapse')
542 | this.$element.trigger(startEvent)
543 | if (startEvent.isDefaultPrevented()) return
544 |
545 | var actives = this.$parent && this.$parent.find('> .panel > .in')
546 |
547 | if (actives && actives.length) {
548 | var hasData = actives.data('bs.collapse')
549 | if (hasData && hasData.transitioning) return
550 | actives.collapse('hide')
551 | hasData || actives.data('bs.collapse', null)
552 | }
553 |
554 | var dimension = this.dimension()
555 |
556 | this.$element
557 | .removeClass('collapse')
558 | .addClass('collapsing')
559 | [dimension](0)
560 |
561 | this.transitioning = 1
562 |
563 | var complete = function () {
564 | this.$element
565 | .removeClass('collapsing')
566 | .addClass('in')
567 | [dimension]('auto')
568 | this.transitioning = 0
569 | this.$element.trigger('shown.bs.collapse')
570 | }
571 |
572 | if (!$.support.transition) return complete.call(this)
573 |
574 | var scrollSize = $.camelCase(['scroll', dimension].join('-'))
575 |
576 | this.$element
577 | .one($.support.transition.end, $.proxy(complete, this))
578 | .emulateTransitionEnd(350)
579 | [dimension](this.$element[0][scrollSize])
580 | }
581 |
582 | Collapse.prototype.hide = function () {
583 | if (this.transitioning || !this.$element.hasClass('in')) return
584 |
585 | var startEvent = $.Event('hide.bs.collapse')
586 | this.$element.trigger(startEvent)
587 | if (startEvent.isDefaultPrevented()) return
588 |
589 | var dimension = this.dimension()
590 |
591 | this.$element
592 | [dimension](this.$element[dimension]())
593 | [0].offsetHeight
594 |
595 | this.$element
596 | .addClass('collapsing')
597 | .removeClass('collapse')
598 | .removeClass('in')
599 |
600 | this.transitioning = 1
601 |
602 | var complete = function () {
603 | this.transitioning = 0
604 | this.$element
605 | .trigger('hidden.bs.collapse')
606 | .removeClass('collapsing')
607 | .addClass('collapse')
608 | }
609 |
610 | if (!$.support.transition) return complete.call(this)
611 |
612 | this.$element
613 | [dimension](0)
614 | .one($.support.transition.end, $.proxy(complete, this))
615 | .emulateTransitionEnd(350)
616 | }
617 |
618 | Collapse.prototype.toggle = function () {
619 | this[this.$element.hasClass('in') ? 'hide' : 'show']()
620 | }
621 |
622 |
623 | // COLLAPSE PLUGIN DEFINITION
624 | // ==========================
625 |
626 | var old = $.fn.collapse
627 |
628 | $.fn.collapse = function (option) {
629 | return this.each(function () {
630 | var $this = $(this)
631 | var data = $this.data('bs.collapse')
632 | var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
633 |
634 | if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
635 | if (typeof option == 'string') data[option]()
636 | })
637 | }
638 |
639 | $.fn.collapse.Constructor = Collapse
640 |
641 |
642 | // COLLAPSE NO CONFLICT
643 | // ====================
644 |
645 | $.fn.collapse.noConflict = function () {
646 | $.fn.collapse = old
647 | return this
648 | }
649 |
650 |
651 | // COLLAPSE DATA-API
652 | // =================
653 |
654 | $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
655 | var $this = $(this), href
656 | var target = $this.attr('data-target')
657 | || e.preventDefault()
658 | || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
659 | var $target = $(target)
660 | var data = $target.data('bs.collapse')
661 | var option = data ? 'toggle' : $this.data()
662 | var parent = $this.attr('data-parent')
663 | var $parent = parent && $(parent)
664 |
665 | if (!data || !data.transitioning) {
666 | if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
667 | $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
668 | }
669 |
670 | $target.collapse(option)
671 | })
672 |
673 | }(window.jQuery);
674 |
675 | /* ========================================================================
676 | * Bootstrap: dropdown.js v3.0.0
677 | * http://getbootstrap.com/javascript/#dropdowns
678 | * ========================================================================
679 | * Copyright 2013 Twitter, Inc.
680 | *
681 | * Licensed under the Apache License, Version 2.0 (the "License");
682 | * you may not use this file except in compliance with the License.
683 | * You may obtain a copy of the License at
684 | *
685 | * http://www.apache.org/licenses/LICENSE-2.0
686 | *
687 | * Unless required by applicable law or agreed to in writing, software
688 | * distributed under the License is distributed on an "AS IS" BASIS,
689 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
690 | * See the License for the specific language governing permissions and
691 | * limitations under the License.
692 | * ======================================================================== */
693 |
694 |
695 | +function ($) { "use strict";
696 |
697 | // DROPDOWN CLASS DEFINITION
698 | // =========================
699 |
700 | var backdrop = '.dropdown-backdrop'
701 | var toggle = '[data-toggle=dropdown]'
702 | var Dropdown = function (element) {
703 | var $el = $(element).on('click.bs.dropdown', this.toggle)
704 | }
705 |
706 | Dropdown.prototype.toggle = function (e) {
707 | var $this = $(this)
708 |
709 | if ($this.is('.disabled, :disabled')) return
710 |
711 | var $parent = getParent($this)
712 | var isActive = $parent.hasClass('open')
713 |
714 | clearMenus()
715 |
716 | if (!isActive) {
717 | if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
718 | // if mobile we we use a backdrop because click events don't delegate
719 | $('
').insertAfter($(this)).on('click', clearMenus)
720 | }
721 |
722 | $parent.trigger(e = $.Event('show.bs.dropdown'))
723 |
724 | if (e.isDefaultPrevented()) return
725 |
726 | $parent
727 | .toggleClass('open')
728 | .trigger('shown.bs.dropdown')
729 |
730 | $this.focus()
731 | }
732 |
733 | return false
734 | }
735 |
736 | Dropdown.prototype.keydown = function (e) {
737 | if (!/(38|40|27)/.test(e.keyCode)) return
738 |
739 | var $this = $(this)
740 |
741 | e.preventDefault()
742 | e.stopPropagation()
743 |
744 | if ($this.is('.disabled, :disabled')) return
745 |
746 | var $parent = getParent($this)
747 | var isActive = $parent.hasClass('open')
748 |
749 | if (!isActive || (isActive && e.keyCode == 27)) {
750 | if (e.which == 27) $parent.find(toggle).focus()
751 | return $this.click()
752 | }
753 |
754 | var $items = $('[role=menu] li:not(.divider):visible a', $parent)
755 |
756 | if (!$items.length) return
757 |
758 | var index = $items.index($items.filter(':focus'))
759 |
760 | if (e.keyCode == 38 && index > 0) index-- // up
761 | if (e.keyCode == 40 && index < $items.length - 1) index++ // down
762 | if (!~index) index=0
763 |
764 | $items.eq(index).focus()
765 | }
766 |
767 | function clearMenus() {
768 | $(backdrop).remove()
769 | $(toggle).each(function (e) {
770 | var $parent = getParent($(this))
771 | if (!$parent.hasClass('open')) return
772 | $parent.trigger(e = $.Event('hide.bs.dropdown'))
773 | if (e.isDefaultPrevented()) return
774 | $parent.removeClass('open').trigger('hidden.bs.dropdown')
775 | })
776 | }
777 |
778 | function getParent($this) {
779 | var selector = $this.attr('data-target')
780 |
781 | if (!selector) {
782 | selector = $this.attr('href')
783 | selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
784 | }
785 |
786 | var $parent = selector && $(selector)
787 |
788 | return $parent && $parent.length ? $parent : $this.parent()
789 | }
790 |
791 |
792 | // DROPDOWN PLUGIN DEFINITION
793 | // ==========================
794 |
795 | var old = $.fn.dropdown
796 |
797 | $.fn.dropdown = function (option) {
798 | return this.each(function () {
799 | var $this = $(this)
800 | var data = $this.data('dropdown')
801 |
802 | if (!data) $this.data('dropdown', (data = new Dropdown(this)))
803 | if (typeof option == 'string') data[option].call($this)
804 | })
805 | }
806 |
807 | $.fn.dropdown.Constructor = Dropdown
808 |
809 |
810 | // DROPDOWN NO CONFLICT
811 | // ====================
812 |
813 | $.fn.dropdown.noConflict = function () {
814 | $.fn.dropdown = old
815 | return this
816 | }
817 |
818 |
819 | // APPLY TO STANDARD DROPDOWN ELEMENTS
820 | // ===================================
821 |
822 | $(document)
823 | .on('click.bs.dropdown.data-api', clearMenus)
824 | .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
825 | .on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
826 | .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
827 |
828 | }(window.jQuery);
829 |
830 | /* ========================================================================
831 | * Bootstrap: modal.js v3.0.0
832 | * http://getbootstrap.com/javascript/#modals
833 | * ========================================================================
834 | * Copyright 2013 Twitter, Inc.
835 | *
836 | * Licensed under the Apache License, Version 2.0 (the "License");
837 | * you may not use this file except in compliance with the License.
838 | * You may obtain a copy of the License at
839 | *
840 | * http://www.apache.org/licenses/LICENSE-2.0
841 | *
842 | * Unless required by applicable law or agreed to in writing, software
843 | * distributed under the License is distributed on an "AS IS" BASIS,
844 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
845 | * See the License for the specific language governing permissions and
846 | * limitations under the License.
847 | * ======================================================================== */
848 |
849 |
850 | +function ($) { "use strict";
851 |
852 | // MODAL CLASS DEFINITION
853 | // ======================
854 |
855 | var Modal = function (element, options) {
856 | this.options = options
857 | this.$element = $(element)
858 | this.$backdrop =
859 | this.isShown = null
860 |
861 | if (this.options.remote) this.$element.load(this.options.remote)
862 | }
863 |
864 | Modal.DEFAULTS = {
865 | backdrop: true
866 | , keyboard: true
867 | , show: true
868 | }
869 |
870 | Modal.prototype.toggle = function (_relatedTarget) {
871 | return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
872 | }
873 |
874 | Modal.prototype.show = function (_relatedTarget) {
875 | var that = this
876 | var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
877 |
878 | this.$element.trigger(e)
879 |
880 | if (this.isShown || e.isDefaultPrevented()) return
881 |
882 | this.isShown = true
883 |
884 | this.escape()
885 |
886 | this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
887 |
888 | this.backdrop(function () {
889 | var transition = $.support.transition && that.$element.hasClass('fade')
890 |
891 | if (!that.$element.parent().length) {
892 | that.$element.appendTo(document.body) // don't move modals dom position
893 | }
894 |
895 | that.$element.show()
896 |
897 | if (transition) {
898 | that.$element[0].offsetWidth // force reflow
899 | }
900 |
901 | that.$element
902 | .addClass('in')
903 | .attr('aria-hidden', false)
904 |
905 | that.enforceFocus()
906 |
907 | var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
908 |
909 | transition ?
910 | that.$element.find('.modal-dialog') // wait for modal to slide in
911 | .one($.support.transition.end, function () {
912 | that.$element.focus().trigger(e)
913 | })
914 | .emulateTransitionEnd(300) :
915 | that.$element.focus().trigger(e)
916 | })
917 | }
918 |
919 | Modal.prototype.hide = function (e) {
920 | if (e) e.preventDefault()
921 |
922 | e = $.Event('hide.bs.modal')
923 |
924 | this.$element.trigger(e)
925 |
926 | if (!this.isShown || e.isDefaultPrevented()) return
927 |
928 | this.isShown = false
929 |
930 | this.escape()
931 |
932 | $(document).off('focusin.bs.modal')
933 |
934 | this.$element
935 | .removeClass('in')
936 | .attr('aria-hidden', true)
937 | .off('click.dismiss.modal')
938 |
939 | $.support.transition && this.$element.hasClass('fade') ?
940 | this.$element
941 | .one($.support.transition.end, $.proxy(this.hideModal, this))
942 | .emulateTransitionEnd(300) :
943 | this.hideModal()
944 | }
945 |
946 | Modal.prototype.enforceFocus = function () {
947 | $(document)
948 | .off('focusin.bs.modal') // guard against infinite focus loop
949 | .on('focusin.bs.modal', $.proxy(function (e) {
950 | if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
951 | this.$element.focus()
952 | }
953 | }, this))
954 | }
955 |
956 | Modal.prototype.escape = function () {
957 | if (this.isShown && this.options.keyboard) {
958 | this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
959 | e.which == 27 && this.hide()
960 | }, this))
961 | } else if (!this.isShown) {
962 | this.$element.off('keyup.dismiss.bs.modal')
963 | }
964 | }
965 |
966 | Modal.prototype.hideModal = function () {
967 | var that = this
968 | this.$element.hide()
969 | this.backdrop(function () {
970 | that.removeBackdrop()
971 | that.$element.trigger('hidden.bs.modal')
972 | })
973 | }
974 |
975 | Modal.prototype.removeBackdrop = function () {
976 | this.$backdrop && this.$backdrop.remove()
977 | this.$backdrop = null
978 | }
979 |
980 | Modal.prototype.backdrop = function (callback) {
981 | var that = this
982 | var animate = this.$element.hasClass('fade') ? 'fade' : ''
983 |
984 | if (this.isShown && this.options.backdrop) {
985 | var doAnimate = $.support.transition && animate
986 |
987 | this.$backdrop = $('
')
988 | .appendTo(document.body)
989 |
990 | this.$element.on('click.dismiss.modal', $.proxy(function (e) {
991 | if (e.target !== e.currentTarget) return
992 | this.options.backdrop == 'static'
993 | ? this.$element[0].focus.call(this.$element[0])
994 | : this.hide.call(this)
995 | }, this))
996 |
997 | if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
998 |
999 | this.$backdrop.addClass('in')
1000 |
1001 | if (!callback) return
1002 |
1003 | doAnimate ?
1004 | this.$backdrop
1005 | .one($.support.transition.end, callback)
1006 | .emulateTransitionEnd(150) :
1007 | callback()
1008 |
1009 | } else if (!this.isShown && this.$backdrop) {
1010 | this.$backdrop.removeClass('in')
1011 |
1012 | $.support.transition && this.$element.hasClass('fade')?
1013 | this.$backdrop
1014 | .one($.support.transition.end, callback)
1015 | .emulateTransitionEnd(150) :
1016 | callback()
1017 |
1018 | } else if (callback) {
1019 | callback()
1020 | }
1021 | }
1022 |
1023 |
1024 | // MODAL PLUGIN DEFINITION
1025 | // =======================
1026 |
1027 | var old = $.fn.modal
1028 |
1029 | $.fn.modal = function (option, _relatedTarget) {
1030 | return this.each(function () {
1031 | var $this = $(this)
1032 | var data = $this.data('bs.modal')
1033 | var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1034 |
1035 | if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1036 | if (typeof option == 'string') data[option](_relatedTarget)
1037 | else if (options.show) data.show(_relatedTarget)
1038 | })
1039 | }
1040 |
1041 | $.fn.modal.Constructor = Modal
1042 |
1043 |
1044 | // MODAL NO CONFLICT
1045 | // =================
1046 |
1047 | $.fn.modal.noConflict = function () {
1048 | $.fn.modal = old
1049 | return this
1050 | }
1051 |
1052 |
1053 | // MODAL DATA-API
1054 | // ==============
1055 |
1056 | $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1057 | var $this = $(this)
1058 | var href = $this.attr('href')
1059 | var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1060 | var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1061 |
1062 | e.preventDefault()
1063 |
1064 | $target
1065 | .modal(option, this)
1066 | .one('hide', function () {
1067 | $this.is(':visible') && $this.focus()
1068 | })
1069 | })
1070 |
1071 | $(document)
1072 | .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
1073 | .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
1074 |
1075 | }(window.jQuery);
1076 |
1077 | /* ========================================================================
1078 | * Bootstrap: tooltip.js v3.0.0
1079 | * http://getbootstrap.com/javascript/#tooltip
1080 | * Inspired by the original jQuery.tipsy by Jason Frame
1081 | * ========================================================================
1082 | * Copyright 2013 Twitter, Inc.
1083 | *
1084 | * Licensed under the Apache License, Version 2.0 (the "License");
1085 | * you may not use this file except in compliance with the License.
1086 | * You may obtain a copy of the License at
1087 | *
1088 | * http://www.apache.org/licenses/LICENSE-2.0
1089 | *
1090 | * Unless required by applicable law or agreed to in writing, software
1091 | * distributed under the License is distributed on an "AS IS" BASIS,
1092 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1093 | * See the License for the specific language governing permissions and
1094 | * limitations under the License.
1095 | * ======================================================================== */
1096 |
1097 |
1098 | +function ($) { "use strict";
1099 |
1100 | // TOOLTIP PUBLIC CLASS DEFINITION
1101 | // ===============================
1102 |
1103 | var Tooltip = function (element, options) {
1104 | this.type =
1105 | this.options =
1106 | this.enabled =
1107 | this.timeout =
1108 | this.hoverState =
1109 | this.$element = null
1110 |
1111 | this.init('tooltip', element, options)
1112 | }
1113 |
1114 | Tooltip.DEFAULTS = {
1115 | animation: true
1116 | , placement: 'top'
1117 | , selector: false
1118 | , template: '
'
1119 | , trigger: 'hover focus'
1120 | , title: ''
1121 | , delay: 0
1122 | , html: false
1123 | , container: false
1124 | }
1125 |
1126 | Tooltip.prototype.init = function (type, element, options) {
1127 | this.enabled = true
1128 | this.type = type
1129 | this.$element = $(element)
1130 | this.options = this.getOptions(options)
1131 |
1132 | var triggers = this.options.trigger.split(' ')
1133 |
1134 | for (var i = triggers.length; i--;) {
1135 | var trigger = triggers[i]
1136 |
1137 | if (trigger == 'click') {
1138 | this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1139 | } else if (trigger != 'manual') {
1140 | var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1141 | var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1142 |
1143 | this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1144 | this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1145 | }
1146 | }
1147 |
1148 | this.options.selector ?
1149 | (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1150 | this.fixTitle()
1151 | }
1152 |
1153 | Tooltip.prototype.getDefaults = function () {
1154 | return Tooltip.DEFAULTS
1155 | }
1156 |
1157 | Tooltip.prototype.getOptions = function (options) {
1158 | options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1159 |
1160 | if (options.delay && typeof options.delay == 'number') {
1161 | options.delay = {
1162 | show: options.delay
1163 | , hide: options.delay
1164 | }
1165 | }
1166 |
1167 | return options
1168 | }
1169 |
1170 | Tooltip.prototype.getDelegateOptions = function () {
1171 | var options = {}
1172 | var defaults = this.getDefaults()
1173 |
1174 | this._options && $.each(this._options, function (key, value) {
1175 | if (defaults[key] != value) options[key] = value
1176 | })
1177 |
1178 | return options
1179 | }
1180 |
1181 | Tooltip.prototype.enter = function (obj) {
1182 | var self = obj instanceof this.constructor ?
1183 | obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1184 |
1185 | clearTimeout(self.timeout)
1186 |
1187 | self.hoverState = 'in'
1188 |
1189 | if (!self.options.delay || !self.options.delay.show) return self.show()
1190 |
1191 | self.timeout = setTimeout(function () {
1192 | if (self.hoverState == 'in') self.show()
1193 | }, self.options.delay.show)
1194 | }
1195 |
1196 | Tooltip.prototype.leave = function (obj) {
1197 | var self = obj instanceof this.constructor ?
1198 | obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1199 |
1200 | clearTimeout(self.timeout)
1201 |
1202 | self.hoverState = 'out'
1203 |
1204 | if (!self.options.delay || !self.options.delay.hide) return self.hide()
1205 |
1206 | self.timeout = setTimeout(function () {
1207 | if (self.hoverState == 'out') self.hide()
1208 | }, self.options.delay.hide)
1209 | }
1210 |
1211 | Tooltip.prototype.show = function () {
1212 | var e = $.Event('show.bs.'+ this.type)
1213 |
1214 | if (this.hasContent() && this.enabled) {
1215 | this.$element.trigger(e)
1216 |
1217 | if (e.isDefaultPrevented()) return
1218 |
1219 | var $tip = this.tip()
1220 |
1221 | this.setContent()
1222 |
1223 | if (this.options.animation) $tip.addClass('fade')
1224 |
1225 | var placement = typeof this.options.placement == 'function' ?
1226 | this.options.placement.call(this, $tip[0], this.$element[0]) :
1227 | this.options.placement
1228 |
1229 | var autoToken = /\s?auto?\s?/i
1230 | var autoPlace = autoToken.test(placement)
1231 | if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1232 |
1233 | $tip
1234 | .detach()
1235 | .css({ top: 0, left: 0, display: 'block' })
1236 | .addClass(placement)
1237 |
1238 | this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1239 |
1240 | var pos = this.getPosition()
1241 | var actualWidth = $tip[0].offsetWidth
1242 | var actualHeight = $tip[0].offsetHeight
1243 |
1244 | if (autoPlace) {
1245 | var $parent = this.$element.parent()
1246 |
1247 | var orgPlacement = placement
1248 | var docScroll = document.documentElement.scrollTop || document.body.scrollTop
1249 | var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
1250 | var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
1251 | var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
1252 |
1253 | placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
1254 | placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
1255 | placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
1256 | placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
1257 | placement
1258 |
1259 | $tip
1260 | .removeClass(orgPlacement)
1261 | .addClass(placement)
1262 | }
1263 |
1264 | var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1265 |
1266 | this.applyPlacement(calculatedOffset, placement)
1267 | this.$element.trigger('shown.bs.' + this.type)
1268 | }
1269 | }
1270 |
1271 | Tooltip.prototype.applyPlacement = function(offset, placement) {
1272 | var replace
1273 | var $tip = this.tip()
1274 | var width = $tip[0].offsetWidth
1275 | var height = $tip[0].offsetHeight
1276 |
1277 | // manually read margins because getBoundingClientRect includes difference
1278 | var marginTop = parseInt($tip.css('margin-top'), 10)
1279 | var marginLeft = parseInt($tip.css('margin-left'), 10)
1280 |
1281 | // we must check for NaN for ie 8/9
1282 | if (isNaN(marginTop)) marginTop = 0
1283 | if (isNaN(marginLeft)) marginLeft = 0
1284 |
1285 | offset.top = offset.top + marginTop
1286 | offset.left = offset.left + marginLeft
1287 |
1288 | $tip
1289 | .offset(offset)
1290 | .addClass('in')
1291 |
1292 | // check to see if placing tip in new offset caused the tip to resize itself
1293 | var actualWidth = $tip[0].offsetWidth
1294 | var actualHeight = $tip[0].offsetHeight
1295 |
1296 | if (placement == 'top' && actualHeight != height) {
1297 | replace = true
1298 | offset.top = offset.top + height - actualHeight
1299 | }
1300 |
1301 | if (/bottom|top/.test(placement)) {
1302 | var delta = 0
1303 |
1304 | if (offset.left < 0) {
1305 | delta = offset.left * -2
1306 | offset.left = 0
1307 |
1308 | $tip.offset(offset)
1309 |
1310 | actualWidth = $tip[0].offsetWidth
1311 | actualHeight = $tip[0].offsetHeight
1312 | }
1313 |
1314 | this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1315 | } else {
1316 | this.replaceArrow(actualHeight - height, actualHeight, 'top')
1317 | }
1318 |
1319 | if (replace) $tip.offset(offset)
1320 | }
1321 |
1322 | Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
1323 | this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
1324 | }
1325 |
1326 | Tooltip.prototype.setContent = function () {
1327 | var $tip = this.tip()
1328 | var title = this.getTitle()
1329 |
1330 | $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1331 | $tip.removeClass('fade in top bottom left right')
1332 | }
1333 |
1334 | Tooltip.prototype.hide = function () {
1335 | var that = this
1336 | var $tip = this.tip()
1337 | var e = $.Event('hide.bs.' + this.type)
1338 |
1339 | function complete() {
1340 | if (that.hoverState != 'in') $tip.detach()
1341 | }
1342 |
1343 | this.$element.trigger(e)
1344 |
1345 | if (e.isDefaultPrevented()) return
1346 |
1347 | $tip.removeClass('in')
1348 |
1349 | $.support.transition && this.$tip.hasClass('fade') ?
1350 | $tip
1351 | .one($.support.transition.end, complete)
1352 | .emulateTransitionEnd(150) :
1353 | complete()
1354 |
1355 | this.$element.trigger('hidden.bs.' + this.type)
1356 |
1357 | return this
1358 | }
1359 |
1360 | Tooltip.prototype.fixTitle = function () {
1361 | var $e = this.$element
1362 | if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1363 | $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1364 | }
1365 | }
1366 |
1367 | Tooltip.prototype.hasContent = function () {
1368 | return this.getTitle()
1369 | }
1370 |
1371 | Tooltip.prototype.getPosition = function () {
1372 | var el = this.$element[0]
1373 | return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1374 | width: el.offsetWidth
1375 | , height: el.offsetHeight
1376 | }, this.$element.offset())
1377 | }
1378 |
1379 | Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1380 | return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1381 | placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1382 | placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1383 | /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1384 | }
1385 |
1386 | Tooltip.prototype.getTitle = function () {
1387 | var title
1388 | var $e = this.$element
1389 | var o = this.options
1390 |
1391 | title = $e.attr('data-original-title')
1392 | || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1393 |
1394 | return title
1395 | }
1396 |
1397 | Tooltip.prototype.tip = function () {
1398 | return this.$tip = this.$tip || $(this.options.template)
1399 | }
1400 |
1401 | Tooltip.prototype.arrow = function () {
1402 | return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
1403 | }
1404 |
1405 | Tooltip.prototype.validate = function () {
1406 | if (!this.$element[0].parentNode) {
1407 | this.hide()
1408 | this.$element = null
1409 | this.options = null
1410 | }
1411 | }
1412 |
1413 | Tooltip.prototype.enable = function () {
1414 | this.enabled = true
1415 | }
1416 |
1417 | Tooltip.prototype.disable = function () {
1418 | this.enabled = false
1419 | }
1420 |
1421 | Tooltip.prototype.toggleEnabled = function () {
1422 | this.enabled = !this.enabled
1423 | }
1424 |
1425 | Tooltip.prototype.toggle = function (e) {
1426 | var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
1427 | self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1428 | }
1429 |
1430 | Tooltip.prototype.destroy = function () {
1431 | this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
1432 | }
1433 |
1434 |
1435 | // TOOLTIP PLUGIN DEFINITION
1436 | // =========================
1437 |
1438 | var old = $.fn.tooltip
1439 |
1440 | $.fn.tooltip = function (option) {
1441 | return this.each(function () {
1442 | var $this = $(this)
1443 | var data = $this.data('bs.tooltip')
1444 | var options = typeof option == 'object' && option
1445 |
1446 | if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1447 | if (typeof option == 'string') data[option]()
1448 | })
1449 | }
1450 |
1451 | $.fn.tooltip.Constructor = Tooltip
1452 |
1453 |
1454 | // TOOLTIP NO CONFLICT
1455 | // ===================
1456 |
1457 | $.fn.tooltip.noConflict = function () {
1458 | $.fn.tooltip = old
1459 | return this
1460 | }
1461 |
1462 | }(window.jQuery);
1463 |
1464 | /* ========================================================================
1465 | * Bootstrap: popover.js v3.0.0
1466 | * http://getbootstrap.com/javascript/#popovers
1467 | * ========================================================================
1468 | * Copyright 2013 Twitter, Inc.
1469 | *
1470 | * Licensed under the Apache License, Version 2.0 (the "License");
1471 | * you may not use this file except in compliance with the License.
1472 | * You may obtain a copy of the License at
1473 | *
1474 | * http://www.apache.org/licenses/LICENSE-2.0
1475 | *
1476 | * Unless required by applicable law or agreed to in writing, software
1477 | * distributed under the License is distributed on an "AS IS" BASIS,
1478 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1479 | * See the License for the specific language governing permissions and
1480 | * limitations under the License.
1481 | * ======================================================================== */
1482 |
1483 |
1484 | +function ($) { "use strict";
1485 |
1486 | // POPOVER PUBLIC CLASS DEFINITION
1487 | // ===============================
1488 |
1489 | var Popover = function (element, options) {
1490 | this.init('popover', element, options)
1491 | }
1492 |
1493 | if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1494 |
1495 | Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
1496 | placement: 'right'
1497 | , trigger: 'click'
1498 | , content: ''
1499 | , template: '
'
1500 | })
1501 |
1502 |
1503 | // NOTE: POPOVER EXTENDS tooltip.js
1504 | // ================================
1505 |
1506 | Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1507 |
1508 | Popover.prototype.constructor = Popover
1509 |
1510 | Popover.prototype.getDefaults = function () {
1511 | return Popover.DEFAULTS
1512 | }
1513 |
1514 | Popover.prototype.setContent = function () {
1515 | var $tip = this.tip()
1516 | var title = this.getTitle()
1517 | var content = this.getContent()
1518 |
1519 | $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1520 | $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
1521 |
1522 | $tip.removeClass('fade top bottom left right in')
1523 |
1524 | // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1525 | // this manually by checking the contents.
1526 | if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1527 | }
1528 |
1529 | Popover.prototype.hasContent = function () {
1530 | return this.getTitle() || this.getContent()
1531 | }
1532 |
1533 | Popover.prototype.getContent = function () {
1534 | var $e = this.$element
1535 | var o = this.options
1536 |
1537 | return $e.attr('data-content')
1538 | || (typeof o.content == 'function' ?
1539 | o.content.call($e[0]) :
1540 | o.content)
1541 | }
1542 |
1543 | Popover.prototype.arrow = function () {
1544 | return this.$arrow = this.$arrow || this.tip().find('.arrow')
1545 | }
1546 |
1547 | Popover.prototype.tip = function () {
1548 | if (!this.$tip) this.$tip = $(this.options.template)
1549 | return this.$tip
1550 | }
1551 |
1552 |
1553 | // POPOVER PLUGIN DEFINITION
1554 | // =========================
1555 |
1556 | var old = $.fn.popover
1557 |
1558 | $.fn.popover = function (option) {
1559 | return this.each(function () {
1560 | var $this = $(this)
1561 | var data = $this.data('bs.popover')
1562 | var options = typeof option == 'object' && option
1563 |
1564 | if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1565 | if (typeof option == 'string') data[option]()
1566 | })
1567 | }
1568 |
1569 | $.fn.popover.Constructor = Popover
1570 |
1571 |
1572 | // POPOVER NO CONFLICT
1573 | // ===================
1574 |
1575 | $.fn.popover.noConflict = function () {
1576 | $.fn.popover = old
1577 | return this
1578 | }
1579 |
1580 | }(window.jQuery);
1581 |
1582 | /* ========================================================================
1583 | * Bootstrap: scrollspy.js v3.0.0
1584 | * http://getbootstrap.com/javascript/#scrollspy
1585 | * ========================================================================
1586 | * Copyright 2013 Twitter, Inc.
1587 | *
1588 | * Licensed under the Apache License, Version 2.0 (the "License");
1589 | * you may not use this file except in compliance with the License.
1590 | * You may obtain a copy of the License at
1591 | *
1592 | * http://www.apache.org/licenses/LICENSE-2.0
1593 | *
1594 | * Unless required by applicable law or agreed to in writing, software
1595 | * distributed under the License is distributed on an "AS IS" BASIS,
1596 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1597 | * See the License for the specific language governing permissions and
1598 | * limitations under the License.
1599 | * ======================================================================== */
1600 |
1601 |
1602 | +function ($) { "use strict";
1603 |
1604 | // SCROLLSPY CLASS DEFINITION
1605 | // ==========================
1606 |
1607 | function ScrollSpy(element, options) {
1608 | var href
1609 | var process = $.proxy(this.process, this)
1610 |
1611 | this.$element = $(element).is('body') ? $(window) : $(element)
1612 | this.$body = $('body')
1613 | this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
1614 | this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1615 | this.selector = (this.options.target
1616 | || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
1617 | || '') + ' .nav li > a'
1618 | this.offsets = $([])
1619 | this.targets = $([])
1620 | this.activeTarget = null
1621 |
1622 | this.refresh()
1623 | this.process()
1624 | }
1625 |
1626 | ScrollSpy.DEFAULTS = {
1627 | offset: 10
1628 | }
1629 |
1630 | ScrollSpy.prototype.refresh = function () {
1631 | var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
1632 |
1633 | this.offsets = $([])
1634 | this.targets = $([])
1635 |
1636 | var self = this
1637 | var $targets = this.$body
1638 | .find(this.selector)
1639 | .map(function () {
1640 | var $el = $(this)
1641 | var href = $el.data('target') || $el.attr('href')
1642 | var $href = /^#\w/.test(href) && $(href)
1643 |
1644 | return ($href
1645 | && $href.length
1646 | && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
1647 | })
1648 | .sort(function (a, b) { return a[0] - b[0] })
1649 | .each(function () {
1650 | self.offsets.push(this[0])
1651 | self.targets.push(this[1])
1652 | })
1653 | }
1654 |
1655 | ScrollSpy.prototype.process = function () {
1656 | var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1657 | var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1658 | var maxScroll = scrollHeight - this.$scrollElement.height()
1659 | var offsets = this.offsets
1660 | var targets = this.targets
1661 | var activeTarget = this.activeTarget
1662 | var i
1663 |
1664 | if (scrollTop >= maxScroll) {
1665 | return activeTarget != (i = targets.last()[0]) && this.activate(i)
1666 | }
1667 |
1668 | for (i = offsets.length; i--;) {
1669 | activeTarget != targets[i]
1670 | && scrollTop >= offsets[i]
1671 | && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1672 | && this.activate( targets[i] )
1673 | }
1674 | }
1675 |
1676 | ScrollSpy.prototype.activate = function (target) {
1677 | this.activeTarget = target
1678 |
1679 | $(this.selector)
1680 | .parents('.active')
1681 | .removeClass('active')
1682 |
1683 | var selector = this.selector
1684 | + '[data-target="' + target + '"],'
1685 | + this.selector + '[href="' + target + '"]'
1686 |
1687 | var active = $(selector)
1688 | .parents('li')
1689 | .addClass('active')
1690 |
1691 | if (active.parent('.dropdown-menu').length) {
1692 | active = active
1693 | .closest('li.dropdown')
1694 | .addClass('active')
1695 | }
1696 |
1697 | active.trigger('activate')
1698 | }
1699 |
1700 |
1701 | // SCROLLSPY PLUGIN DEFINITION
1702 | // ===========================
1703 |
1704 | var old = $.fn.scrollspy
1705 |
1706 | $.fn.scrollspy = function (option) {
1707 | return this.each(function () {
1708 | var $this = $(this)
1709 | var data = $this.data('bs.scrollspy')
1710 | var options = typeof option == 'object' && option
1711 |
1712 | if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1713 | if (typeof option == 'string') data[option]()
1714 | })
1715 | }
1716 |
1717 | $.fn.scrollspy.Constructor = ScrollSpy
1718 |
1719 |
1720 | // SCROLLSPY NO CONFLICT
1721 | // =====================
1722 |
1723 | $.fn.scrollspy.noConflict = function () {
1724 | $.fn.scrollspy = old
1725 | return this
1726 | }
1727 |
1728 |
1729 | // SCROLLSPY DATA-API
1730 | // ==================
1731 |
1732 | $(window).on('load', function () {
1733 | $('[data-spy="scroll"]').each(function () {
1734 | var $spy = $(this)
1735 | $spy.scrollspy($spy.data())
1736 | })
1737 | })
1738 |
1739 | }(window.jQuery);
1740 |
1741 | /* ========================================================================
1742 | * Bootstrap: tab.js v3.0.0
1743 | * http://getbootstrap.com/javascript/#tabs
1744 | * ========================================================================
1745 | * Copyright 2013 Twitter, Inc.
1746 | *
1747 | * Licensed under the Apache License, Version 2.0 (the "License");
1748 | * you may not use this file except in compliance with the License.
1749 | * You may obtain a copy of the License at
1750 | *
1751 | * http://www.apache.org/licenses/LICENSE-2.0
1752 | *
1753 | * Unless required by applicable law or agreed to in writing, software
1754 | * distributed under the License is distributed on an "AS IS" BASIS,
1755 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1756 | * See the License for the specific language governing permissions and
1757 | * limitations under the License.
1758 | * ======================================================================== */
1759 |
1760 |
1761 | +function ($) { "use strict";
1762 |
1763 | // TAB CLASS DEFINITION
1764 | // ====================
1765 |
1766 | var Tab = function (element) {
1767 | this.element = $(element)
1768 | }
1769 |
1770 | Tab.prototype.show = function () {
1771 | var $this = this.element
1772 | var $ul = $this.closest('ul:not(.dropdown-menu)')
1773 | var selector = $this.data('target')
1774 |
1775 | if (!selector) {
1776 | selector = $this.attr('href')
1777 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1778 | }
1779 |
1780 | if ($this.parent('li').hasClass('active')) return
1781 |
1782 | var previous = $ul.find('.active:last a')[0]
1783 | var e = $.Event('show.bs.tab', {
1784 | relatedTarget: previous
1785 | })
1786 |
1787 | $this.trigger(e)
1788 |
1789 | if (e.isDefaultPrevented()) return
1790 |
1791 | var $target = $(selector)
1792 |
1793 | this.activate($this.parent('li'), $ul)
1794 | this.activate($target, $target.parent(), function () {
1795 | $this.trigger({
1796 | type: 'shown.bs.tab'
1797 | , relatedTarget: previous
1798 | })
1799 | })
1800 | }
1801 |
1802 | Tab.prototype.activate = function (element, container, callback) {
1803 | var $active = container.find('> .active')
1804 | var transition = callback
1805 | && $.support.transition
1806 | && $active.hasClass('fade')
1807 |
1808 | function next() {
1809 | $active
1810 | .removeClass('active')
1811 | .find('> .dropdown-menu > .active')
1812 | .removeClass('active')
1813 |
1814 | element.addClass('active')
1815 |
1816 | if (transition) {
1817 | element[0].offsetWidth // reflow for transition
1818 | element.addClass('in')
1819 | } else {
1820 | element.removeClass('fade')
1821 | }
1822 |
1823 | if (element.parent('.dropdown-menu')) {
1824 | element.closest('li.dropdown').addClass('active')
1825 | }
1826 |
1827 | callback && callback()
1828 | }
1829 |
1830 | transition ?
1831 | $active
1832 | .one($.support.transition.end, next)
1833 | .emulateTransitionEnd(150) :
1834 | next()
1835 |
1836 | $active.removeClass('in')
1837 | }
1838 |
1839 |
1840 | // TAB PLUGIN DEFINITION
1841 | // =====================
1842 |
1843 | var old = $.fn.tab
1844 |
1845 | $.fn.tab = function ( option ) {
1846 | return this.each(function () {
1847 | var $this = $(this)
1848 | var data = $this.data('bs.tab')
1849 |
1850 | if (!data) $this.data('bs.tab', (data = new Tab(this)))
1851 | if (typeof option == 'string') data[option]()
1852 | })
1853 | }
1854 |
1855 | $.fn.tab.Constructor = Tab
1856 |
1857 |
1858 | // TAB NO CONFLICT
1859 | // ===============
1860 |
1861 | $.fn.tab.noConflict = function () {
1862 | $.fn.tab = old
1863 | return this
1864 | }
1865 |
1866 |
1867 | // TAB DATA-API
1868 | // ============
1869 |
1870 | $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1871 | e.preventDefault()
1872 | $(this).tab('show')
1873 | })
1874 |
1875 | }(window.jQuery);
1876 |
1877 | /* ========================================================================
1878 | * Bootstrap: affix.js v3.0.0
1879 | * http://getbootstrap.com/javascript/#affix
1880 | * ========================================================================
1881 | * Copyright 2013 Twitter, Inc.
1882 | *
1883 | * Licensed under the Apache License, Version 2.0 (the "License");
1884 | * you may not use this file except in compliance with the License.
1885 | * You may obtain a copy of the License at
1886 | *
1887 | * http://www.apache.org/licenses/LICENSE-2.0
1888 | *
1889 | * Unless required by applicable law or agreed to in writing, software
1890 | * distributed under the License is distributed on an "AS IS" BASIS,
1891 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1892 | * See the License for the specific language governing permissions and
1893 | * limitations under the License.
1894 | * ======================================================================== */
1895 |
1896 |
1897 | +function ($) { "use strict";
1898 |
1899 | // AFFIX CLASS DEFINITION
1900 | // ======================
1901 |
1902 | var Affix = function (element, options) {
1903 | this.options = $.extend({}, Affix.DEFAULTS, options)
1904 | this.$window = $(window)
1905 | .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1906 | .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1907 |
1908 | this.$element = $(element)
1909 | this.affixed =
1910 | this.unpin = null
1911 |
1912 | this.checkPosition()
1913 | }
1914 |
1915 | Affix.RESET = 'affix affix-top affix-bottom'
1916 |
1917 | Affix.DEFAULTS = {
1918 | offset: 0
1919 | }
1920 |
1921 | Affix.prototype.checkPositionWithEventLoop = function () {
1922 | setTimeout($.proxy(this.checkPosition, this), 1)
1923 | }
1924 |
1925 | Affix.prototype.checkPosition = function () {
1926 | if (!this.$element.is(':visible')) return
1927 |
1928 | var scrollHeight = $(document).height()
1929 | var scrollTop = this.$window.scrollTop()
1930 | var position = this.$element.offset()
1931 | var offset = this.options.offset
1932 | var offsetTop = offset.top
1933 | var offsetBottom = offset.bottom
1934 |
1935 | if (typeof offset != 'object') offsetBottom = offsetTop = offset
1936 | if (typeof offsetTop == 'function') offsetTop = offset.top()
1937 | if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
1938 |
1939 | var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
1940 | offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
1941 | offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
1942 |
1943 | if (this.affixed === affix) return
1944 | if (this.unpin) this.$element.css('top', '')
1945 |
1946 | this.affixed = affix
1947 | this.unpin = affix == 'bottom' ? position.top - scrollTop : null
1948 |
1949 | this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))
1950 |
1951 | if (affix == 'bottom') {
1952 | this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })
1953 | }
1954 | }
1955 |
1956 |
1957 | // AFFIX PLUGIN DEFINITION
1958 | // =======================
1959 |
1960 | var old = $.fn.affix
1961 |
1962 | $.fn.affix = function (option) {
1963 | return this.each(function () {
1964 | var $this = $(this)
1965 | var data = $this.data('bs.affix')
1966 | var options = typeof option == 'object' && option
1967 |
1968 | if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
1969 | if (typeof option == 'string') data[option]()
1970 | })
1971 | }
1972 |
1973 | $.fn.affix.Constructor = Affix
1974 |
1975 |
1976 | // AFFIX NO CONFLICT
1977 | // =================
1978 |
1979 | $.fn.affix.noConflict = function () {
1980 | $.fn.affix = old
1981 | return this
1982 | }
1983 |
1984 |
1985 | // AFFIX DATA-API
1986 | // ==============
1987 |
1988 | $(window).on('load', function () {
1989 | $('[data-spy="affix"]').each(function () {
1990 | var $spy = $(this)
1991 | var data = $spy.data()
1992 |
1993 | data.offset = data.offset || {}
1994 |
1995 | if (data.offsetBottom) data.offset.bottom = data.offsetBottom
1996 | if (data.offsetTop) data.offset.top = data.offsetTop
1997 |
1998 | $spy.affix(data)
1999 | })
2000 | })
2001 |
2002 | }(window.jQuery);
2003 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/js/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.0.1 by @fat and @mdo
3 | * Copyright 2013 Twitter, Inc.
4 | * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5 | *
6 | * Designed and built with all the love in the world by @mdo and @fat.
7 | */
8 |
9 | if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.length){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i
').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/produto-altera-formulario.php:
--------------------------------------------------------------------------------
1 |
11 |
54 |
55 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/produto-formulario.php:
--------------------------------------------------------------------------------
1 |
7 |
45 |
46 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/produto-lista.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
8 |
Produto apagado com sucesso.
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/remove-produto.php:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/loja-fim-apos-exercicios/rodape.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |