| 
									
										
										
										
											2013-05-22 10:30:33 +08:00
										 |  |  | /* ======================================================================== | 
					
						
							| 
									
										
										
										
											2014-02-13 17:12:26 +08:00
										 |  |  |  * Bootstrap: modal.js v3.1.1 | 
					
						
							| 
									
										
										
										
											2013-10-30 01:10:47 +08:00
										 |  |  |  * http://getbootstrap.com/javascript/#modals
 | 
					
						
							| 
									
										
										
										
											2013-05-22 10:30:33 +08:00
										 |  |  |  * ======================================================================== | 
					
						
							| 
									
										
										
										
											2014-01-07 08:05:24 +08:00
										 |  |  |  * Copyright 2011-2014 Twitter, Inc. | 
					
						
							| 
									
										
										
										
											2013-12-19 07:28:08 +08:00
										 |  |  |  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 | 
					
						
							| 
									
										
										
										
											2013-05-22 10:30:33 +08:00
										 |  |  |  * ======================================================================== */ | 
					
						
							| 
									
										
										
										
											2011-09-11 13:24:31 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-01 22:42:41 +08:00
										 |  |  | +function ($) { | 
					
						
							|  |  |  |   'use strict'; | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   // MODAL CLASS DEFINITION
 | 
					
						
							|  |  |  |   // ======================
 | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-07-23 09:28:39 +08:00
										 |  |  |   var Modal = function (element, options) { | 
					
						
							| 
									
										
										
										
											2014-03-18 03:04:58 +08:00
										 |  |  |     this.options        = options | 
					
						
							|  |  |  |     this.$body          = $(document.body) | 
					
						
							|  |  |  |     this.$element       = $(element) | 
					
						
							|  |  |  |     this.$backdrop      = | 
					
						
							|  |  |  |     this.isShown        = null | 
					
						
							|  |  |  |     this.scrollbarWidth = 0 | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-30 09:53:59 +08:00
										 |  |  |     if (this.options.remote) { | 
					
						
							|  |  |  |       this.$element | 
					
						
							|  |  |  |         .find('.modal-content') | 
					
						
							|  |  |  |         .load(this.options.remote, $.proxy(function () { | 
					
						
							|  |  |  |           this.$element.trigger('loaded.bs.modal') | 
					
						
							|  |  |  |         }, this)) | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-13 12:15:16 +08:00
										 |  |  |   Modal.VERSION  = '3.1.1' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   Modal.DEFAULTS = { | 
					
						
							| 
									
										
										
										
											2013-12-16 03:04:32 +08:00
										 |  |  |     backdrop: true, | 
					
						
							|  |  |  |     keyboard: true, | 
					
						
							|  |  |  |     show: true | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-12-01 14:42:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-09 15:16:47 +08:00
										 |  |  |   Modal.prototype.toggle = function (_relatedTarget) { | 
					
						
							| 
									
										
										
										
											2014-02-26 09:04:38 +08:00
										 |  |  |     return this.isShown ? this.hide() : this.show(_relatedTarget) | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-09-11 13:14:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-09 15:16:47 +08:00
										 |  |  |   Modal.prototype.show = function (_relatedTarget) { | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     var that = this | 
					
						
							| 
									
										
										
										
											2013-08-09 15:16:47 +08:00
										 |  |  |     var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.$element.trigger(e) | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     if (this.isShown || e.isDefaultPrevented()) return | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.isShown = true | 
					
						
							| 
									
										
										
										
											2011-09-11 09:13:37 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-18 03:04:58 +08:00
										 |  |  |     this.checkScrollbar() | 
					
						
							| 
									
										
										
										
											2014-03-17 09:38:47 +08:00
										 |  |  |     this.$body.addClass('modal-open') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     this.setScrollbar() | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.escape() | 
					
						
							| 
									
										
										
										
											2012-05-17 10:09:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-17 20:21:57 +08:00
										 |  |  |     this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) | 
					
						
							| 
									
										
										
										
											2013-08-18 05:24:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.backdrop(function () { | 
					
						
							|  |  |  |       var transition = $.support.transition && that.$element.hasClass('fade') | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       if (!that.$element.parent().length) { | 
					
						
							| 
									
										
										
										
											2014-03-17 09:38:47 +08:00
										 |  |  |         that.$element.appendTo(that.$body) // don't move modals dom position
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2012-01-09 06:36:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-30 09:53:59 +08:00
										 |  |  |       that.$element | 
					
						
							|  |  |  |         .show() | 
					
						
							|  |  |  |         .scrollTop(0) | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       if (transition) { | 
					
						
							|  |  |  |         that.$element[0].offsetWidth // force reflow
 | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       that.$element | 
					
						
							|  |  |  |         .addClass('in') | 
					
						
							|  |  |  |         .attr('aria-hidden', false) | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       that.enforceFocus() | 
					
						
							| 
									
										
										
										
											2012-05-17 10:09:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-09 15:16:47 +08:00
										 |  |  |       var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       transition ? | 
					
						
							| 
									
										
										
										
											2013-08-18 06:05:59 +08:00
										 |  |  |         that.$element.find('.modal-dialog') // wait for modal to slide in
 | 
					
						
							| 
									
										
										
										
											2013-07-24 09:44:08 +08:00
										 |  |  |           .one($.support.transition.end, function () { | 
					
						
							| 
									
										
										
										
											2014-02-17 03:06:31 +08:00
										 |  |  |             that.$element.trigger('focus').trigger(e) | 
					
						
							| 
									
										
										
										
											2013-07-24 09:44:08 +08:00
										 |  |  |           }) | 
					
						
							|  |  |  |           .emulateTransitionEnd(300) : | 
					
						
							| 
									
										
										
										
											2014-02-17 03:06:31 +08:00
										 |  |  |         that.$element.trigger('focus').trigger(e) | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     }) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-09-10 13:47:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:44:50 +08:00
										 |  |  |   Modal.prototype.hide = function (e) { | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     if (e) e.preventDefault() | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |     e = $.Event('hide.bs.modal') | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.$element.trigger(e) | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     if (!this.isShown || e.isDefaultPrevented()) return | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.isShown = false | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-17 09:38:47 +08:00
										 |  |  |     this.$body.removeClass('modal-open') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     this.resetScrollbar() | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.escape() | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |     $(document).off('focusin.bs.modal') | 
					
						
							| 
									
										
										
										
											2012-05-17 10:43:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.$element | 
					
						
							|  |  |  |       .removeClass('in') | 
					
						
							|  |  |  |       .attr('aria-hidden', true) | 
					
						
							| 
									
										
										
										
											2014-01-17 20:21:57 +08:00
										 |  |  |       .off('click.dismiss.bs.modal') | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     $.support.transition && this.$element.hasClass('fade') ? | 
					
						
							| 
									
										
										
										
											2013-07-24 09:44:08 +08:00
										 |  |  |       this.$element | 
					
						
							|  |  |  |         .one($.support.transition.end, $.proxy(this.hideModal, this)) | 
					
						
							|  |  |  |         .emulateTransitionEnd(300) : | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       this.hideModal() | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   Modal.prototype.enforceFocus = function () { | 
					
						
							| 
									
										
										
										
											2013-05-25 14:53:44 +08:00
										 |  |  |     $(document) | 
					
						
							|  |  |  |       .off('focusin.bs.modal') // guard against infinite focus loop
 | 
					
						
							| 
									
										
										
										
											2013-05-29 23:24:00 +08:00
										 |  |  |       .on('focusin.bs.modal', $.proxy(function (e) { | 
					
						
							|  |  |  |         if (this.$element[0] !== e.target && !this.$element.has(e.target).length) { | 
					
						
							| 
									
										
										
										
											2014-02-17 03:06:31 +08:00
										 |  |  |           this.$element.trigger('focus') | 
					
						
							| 
									
										
										
										
											2013-05-29 23:24:00 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |       }, this)) | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   Modal.prototype.escape = function () { | 
					
						
							|  |  |  |     if (this.isShown && this.options.keyboard) { | 
					
						
							| 
									
										
										
										
											2013-05-29 23:24:00 +08:00
										 |  |  |       this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) { | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |         e.which == 27 && this.hide() | 
					
						
							| 
									
										
										
										
											2013-05-29 23:24:00 +08:00
										 |  |  |       }, this)) | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     } else if (!this.isShown) { | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |       this.$element.off('keyup.dismiss.bs.modal') | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   Modal.prototype.hideModal = function () { | 
					
						
							|  |  |  |     var that = this | 
					
						
							|  |  |  |     this.$element.hide() | 
					
						
							|  |  |  |     this.backdrop(function () { | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |       that.$element.trigger('hidden.bs.modal') | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     }) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:44:50 +08:00
										 |  |  |   Modal.prototype.removeBackdrop = function () { | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     this.$backdrop && this.$backdrop.remove() | 
					
						
							|  |  |  |     this.$backdrop = null | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:44:50 +08:00
										 |  |  |   Modal.prototype.backdrop = function (callback) { | 
					
						
							| 
									
										
										
										
											2013-12-21 01:37:47 +08:00
										 |  |  |     var that = this | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     var animate = this.$element.hasClass('fade') ? 'fade' : '' | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     if (this.isShown && this.options.backdrop) { | 
					
						
							|  |  |  |       var doAnimate = $.support.transition && animate | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') | 
					
						
							| 
									
										
										
										
											2014-03-17 09:38:47 +08:00
										 |  |  |         .appendTo(this.$body) | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-17 20:21:57 +08:00
										 |  |  |       this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { | 
					
						
							| 
									
										
										
										
											2013-07-18 14:01:33 +08:00
										 |  |  |         if (e.target !== e.currentTarget) return | 
					
						
							|  |  |  |         this.options.backdrop == 'static' | 
					
						
							|  |  |  |           ? this.$element[0].focus.call(this.$element[0]) | 
					
						
							|  |  |  |           : this.hide.call(this) | 
					
						
							|  |  |  |       }, this)) | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       this.$backdrop.addClass('in') | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       if (!callback) return | 
					
						
							| 
									
										
										
										
											2013-02-08 11:45:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       doAnimate ? | 
					
						
							| 
									
										
										
										
											2013-07-24 09:44:08 +08:00
										 |  |  |         this.$backdrop | 
					
						
							|  |  |  |           .one($.support.transition.end, callback) | 
					
						
							|  |  |  |           .emulateTransitionEnd(150) : | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |         callback() | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     } else if (!this.isShown && this.$backdrop) { | 
					
						
							|  |  |  |       this.$backdrop.removeClass('in') | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-17 15:12:55 +08:00
										 |  |  |       var callbackRemove = function () { | 
					
						
							| 
									
										
										
										
											2013-12-21 01:37:47 +08:00
										 |  |  |         that.removeBackdrop() | 
					
						
							|  |  |  |         callback && callback() | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2013-12-07 08:51:59 +08:00
										 |  |  |       $.support.transition && this.$element.hasClass('fade') ? | 
					
						
							| 
									
										
										
										
											2013-07-24 09:44:08 +08:00
										 |  |  |         this.$backdrop | 
					
						
							| 
									
										
										
										
											2013-12-21 01:37:47 +08:00
										 |  |  |           .one($.support.transition.end, callbackRemove) | 
					
						
							| 
									
										
										
										
											2013-07-24 09:44:08 +08:00
										 |  |  |           .emulateTransitionEnd(150) : | 
					
						
							| 
									
										
										
										
											2013-12-21 01:37:47 +08:00
										 |  |  |         callbackRemove() | 
					
						
							| 
									
										
										
										
											2011-10-20 12:56:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     } else if (callback) { | 
					
						
							|  |  |  |       callback() | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-03-18 03:04:58 +08:00
										 |  |  |   Modal.prototype.checkScrollbar = function () { | 
					
						
							|  |  |  |     if (document.body.clientWidth >= window.innerWidth) return | 
					
						
							|  |  |  |     this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar() | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-05-29 12:35:22 +08:00
										 |  |  |   Modal.prototype.setScrollbar = function () { | 
					
						
							| 
									
										
										
										
											2014-03-17 15:12:55 +08:00
										 |  |  |     var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) | 
					
						
							| 
									
										
										
										
											2014-03-18 03:04:58 +08:00
										 |  |  |     if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) | 
					
						
							| 
									
										
										
										
											2014-03-17 09:38:47 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Modal.prototype.resetScrollbar = function () { | 
					
						
							|  |  |  |     this.$body.css('padding-right', '') | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Modal.prototype.measureScrollbar = function () { // thx walsh
 | 
					
						
							|  |  |  |     var scrollDiv = document.createElement('div') | 
					
						
							|  |  |  |     scrollDiv.className = 'modal-scrollbar-measure' | 
					
						
							|  |  |  |     this.$body.append(scrollDiv) | 
					
						
							|  |  |  |     var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth | 
					
						
							|  |  |  |     this.$body[0].removeChild(scrollDiv) | 
					
						
							|  |  |  |     return scrollbarWidth | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   // MODAL PLUGIN DEFINITION
 | 
					
						
							|  |  |  |   // =======================
 | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-22 13:03:33 +08:00
										 |  |  |   function Plugin(option, _relatedTarget) { | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     return this.each(function () { | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       var $this   = $(this) | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |       var data    = $this.data('bs.modal') | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |       var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |       if (!data) $this.data('bs.modal', (data = new Modal(this, options))) | 
					
						
							| 
									
										
										
										
											2013-08-09 15:16:47 +08:00
										 |  |  |       if (typeof option == 'string') data[option](_relatedTarget) | 
					
						
							|  |  |  |       else if (options.show) data.show(_relatedTarget) | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     }) | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-22 13:03:33 +08:00
										 |  |  |   var old = $.fn.modal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   $.fn.modal             = Plugin | 
					
						
							| 
									
										
										
										
											2011-12-21 15:28:48 +08:00
										 |  |  |   $.fn.modal.Constructor = Modal | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   // MODAL NO CONFLICT
 | 
					
						
							|  |  |  |   // =================
 | 
					
						
							| 
									
										
										
										
											2012-12-08 06:06:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   $.fn.modal.noConflict = function () { | 
					
						
							|  |  |  |     $.fn.modal = old | 
					
						
							|  |  |  |     return this | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |   // MODAL DATA-API
 | 
					
						
							|  |  |  |   // ==============
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-17 11:19:51 +08:00
										 |  |  |   $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { | 
					
						
							| 
									
										
										
										
											2013-05-17 08:18:15 +08:00
										 |  |  |     var $this   = $(this) | 
					
						
							|  |  |  |     var href    = $this.attr('href') | 
					
						
							|  |  |  |     var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
 | 
					
						
							| 
									
										
										
										
											2013-12-27 09:53:31 +08:00
										 |  |  |     var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) | 
					
						
							| 
									
										
										
										
											2012-09-28 06:00:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-27 17:32:06 +08:00
										 |  |  |     if ($this.is('a')) e.preventDefault() | 
					
						
							| 
									
										
										
										
											2012-09-28 06:00:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-22 13:03:33 +08:00
										 |  |  |     Plugin.call($target, option, this) | 
					
						
							| 
									
										
										
										
											2014-05-17 08:05:03 +08:00
										 |  |  |     $target.one('hide.bs.modal', function () { | 
					
						
							| 
									
										
										
										
											2014-04-22 13:03:33 +08:00
										 |  |  |       $this.is(':visible') && $this.trigger('focus') | 
					
						
							|  |  |  |     }) | 
					
						
							| 
									
										
										
										
											2013-07-25 11:21:23 +08:00
										 |  |  |   }) | 
					
						
							| 
									
										
										
										
											2013-02-06 18:07:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-23 02:50:15 +08:00
										 |  |  | }(jQuery); |