| 
									
										
										
										
											2011-09-11 13:24:31 +08:00
										 |  |  | /* ========================================================= | 
					
						
							| 
									
										
										
										
											2012-06-02 02:04:27 +08:00
										 |  |  |  * bootstrap-modal.js v2.0.4 | 
					
						
							| 
									
										
										
										
											2012-01-25 03:08:03 +08:00
										 |  |  |  * http://twitter.github.com/bootstrap/javascript.html#modals
 | 
					
						
							| 
									
										
										
										
											2011-09-11 13:24:31 +08:00
										 |  |  |  * ========================================================= | 
					
						
							| 
									
										
										
										
											2012-01-15 15:28:48 +08:00
										 |  |  |  * Copyright 2012 Twitter, Inc. | 
					
						
							| 
									
										
										
										
											2011-09-11 13:24:31 +08:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  * ========================================================= */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  | !function ($) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   "use strict"; // jshint ;_;
 | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |  /* MODAL CLASS DEFINITION | 
					
						
							|  |  |  |   * ====================== */ | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  |   var Modal = function (content, options) { | 
					
						
							| 
									
										
										
										
											2012-02-06 16:17:31 +08:00
										 |  |  |     this.options = options | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |     this.$element = $(content) | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |       .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Modal.prototype = { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-01 14:42:22 +08:00
										 |  |  |       constructor: Modal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     , toggle: function () { | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         return this[!this.isShown ? 'show' : 'hide']() | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2011-09-11 13:14:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |     , show: function () { | 
					
						
							|  |  |  |         var that = this | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  |           , e = $.Event('show') | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  |         this.$element.trigger(e) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (this.isShown || e.isDefaultPrevented()) return | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-29 04:08:41 +08:00
										 |  |  |         $('body').addClass('modal-open') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         this.isShown = true | 
					
						
							| 
									
										
										
										
											2011-09-11 09:13:37 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         escape.call(this) | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |         backdrop.call(this, function () { | 
					
						
							|  |  |  |           var transition = $.support.transition && that.$element.hasClass('fade') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  |           if (!that.$element.parent().length) { | 
					
						
							|  |  |  |             that.$element.appendTo(document.body) //don't move modals dom position
 | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2012-01-09 06:36:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |           that.$element | 
					
						
							|  |  |  |             .show() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           if (transition) { | 
					
						
							|  |  |  |             that.$element[0].offsetWidth // force reflow
 | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           that.$element.addClass('in') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           transition ? | 
					
						
							| 
									
										
										
										
											2011-11-21 12:58:04 +08:00
										 |  |  |             that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |             that.$element.trigger('shown') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2011-09-10 13:47:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  |     , hide: function (e) { | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         e && e.preventDefault() | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         var that = this | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         e = $.Event('hide') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.$element.trigger(e) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (!this.isShown || e.isDefaultPrevented()) return | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         this.isShown = false | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-01-29 04:08:41 +08:00
										 |  |  |         $('body').removeClass('modal-open') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         escape.call(this) | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-03-25 08:50:21 +08:00
										 |  |  |         this.$element.removeClass('in') | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |         $.support.transition && this.$element.hasClass('fade') ? | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |           hideWithTransition.call(this) : | 
					
						
							|  |  |  |           hideModal.call(this) | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  /* MODAL PRIVATE METHODS | 
					
						
							|  |  |  |   * ===================== */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |   function hideWithTransition() { | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |     var that = this | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |       , timeout = setTimeout(function () { | 
					
						
							| 
									
										
										
										
											2011-12-21 11:37:41 +08:00
										 |  |  |           that.$element.off($.support.transition.end) | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |           hideModal.call(that) | 
					
						
							|  |  |  |         }, 500) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-21 12:58:04 +08:00
										 |  |  |     this.$element.one($.support.transition.end, function () { | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |       clearTimeout(timeout) | 
					
						
							|  |  |  |       hideModal.call(that) | 
					
						
							|  |  |  |     }) | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  |   function hideModal(that) { | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |     this.$element | 
					
						
							|  |  |  |       .hide() | 
					
						
							|  |  |  |       .trigger('hidden') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     backdrop.call(this) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-10-20 12:56:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  |   function backdrop(callback) { | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |     var that = this | 
					
						
							|  |  |  |       , animate = this.$element.hasClass('fade') ? 'fade' : '' | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-21 10:02:47 +08:00
										 |  |  |     if (this.isShown && this.options.backdrop) { | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  |       var doAnimate = $.support.transition && animate | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |       this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />') | 
					
						
							|  |  |  |         .appendTo(document.body) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-21 10:02:47 +08:00
										 |  |  |       if (this.options.backdrop != 'static') { | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  |         this.$backdrop.click($.proxy(this.hide, this)) | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |       if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       this.$backdrop.addClass('in') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       doAnimate ? | 
					
						
							| 
									
										
										
										
											2011-11-21 12:58:04 +08:00
										 |  |  |         this.$backdrop.one($.support.transition.end, callback) : | 
					
						
							| 
									
										
										
										
											2011-10-05 12:48:53 +08:00
										 |  |  |         callback() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     } else if (!this.isShown && this.$backdrop) { | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |       this.$backdrop.removeClass('in') | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |       $.support.transition && this.$element.hasClass('fade')? | 
					
						
							| 
									
										
										
										
											2011-11-21 12:58:04 +08:00
										 |  |  |         this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) : | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |         removeBackdrop.call(this) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     } else if (callback) { | 
					
						
							|  |  |  |       callback() | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-21 10:19:50 +08:00
										 |  |  |   function removeBackdrop() { | 
					
						
							|  |  |  |     this.$backdrop.remove() | 
					
						
							|  |  |  |     this.$backdrop = null | 
					
						
							| 
									
										
										
										
											2011-10-20 12:56:06 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |   function escape() { | 
					
						
							|  |  |  |     var that = this | 
					
						
							| 
									
										
										
										
											2011-12-21 10:02:47 +08:00
										 |  |  |     if (this.isShown && this.options.keyboard) { | 
					
						
							| 
									
										
										
										
											2011-12-21 11:37:41 +08:00
										 |  |  |       $(document).on('keyup.dismiss.modal', function ( e ) { | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |         e.which == 27 && that.hide() | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |       }) | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     } else if (!this.isShown) { | 
					
						
							| 
									
										
										
										
											2011-12-21 11:37:41 +08:00
										 |  |  |       $(document).off('keyup.dismiss.modal') | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  /* MODAL PLUGIN DEFINITION | 
					
						
							|  |  |  |   * ======================= */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  |   $.fn.modal = function (option) { | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     return this.each(function () { | 
					
						
							|  |  |  |       var $this = $(this) | 
					
						
							|  |  |  |         , data = $this.data('modal') | 
					
						
							| 
									
										
										
										
											2012-02-13 03:15:12 +08:00
										 |  |  |         , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option) | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |       if (!data) $this.data('modal', (data = new Modal(this, options))) | 
					
						
							|  |  |  |       if (typeof option == 'string') data[option]() | 
					
						
							| 
									
										
										
										
											2012-02-06 16:17:31 +08:00
										 |  |  |       else if (options.show) data.show() | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |     }) | 
					
						
							| 
									
										
										
										
											2011-08-27 14:57:35 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-28 04:03:06 +08:00
										 |  |  |   $.fn.modal.defaults = { | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |       backdrop: true | 
					
						
							|  |  |  |     , keyboard: true | 
					
						
							| 
									
										
										
										
											2012-02-06 16:17:31 +08:00
										 |  |  |     , show: true | 
					
						
							| 
									
										
										
										
											2011-08-28 04:03:06 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |  /* MODAL DATA-API | 
					
						
							|  |  |  |   * ============== */ | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-21 10:02:47 +08:00
										 |  |  |   $(function () { | 
					
						
							|  |  |  |     $('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) { | 
					
						
							| 
									
										
										
										
											2012-01-28 17:35:13 +08:00
										 |  |  |       var $this = $(this), href | 
					
						
							|  |  |  |         , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
 | 
					
						
							| 
									
										
										
										
											2011-12-21 15:28:48 +08:00
										 |  |  |         , option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data()) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-25 12:04:07 +08:00
										 |  |  |       e.preventDefault() | 
					
						
							| 
									
										
										
										
											2011-12-21 15:28:48 +08:00
										 |  |  |       $target.modal(option) | 
					
						
							| 
									
										
										
										
											2011-09-12 11:08:43 +08:00
										 |  |  |     }) | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-15 07:29:53 +08:00
										 |  |  | }(window.jQuery); |