From d11b41afa96f6d8c9cf1eb13fe279860b824f3ff Mon Sep 17 00:00:00 2001 From: ayusun Date: Wed, 1 Oct 2014 13:38:34 +0530 Subject: [PATCH 1/3] initial prototype --- authenticate.php | 17 ++ connection.php | 12 + css/bootstrap-modal-bs3patch.css | 35 +++ css/bootstrap-modal.css | 262 +++++++++++++++++++ css/index.css | 39 +++ event.php | 43 ++++ images/bg.jpg | Bin 0 -> 18616 bytes images/home.png | Bin 0 -> 1136 bytes img/ajax-loader.gif | Bin 0 -> 1737 bytes img/available.png | Bin 0 -> 680 bytes img/facebook-icon.png | Bin 0 -> 428 bytes img/x-mark-13.png | Bin 0 -> 1617 bytes index.php | 228 +++++++++++++++++ join.php | 56 ++++ js/bootstrap-modal.js | 379 +++++++++++++++++++++++++++ js/bootstrap-modalmanager.js | 424 +++++++++++++++++++++++++++++++ js/join.js | 65 +++++ js/jquery.js | 5 + js/loginbox.js | 0 js/map.js | 43 ++++ js/planform.js | 132 ++++++++++ js/report.js | 40 +++ location.php | 16 ++ logout.php | 7 + plan.php | 39 +++ profile.php | 17 ++ report.php | 44 ++++ 27 files changed, 1903 insertions(+) create mode 100644 authenticate.php create mode 100644 connection.php create mode 100755 css/bootstrap-modal-bs3patch.css create mode 100755 css/bootstrap-modal.css create mode 100644 css/index.css create mode 100644 event.php create mode 100644 images/bg.jpg create mode 100644 images/home.png create mode 100755 img/ajax-loader.gif create mode 100644 img/available.png create mode 100644 img/facebook-icon.png create mode 100644 img/x-mark-13.png create mode 100644 index.php create mode 100644 join.php create mode 100755 js/bootstrap-modal.js create mode 100755 js/bootstrap-modalmanager.js create mode 100644 js/join.js create mode 100644 js/jquery.js create mode 100644 js/loginbox.js create mode 100644 js/map.js create mode 100644 js/planform.js create mode 100644 js/report.js create mode 100644 location.php create mode 100644 logout.php create mode 100644 plan.php create mode 100644 profile.php create mode 100644 report.php diff --git a/authenticate.php b/authenticate.php new file mode 100644 index 0000000..b53456b --- /dev/null +++ b/authenticate.php @@ -0,0 +1,17 @@ +query("select * from User where username='$username' and passwd='$pass'"); + $count = $res->num_rows; + if($count == 1){ + session_start(); + $row = $res->fetch_assoc(); + $_SESSION['id'] = $row['id']; + $_SESSION['name'] = $row['Name']; + } + + header("Location:./"); +?> diff --git a/connection.php b/connection.php new file mode 100644 index 0000000..ac8a74c --- /dev/null +++ b/connection.php @@ -0,0 +1,12 @@ + diff --git a/css/bootstrap-modal-bs3patch.css b/css/bootstrap-modal-bs3patch.css new file mode 100755 index 0000000..e4139ed --- /dev/null +++ b/css/bootstrap-modal-bs3patch.css @@ -0,0 +1,35 @@ +/*! + * Bootstrap Modal + * + * Copyright Jordan Schroter + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Boostrap 3 patch for for bootstrap-modal. Include BEFORE bootstrap-modal.css! + */ + +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 0; +} + +.modal { + left: 50%; + bottom: auto; + right: auto; + padding: 0; + width: 500px; + margin-left: -250px; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; +} + +.modal.container { + max-width: none; +} \ No newline at end of file diff --git a/css/bootstrap-modal.css b/css/bootstrap-modal.css new file mode 100755 index 0000000..a59f1fe --- /dev/null +++ b/css/bootstrap-modal.css @@ -0,0 +1,262 @@ +/*! + * Bootstrap Modal + * + * Copyright Jordan Schroter + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + */ + +.modal-open { + overflow: hidden; +} + + +/* add a scroll bar to stop page from jerking around */ +.modal-open.page-overflow .page-container, +.modal-open.page-overflow .page-container .navbar-fixed-top, +.modal-open.page-overflow .page-container .navbar-fixed-bottom, +.modal-open.page-overflow .modal-scrollable { + overflow-y: scroll; +} + +@media (max-width: 979px) { + .modal-open.page-overflow .page-container .navbar-fixed-top, + .modal-open.page-overflow .page-container .navbar-fixed-bottom { + overflow-y: visible; + } +} + + +.modal-scrollable { + position: fixed; + top: 0; + bottom: 0; + left: 70px; + right: 0; + overflow: auto; +} + +.modal { + outline: none; + position: absolute; + margin-top: 0; + top: 50%; + overflow: visible; /* allow content to popup out (i.e tooltips) */ +} + +.modal.fade { + top: -100%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out, bottom 0.3s ease-out, margin-top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; + margin:inherit; +} + +.modal-body { + max-height: none; + overflow: visible; +} + +.modal.modal-absolute { + position: absolute; + z-index: 950; +} + +.modal .loading-mask { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: #fff; + border-radius: 6px; +} + +.modal-backdrop.modal-absolute{ + position: absolute; + z-index: 940; +} + +.modal-backdrop, +.modal-backdrop.fade.in{ + opacity: 0.7; + filter: alpha(opacity=70); + background: #fff; +} + +.modal.container { + width: 940px; + margin-left: -470px; +} + +/* Modal Overflow */ + +.modal-overflow.modal { + top: 1%; +} + +.modal-overflow.modal.fade { + top: -100%; +} + +.modal-overflow.modal.fade.in { + top: 1%; + margin-left:70px!important; + width:280px; + height:450px; + } + +.modal-overflow .modal-body { + overflow: auto; + -webkit-overflow-scrolling: touch; +} + +/* Responsive */ + +@media (min-width: 1200px) { + .modal.container { + width: 1170px; + margin-left: -585px; + } +} + +@media (max-width: 979px) { + .modal, + .modal.container, + .modal.modal-overflow { + top: 1%; + right: 1%; + left: 1%; + bottom: auto; + width: auto !important; + height: auto !important; + margin: 0 !important; + padding: 0 !important; + } + + .modal.fade.in, + .modal.container.fade.in, + .modal.modal-overflow.fade.in { + top: 1%; + bottom: auto; + margin-left:70px; + } + + .modal-body, + .modal-overflow .modal-body { + position: static; + margin: 0; + height: auto !important; + max-height: none !important; + overflow: visible !important; + } + + .modal-footer, + .modal-overflow .modal-footer { + position: static; + } +} + +.loading-spinner { + position: absolute; + top: 50%; + left: 50%; + margin: -12px 0 0 -12px; +} + +/* +Animate.css - http://daneden.me/animate +Licensed under the ☺ license (http://licence.visualidiot.com/) + +Copyright (c) 2012 Dan Eden*/ + +.animated { + -webkit-animation-duration: 1s; + -moz-animation-duration: 1s; + -o-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + -moz-animation-fill-mode: both; + -o-animation-fill-mode: both; + animation-fill-mode: both; +} + +@-webkit-keyframes shake { + 0%, 100% {-webkit-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);} +} + +@-moz-keyframes shake { + 0%, 100% {-moz-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-moz-transform: translateX(10px);} +} + +@-o-keyframes shake { + 0%, 100% {-o-transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);} + 20%, 40%, 60%, 80% {-o-transform: translateX(10px);} +} + +@keyframes shake { + 0%, 100% {transform: translateX(0);} + 10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);} + 20%, 40%, 60%, 80% {transform: translateX(10px);} +} + +.shake { + -webkit-animation-name: shake; + -moz-animation-name: shake; + -o-animation-name: shake; + animation-name: shake; +} + + +.buttonModal { +display: block; +width: 125px; +height: 25px; +background: #DBD0DB; +padding: 10px; +text-align: center; +border-radius: 5px; +color: rgb(147,45,151); +font-size:medium; +padding-bottom:30px; +} + +.buttonImageModal { +display: block; +height: 25px; +background: #DBD0DB; +padding: 10px; +text-align: center; +border-radius: 5px; +color: rgb(147,45,151); +font-size:medium; +padding-bottom:30px; +} + +.buttonColorModal { +display: inline; +width: 115px; +height: 25px; +background: #DBD0DB; +padding: 5px; +text-align: center; +border-radius: 10px; +color: rgb(147,45,151); +font-size:larger; +padding-bottom:12px; +} + +.modalImageSlider{ +width:800px; +} diff --git a/css/index.css b/css/index.css new file mode 100644 index 0000000..3bc9455 --- /dev/null +++ b/css/index.css @@ -0,0 +1,39 @@ +#top-bar{ + background-color:black; + color:white; +} + +#myModal{ + left:20%; + top:34%; +} + +#joinModal{ + left:20%; + top:34%; +} +#reportModal{ + left:20%; + top:34%; +} +@media (max-width: 979px){ + #myModal{ + top:10%; + left:0%; + } + #joinModal{ + top:10%; + left:0%; + } + #reportModal{ + top:10%; + left:0%; + } + .modal-scrollable{ + left:0px; + } + .modal { + + } +} + diff --git a/event.php b/event.php new file mode 100644 index 0000000..3409c52 --- /dev/null +++ b/event.php @@ -0,0 +1,43 @@ +query("select * from spotfixevents where id = " . $eventid); +$count = $res->num_rows; +if($count == 1){ + $row = $res->fetch_assoc(); + echo "
"; + echo "
"; + echo "
". $row['description']."
"; + echo "
"; + echo "
Latitude : ". $row['latitude'] . ", Longitude : ". $row['longitude'] . "
"; + echo "
Address : " . $row['address'] . "
"; + $res1 = $con->query("select * from spotfixattendees where eventid=" . $eventid); + $attendCount = $res1->num_rows; + echo "
Number of attendees : $attendCount
"; + if($row['isreported'] == 1){ + echo "
Status : Reported
"; + $res_for_report = $con->query("select * from spotfixreports where eventid=".$eventid); + $row = $res_for_report->fetch_assoc(); + echo "
"; + echo ""; + echo ""; + echo ""; + echo "
Before Pic
After Pic
"; + echo "
Description of the fix : " . $row['Description'] . "
"; + } else { + $res1 = $con->query("select * from spotfixattendees where userid = " . $userid . " and eventid=" . $eventid); + $count1 = $res1->num_rows; + if($count1 == 1){ + echo "
Status : Joined
"; + } else { + echo "
Status : Available TO Join
"; + } + } + + echo "
"; + +} +?> diff --git a/images/bg.jpg b/images/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..564ad48ea691982945eaf23d73f854889227c354 GIT binary patch literal 18616 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 literal 0 HcmV?d00001 diff --git a/img/facebook-icon.png b/img/facebook-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6a21d9322ee60f9867024a8a2698ca9f63a7cf1d GIT binary patch literal 428 zcmV;d0aN~oP)c#I5X+%p)BzMZKth;QKmUN)SMI)MXqtVLb`Iz*bYjp@5P|d0-+aN)Jm)CG z&tHE@HHth3Oeu3?P?Q#c^XF{1z_5P*Es`y#ngeF7JI}E3;O$}V08Is91};ukFgrWc zh(TPK2QIh$=v{{6m!HD<-+ugNxPJdFbsaFd)RjR=Mvy2&?>v6Tkl(Xs;2dxXSPoQD zyBr|J0jI7!V`!Xxgt`vM4L4zs5{1OOnw$^=2RjQ~?%C_l3~xSshx0GrdBw17$2ICY z02z$TY&hzGQ3nhz2b2RHAT{cML6in&u07AN=@1X1^@s6BEU{300001b5ch_0Itp) z=>Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBU%&q+id~XbU7-RI06eY+Rxys8z8V zmr7i!aSg65wpFXORV%Ipkb+p$(&7S&ptvF!)T)gODk?L~Fn}^_0(EJqx98!Ipj821 za`OIi-#z!9d*A!t2KB~5pjD7Yvwkq(bR5X8|E{Um zed$tQpqv~usB!}^xv3;|_N#%uan8<%v-+6q`4v2*TMM=TIgK}-uD2dc)ion{nj5Gt#js(6*VTy z0TQFrl`zARwd*?p&3O}+)}@Q&(z#*VHpx|s)~^@i=FL*ZT9m9_ElFNpXC?ye>qr9t zmuC+|4*H>bJKiN1#UJX|BGq5t*+xubetXX1M zvqtnQSBinP&F5S}nJO4%gY|&P4EQf08L=O*R?!<|bM>0K~8RyQG{DljpeCt+u%uG|fysD#hx;yuK z_m(P>6wjV51!KmDamWzS4<0P~K7Hh(laoXOkskoI4K`c|@JWJ;i$0Hg(!6Aem}bln z^W@1=Gxz6-&#OQrfJUWC21Z_7Q9v zO;%^fqv^vqd;1&rM~;*-W@=$;TbNA+v#4s(LjKn2q*|kqa*~t~B+K0bEaQ4jlga89 zdHo$Jt{#1a%FmVpDM zSgWlid}1Y2a}}W{_5v4XQ&W$T;>JS8bVt*_aSKLY--TJ5cqbecxFQrYflTzHl^Ph59!kaO+YNw}-4YWv#p z1>lkB;*w!tfZ5FS3hgdh?bA7D5Jw1g-oCU|)&n2y0`4VqUnO$$Cei39!QTuyshl)# zE-B8=HK7g;!LLd*3Gj@!w?B2Ar^{sqskVm-@`QE0nh(Dq4gV6b2fq?SNtVB#4}T+m ze^GRy9Fn4}@7b~PJyx;byE$7rC`kBK#{57m15j35)OP_>xTkQAZeA#P?4%E zm87vi=2rj@{Kk#x{Fu|}R;u+lmFtyiij@AIZ3lP|)f?=lK$4a!BbD7w;PjF=eBm3S z=ixnx!B?vuh@*N;hzHPX2BrHn1~^0{aO1XZ$no3WE7chMnN7f~`gZ>T{?8&2bF= + + + + + + + SpotFix + + + + + + + + + + + + + + + +
+
Welcome !!!
+
+ + + + + +
+
+
+ + + + + + + + + + + +
+
+ + + + +
Username :
Password :
+
+
+ + + + + diff --git a/join.php b/join.php new file mode 100644 index 0000000..0dbcfb0 --- /dev/null +++ b/join.php @@ -0,0 +1,56 @@ +query("select * from spotfixevents where id NOT IN(select eventid from spotfixattendees where userid=" . $userid . ")"); + while($row = $res->fetch_assoc()){ + $distArray[] = distance($homelat, $homelon, $row['latitude'], $row['longitude'], $row); + } + usort($distArray, "comp"); + $outputArray = array(); + $i = 0; + foreach($distArray as $val){ + if($i < 5){ + $outputArray[] = $val; + } + $i++; + } + echo json_encode($outputArray); +} +if(isset($_GET['join'])) { + session_start(); + $eventid = $_GET['id']; + $userid = $_SESSION['id']; + include("./connection.php"); + $con = connection :: getConnection(); + $stmt = $con->prepare("insert into spotfixattendees values(NULL,?,?)"); + $stmt->bind_param("ii", $eventid, $userid); + $stmt->execute(); + $lastid = $con->insert_id; + if($lastid > 0){ + echo 1; + } else { + echo 0; + } + +} + +?> diff --git a/js/bootstrap-modal.js b/js/bootstrap-modal.js new file mode 100755 index 0000000..97c684e --- /dev/null +++ b/js/bootstrap-modal.js @@ -0,0 +1,379 @@ +/* =========================================================== + * bootstrap-modal.js v2.2.3 + * =========================================================== + * Copyright 2012 Jordan Schroter + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (element, options) { + this.init(element, options); + }; + + Modal.prototype = { + + constructor: Modal, + + init: function (element, options) { + var that = this; + + this.options = options; + + this.$element = $(element) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)); + + this.options.remote && this.$element.find('.modal-body').load(this.options.remote, function () { + var e = $.Event('loaded'); + that.$element.trigger(e); + }); + + var manager = typeof this.options.manager === 'function' ? + this.options.manager.call(this) : this.options.manager; + + manager = manager.appendModal ? + manager : $(manager).modalmanager().data('modalmanager'); + + manager.appendModal(this); + }, + + toggle: function () { + return this[!this.isShown ? 'show' : 'hide'](); + }, + + show: function () { + var e = $.Event('show'); + + if (this.isShown) return; + + this.$element.trigger(e); + + if (e.isDefaultPrevented()) return; + + this.escape(); + + this.tab(); + + this.options.loading && this.loading(); + }, + + hide: function (e) { + e && e.preventDefault(); + + e = $.Event('hide'); + + this.$element.trigger(e); + + if (!this.isShown || e.isDefaultPrevented()) return (this.isShown = false); + + this.isShown = false; + + this.escape(); + + this.tab(); + + this.isLoading && this.loading(); + + $(document).off('focusin.modal'); + + this.$element + .removeClass('in') + .removeClass('animated') + .removeClass(this.options.attentionAnimation) + .removeClass('modal-overflow') + .attr('aria-hidden', true); + + $.support.transition && this.$element.hasClass('fade') ? + this.hideWithTransition() : + this.hideModal(); + }, + + layout: function () { + var prop = this.options.height ? 'height' : 'max-height', + value = this.options.height || this.options.maxHeight; + + if (this.options.width){ + this.$element.css('width', this.options.width); + + var that = this; + this.$element.css('margin-left', function () { + if (/%/ig.test(that.options.width)){ + return -(parseInt(that.options.width) / 2) + '%'; + } else { + return -($(this).width() / 2) + 'px'; + } + }); + } else { + this.$element.css('width', ''); + this.$element.css('margin-left', ''); + } + + this.$element.find('.modal-body') + .css('overflow', '') + .css(prop, ''); + + if (value){ + this.$element.find('.modal-body') + .css('overflow', 'auto') + .css(prop, value); + } + + var modalOverflow = $(window).height() - 10 < this.$element.height(); + + if (modalOverflow || this.options.modalOverflow) { + this.$element + .css('margin-top', 0) + .addClass('modal-overflow'); + } else { + this.$element + .css('margin-top', 0 - this.$element.height() / 2) + .removeClass('modal-overflow'); + } + }, + + tab: function () { + var that = this; + + if (this.isShown && this.options.consumeTab) { + this.$element.on('keydown.tabindex.modal', '[data-tabindex]', function (e) { + if (e.keyCode && e.keyCode == 9){ + var $next = $(this), + $rollover = $(this); + + that.$element.find('[data-tabindex]:enabled:not([readonly])').each(function (e) { + if (!e.shiftKey){ + $next = $next.data('tabindex') < $(this).data('tabindex') ? + $next = $(this) : + $rollover = $(this); + } else { + $next = $next.data('tabindex') > $(this).data('tabindex') ? + $next = $(this) : + $rollover = $(this); + } + }); + + $next[0] !== $(this)[0] ? + $next.focus() : $rollover.focus(); + + e.preventDefault(); + } + }); + } else if (!this.isShown) { + this.$element.off('keydown.tabindex.modal'); + } + }, + + escape: function () { + var that = this; + if (this.isShown && this.options.keyboard) { + if (!this.$element.attr('tabindex')) this.$element.attr('tabindex', -1); + + this.$element.on('keyup.dismiss.modal', function (e) { + e.which == 27 && that.hide(); + }); + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.modal') + } + }, + + hideWithTransition: function () { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end); + that.hideModal(); + }, 500); + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout); + that.hideModal(); + }); + }, + + hideModal: function () { + var prop = this.options.height ? 'height' : 'max-height'; + var value = this.options.height || this.options.maxHeight; + + if (value){ + this.$element.find('.modal-body') + .css('overflow', '') + .css(prop, ''); + } + + this.$element + .hide() + .trigger('hidden'); + }, + + removeLoading: function () { + this.$loading.remove(); + this.$loading = null; + this.isLoading = false; + }, + + loading: function (callback) { + callback = callback || function () {}; + + var animate = this.$element.hasClass('fade') ? 'fade' : ''; + + if (!this.isLoading) { + var doAnimate = $.support.transition && animate; + + this.$loading = $('
') + .append(this.options.spinner) + .appendTo(this.$element); + + if (doAnimate) this.$loading[0].offsetWidth; // force reflow + + this.$loading.addClass('in'); + + this.isLoading = true; + + doAnimate ? + this.$loading.one($.support.transition.end, callback) : + callback(); + + } else if (this.isLoading && this.$loading) { + this.$loading.removeClass('in'); + + var that = this; + $.support.transition && this.$element.hasClass('fade')? + this.$loading.one($.support.transition.end, function () { that.removeLoading() }) : + that.removeLoading(); + + } else if (callback) { + callback(this.isLoading); + } + }, + + focus: function () { + var $focusElem = this.$element.find(this.options.focusOn); + + $focusElem = $focusElem.length ? $focusElem : this.$element; + + $focusElem.focus(); + }, + + attention: function (){ + // NOTE: transitionEnd with keyframes causes odd behaviour + + if (this.options.attentionAnimation){ + this.$element + .removeClass('animated') + .removeClass(this.options.attentionAnimation); + + var that = this; + + setTimeout(function () { + that.$element + .addClass('animated') + .addClass(that.options.attentionAnimation); + }, 0); + } + + + this.focus(); + }, + + + destroy: function () { + var e = $.Event('destroy'); + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + + this.teardown(); + }, + + teardown: function () { + if (!this.$parent.length){ + this.$element.remove(); + this.$element = null; + return; + } + + if (this.$parent !== this.$element.parent()){ + this.$element.appendTo(this.$parent); + } + + this.$element.off('.modal'); + this.$element.removeData('modal'); + this.$element + .removeClass('in') + .attr('aria-hidden', true); + } + }; + + + /* MODAL PLUGIN DEFINITION + * ======================= */ + + $.fn.modal = function (option, args) { + return this.each(function () { + var $this = $(this), + data = $this.data('modal'), + options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option); + + if (!data) $this.data('modal', (data = new Modal(this, options))); + if (typeof option == 'string') data[option].apply(data, [].concat(args)); + else if (options.show) data.show() + }) + }; + + $.fn.modal.defaults = { + keyboard: true, + backdrop: true, + loading: false, + show: true, + width: null, + height: null, + maxHeight: null, + modalOverflow: false, + consumeTab: true, + focusOn: null, + replace: false, + resize: false, + attentionAnimation: 'shake', + manager: 'body', + spinner: '
', + backdropTemplate: '