gollum 1.4.2 → 1.4.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of gollum might be problematic. Click here for more details.

Files changed (24) hide show
  1. data/README.md +6 -0
  2. data/gollum.gemspec +20 -20
  3. data/lib/gollum.rb +5 -1
  4. data/lib/gollum/frontend/app.rb +1 -1
  5. data/lib/gollum/frontend/public/{css → gollum/css}/dialog.css +5 -5
  6. data/lib/gollum/frontend/public/{css → gollum/css}/editor.css +31 -31
  7. data/lib/gollum/frontend/public/{css → gollum/css}/gollum.css +85 -85
  8. data/lib/gollum/frontend/public/{css → gollum/css}/ie7.css +0 -0
  9. data/lib/gollum/frontend/public/{css → gollum/css}/template.css +13 -13
  10. data/lib/gollum/frontend/public/{images → gollum/images}/icon-sprite.png +0 -0
  11. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/gollum.editor.js +0 -0
  12. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/asciidoc.js +0 -0
  13. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/creole.js +0 -0
  14. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/markdown.js +0 -0
  15. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/org.js +0 -0
  16. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/pod.js +0 -0
  17. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/rdoc.js +0 -0
  18. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/editor/langs/textile.js +0 -0
  19. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/gollum.dialog.js +0 -0
  20. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/gollum.js +0 -0
  21. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/gollum.placeholder.js +15 -15
  22. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/jquery.color.js +4 -4
  23. data/lib/gollum/frontend/public/{javascript → gollum/javascript}/jquery.js +124 -124
  24. metadata +23 -23
@@ -38,14 +38,14 @@ a.absent {
38
38
  margin: 1em 0;
39
39
  padding: 0;
40
40
  }
41
-
41
+
42
42
  /* ReST first graf in nested list */
43
43
  #template * li p.first {
44
44
  display: inline-block;
45
45
  }
46
46
 
47
47
  /* Headings */
48
- #template h1, #template h2, #template h3,
48
+ #template h1, #template h2, #template h3,
49
49
  #template h4, #template h5, #template h6 {
50
50
  margin: 0;
51
51
  padding: 0;
@@ -91,7 +91,7 @@ a.absent {
91
91
 
92
92
  #template h6 {
93
93
  color: #666;
94
- font-size: 14px;
94
+ font-size: 14px;
95
95
  line-height: 26px;
96
96
  margin-bottom: -19px;
97
97
  padding: 18px 0 0;
@@ -107,8 +107,8 @@ a.absent {
107
107
  padding: 0;
108
108
  }
109
109
 
110
- /* Border Reset for headers with horizontal rules */
111
- #template > h2:first-child,
110
+ /* Border Reset for headers with horizontal rules */
111
+ #template > h2:first-child,
112
112
  #template > h1:first-child {
113
113
  margin: 12px 0 0;
114
114
  padding: 10px 0 0;
@@ -116,20 +116,20 @@ a.absent {
116
116
 
117
117
 
118
118
  /* Lists, Blockquotes & Such */
119
- #template ul,
119
+ #template ul,
120
120
  #template ol {
121
121
  margin-top: 1.5em;
122
122
  margin-left: 2.6em;
123
123
  }
124
124
 
125
125
  /* Nested Lists */
126
- #template ul li,
127
- #template ol li,
128
- #template ul li ul,
126
+ #template ul li,
127
+ #template ol li,
128
+ #template ul li ul,
129
129
  #template ol li ol,
130
130
  #template ul li ol,
131
131
  #template ol li ul,
132
- #template ul ul,
132
+ #template ul ul,
133
133
  #template ol ol {
134
134
  padding: 0;
135
135
  margin: .5em 0;
@@ -181,7 +181,7 @@ a.absent {
181
181
  border: 1px solid #ccc;
182
182
  text-align: left;
183
183
  margin: 0;
184
- padding: 6px 13px;
184
+ padding: 6px 13px;
185
185
  }
186
186
 
187
187
  /* Images & Stuff */
@@ -267,7 +267,7 @@ a.absent {
267
267
  }
268
268
 
269
269
  #template span.float-right {
270
- display: block;
270
+ display: block;
271
271
  margin-left: 13px;
272
272
  overflow: hidden;
273
273
  float: right;
@@ -316,7 +316,7 @@ pre, code {
316
316
  }
317
317
 
318
318
  /*
319
- Highlight rules from pull req 191
319
+ Highlight rules from pull req 191
320
320
  https://github.com/eboto/gollum/commit/5df09477abf4a04c82c7fcaa2bd7ee2a85e7ec82
321
321
  */
322
322
  #template .highlight { background:#fff; }
@@ -1,24 +1,24 @@
1
1
  (function($) {
2
2
 
3
3
  var Placeholder = {
4
-
4
+
5
5
  _PLACEHOLDERS : [],
6
-
6
+
7
7
  _p : function( $field ) {
8
-
9
- this.fieldObject = $field;
8
+
9
+ this.fieldObject = $field;
10
10
  this.placeholderText = $field.val();
11
11
  var placeholderText = $field.val();
12
-
12
+
13
13
  $field.addClass('ph');
14
-
14
+
15
15
  $field.blur(function() {
16
16
  if ( $(this).val() == '' ) {
17
17
  $(this).val( placeholderText );
18
18
  $(this).addClass('ph');
19
19
  }
20
20
  });
21
-
21
+
22
22
  $field.focus(function() {
23
23
  $(this).removeClass('ph');
24
24
  if ( $(this).val() == placeholderText ) {
@@ -27,28 +27,28 @@
27
27
  $(this)[0].select();
28
28
  }
29
29
  });
30
-
30
+
31
31
  },
32
-
32
+
33
33
  add : function( $field ) {
34
34
  Placeholder._PLACEHOLDERS.push( new Placeholder._p( $field ) );
35
35
  },
36
-
36
+
37
37
  clearAll: function() {
38
38
  for ( var i=0; i < Placeholder._PLACEHOLDERS.length; i++ ) {
39
- if ( Placeholder._PLACEHOLDERS[i].fieldObject.val() ==
39
+ if ( Placeholder._PLACEHOLDERS[i].fieldObject.val() ==
40
40
  Placeholder._PLACEHOLDERS[i].placeholderText ) {
41
41
  Placeholder._PLACEHOLDERS[i].fieldObject.val('');
42
42
  }
43
43
  }
44
44
  },
45
-
45
+
46
46
  exists : function() {
47
47
  return ( _PLACEHOLDERS.length );
48
48
  }
49
-
49
+
50
50
  };
51
-
51
+
52
52
  $.GollumPlaceholder = Placeholder;
53
-
53
+
54
54
  })(jQuery);
@@ -53,7 +53,7 @@
53
53
  // Otherwise, we're most likely dealing with a named color
54
54
  return colors[jQuery.trim(color).toLowerCase()];
55
55
  }
56
-
56
+
57
57
  function getColor(elem, attr) {
58
58
  var color;
59
59
 
@@ -62,14 +62,14 @@
62
62
 
63
63
  // Keep going until we find an element that has color, or we hit the body
64
64
  if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
65
- break;
65
+ break;
66
66
 
67
67
  attr = "backgroundColor";
68
68
  } while ( elem = elem.parentNode );
69
69
 
70
70
  return getRGB(color);
71
71
  };
72
-
72
+
73
73
  // Some named colors to work with
74
74
  // From Interface by Stefan Petre
75
75
  // http://interface.eyecon.ro/
@@ -119,5 +119,5 @@
119
119
  white:[255,255,255],
120
120
  yellow:[255,255,0]
121
121
  };
122
-
122
+
123
123
  })(jQuery);
@@ -75,10 +75,10 @@ var jQuery = function( selector, context ) {
75
75
 
76
76
  // For matching the engine and version of the browser
77
77
  browserMatch,
78
-
78
+
79
79
  // Has the ready events already been bound?
80
80
  readyBound = false,
81
-
81
+
82
82
  // The functions to execute on DOM ready
83
83
  readyList = [],
84
84
 
@@ -92,7 +92,7 @@ var jQuery = function( selector, context ) {
92
92
  slice = Array.prototype.slice,
93
93
  trim = String.prototype.trim,
94
94
  indexOf = Array.prototype.indexOf,
95
-
95
+
96
96
  // [[Class]] -> type pairs
97
97
  class2type = {};
98
98
 
@@ -111,7 +111,7 @@ jQuery.fn = jQuery.prototype = {
111
111
  this.length = 1;
112
112
  return this;
113
113
  }
114
-
114
+
115
115
  // The body element only exists once, optimize finding it
116
116
  if ( selector === "body" && !context && document.body ) {
117
117
  this.context = document;
@@ -150,9 +150,9 @@ jQuery.fn = jQuery.prototype = {
150
150
  ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
151
151
  selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
152
152
  }
153
-
153
+
154
154
  return jQuery.merge( this, selector );
155
-
155
+
156
156
  // HANDLE: $("#id")
157
157
  } else {
158
158
  elem = document.getElementById( match[2] );
@@ -245,7 +245,7 @@ jQuery.fn = jQuery.prototype = {
245
245
 
246
246
  if ( jQuery.isArray( elems ) ) {
247
247
  push.apply( ret, elems );
248
-
248
+
249
249
  } else {
250
250
  jQuery.merge( ret, elems );
251
251
  }
@@ -271,7 +271,7 @@ jQuery.fn = jQuery.prototype = {
271
271
  each: function( callback, args ) {
272
272
  return jQuery.each( this, callback, args );
273
273
  },
274
-
274
+
275
275
  ready: function( fn ) {
276
276
  // Attach the listeners
277
277
  jQuery.bindReady();
@@ -289,7 +289,7 @@ jQuery.fn = jQuery.prototype = {
289
289
 
290
290
  return this;
291
291
  },
292
-
292
+
293
293
  eq: function( i ) {
294
294
  return i === -1 ?
295
295
  this.slice( i ) :
@@ -314,7 +314,7 @@ jQuery.fn = jQuery.prototype = {
314
314
  return callback.call( elem, i, elem );
315
315
  }));
316
316
  },
317
-
317
+
318
318
  end: function() {
319
319
  return this.prevObject || jQuery(null);
320
320
  },
@@ -403,14 +403,14 @@ jQuery.extend({
403
403
 
404
404
  return jQuery;
405
405
  },
406
-
406
+
407
407
  // Is the DOM ready to be used? Set to true once it occurs.
408
408
  isReady: false,
409
409
 
410
410
  // A counter to track how many items to wait for before
411
411
  // the ready event fires. See #6781
412
412
  readyWait: 1,
413
-
413
+
414
414
  // Handle when the DOM is ready
415
415
  ready: function( wait ) {
416
416
  // A third-party is pushing the ready event forwards
@@ -454,7 +454,7 @@ jQuery.extend({
454
454
  }
455
455
  }
456
456
  },
457
-
457
+
458
458
  bindReady: function() {
459
459
  if ( readyBound ) {
460
460
  return;
@@ -473,7 +473,7 @@ jQuery.extend({
473
473
  if ( document.addEventListener ) {
474
474
  // Use the handy event callback
475
475
  document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
476
-
476
+
477
477
  // A fallback to window.onload, that will always work
478
478
  window.addEventListener( "load", jQuery.ready, false );
479
479
 
@@ -482,7 +482,7 @@ jQuery.extend({
482
482
  // ensure firing before onload,
483
483
  // maybe late but safe also for iframes
484
484
  document.attachEvent("onreadystatechange", DOMContentLoaded);
485
-
485
+
486
486
  // A fallback to window.onload, that will always work
487
487
  window.attachEvent( "onload", jQuery.ready );
488
488
 
@@ -533,20 +533,20 @@ jQuery.extend({
533
533
  if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
534
534
  return false;
535
535
  }
536
-
536
+
537
537
  // Not own constructor property must be Object
538
538
  if ( obj.constructor &&
539
539
  !hasOwn.call(obj, "constructor") &&
540
540
  !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
541
541
  return false;
542
542
  }
543
-
543
+
544
544
  // Own properties are enumerated firstly, so to speed up,
545
545
  // if last one is own, then all properties are own.
546
-
546
+
547
547
  var key;
548
548
  for ( key in obj ) {}
549
-
549
+
550
550
  return key === undefined || hasOwn.call( obj, key );
551
551
  },
552
552
 
@@ -556,11 +556,11 @@ jQuery.extend({
556
556
  }
557
557
  return true;
558
558
  },
559
-
559
+
560
560
  error: function( msg ) {
561
561
  throw msg;
562
562
  },
563
-
563
+
564
564
  parseJSON: function( data ) {
565
565
  if ( typeof data !== "string" || !data ) {
566
566
  return null;
@@ -568,7 +568,7 @@ jQuery.extend({
568
568
 
569
569
  // Make sure leading/trailing whitespace is removed (IE can't handle it)
570
570
  data = jQuery.trim( data );
571
-
571
+
572
572
  // Make sure the incoming data is actual JSON
573
573
  // Logic borrowed from http://json.org/json2.js
574
574
  if ( rvalidchars.test(data.replace(rvalidescape, "@")
@@ -710,7 +710,7 @@ jQuery.extend({
710
710
  for ( var l = second.length; j < l; j++ ) {
711
711
  first[ i++ ] = second[ j ];
712
712
  }
713
-
713
+
714
714
  } else {
715
715
  while ( second[j] !== undefined ) {
716
716
  first[ i++ ] = second[ j++ ];
@@ -790,7 +790,7 @@ jQuery.extend({
790
790
  // The value/s can be optionally by executed if its a function
791
791
  access: function( elems, key, value, exec, fn, pass ) {
792
792
  var length = elems.length;
793
-
793
+
794
794
  // Setting many attributes
795
795
  if ( typeof key === "object" ) {
796
796
  for ( var k in key ) {
@@ -798,19 +798,19 @@ jQuery.extend({
798
798
  }
799
799
  return elems;
800
800
  }
801
-
801
+
802
802
  // Setting one attribute
803
803
  if ( value !== undefined ) {
804
804
  // Optionally, function values get executed if exec is true
805
805
  exec = !pass && exec && jQuery.isFunction(value);
806
-
806
+
807
807
  for ( var i = 0; i < length; i++ ) {
808
808
  fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
809
809
  }
810
-
810
+
811
811
  return elems;
812
812
  }
813
-
813
+
814
814
  // Getting an attribute
815
815
  return length ? fn( elems[0], key ) : undefined;
816
816
  },
@@ -1115,7 +1115,7 @@ jQuery.extend({
1115
1115
  // Please use with caution
1116
1116
  uuid: 0,
1117
1117
 
1118
- // Unique for each copy of jQuery on the page
1118
+ // Unique for each copy of jQuery on the page
1119
1119
  expando: "jQuery" + jQuery.now(),
1120
1120
 
1121
1121
  // The following elements throw uncatchable exceptions if you
@@ -1607,7 +1607,7 @@ jQuery.fn.extend({
1607
1607
  var option = options[ i ];
1608
1608
 
1609
1609
  // Don't return options that are disabled or in a disabled optgroup
1610
- if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
1610
+ if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
1611
1611
  (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
1612
1612
 
1613
1613
  // Get the specific value for the option
@@ -1630,7 +1630,7 @@ jQuery.fn.extend({
1630
1630
  if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
1631
1631
  return elem.getAttribute("value") === null ? "on" : elem.value;
1632
1632
  }
1633
-
1633
+
1634
1634
 
1635
1635
  // Everything else, we just grab the value
1636
1636
  return (elem.value || "").replace(rreturn, "");
@@ -1696,7 +1696,7 @@ jQuery.extend({
1696
1696
  height: true,
1697
1697
  offset: true
1698
1698
  },
1699
-
1699
+
1700
1700
  attr: function( elem, name, value, pass ) {
1701
1701
  // don't set attributes on text and comment nodes
1702
1702
  if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
@@ -1865,7 +1865,7 @@ jQuery.event = {
1865
1865
  var eventKey = elem.nodeType ? "events" : "__events__",
1866
1866
  events = elemData[ eventKey ],
1867
1867
  eventHandle = elemData.handle;
1868
-
1868
+
1869
1869
  if ( typeof events === "function" ) {
1870
1870
  // On plain objects events is a fn that holds the the data
1871
1871
  // which prevents this data from being JSON serialized
@@ -1945,9 +1945,9 @@ jQuery.event = {
1945
1945
  }
1946
1946
  }
1947
1947
  }
1948
-
1949
- if ( special.add ) {
1950
- special.add.call( elem, handleObj );
1948
+
1949
+ if ( special.add ) {
1950
+ special.add.call( elem, handleObj );
1951
1951
 
1952
1952
  if ( !handleObj.handler.guid ) {
1953
1953
  handleObj.handler.guid = handler.guid;
@@ -1986,7 +1986,7 @@ jQuery.event = {
1986
1986
  if ( !elemData || !events ) {
1987
1987
  return;
1988
1988
  }
1989
-
1989
+
1990
1990
  if ( typeof events === "function" ) {
1991
1991
  elemData = events;
1992
1992
  events = events.events;
@@ -2024,7 +2024,7 @@ jQuery.event = {
2024
2024
  namespaces = type.split(".");
2025
2025
  type = namespaces.shift();
2026
2026
 
2027
- namespace = new RegExp("(^|\\.)" +
2027
+ namespace = new RegExp("(^|\\.)" +
2028
2028
  jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
2029
2029
  }
2030
2030
 
@@ -2186,7 +2186,7 @@ jQuery.event = {
2186
2186
  isClick = jQuery.nodeName( target, "a" ) && targetType === "click",
2187
2187
  special = jQuery.event.special[ targetType ] || {};
2188
2188
 
2189
- if ( (!special._default || special._default.call( elem, event ) === false) &&
2189
+ if ( (!special._default || special._default.call( elem, event ) === false) &&
2190
2190
  !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
2191
2191
 
2192
2192
  try {
@@ -2256,7 +2256,7 @@ jQuery.event = {
2256
2256
  event.handler = handleObj.handler;
2257
2257
  event.data = handleObj.data;
2258
2258
  event.handleObj = handleObj;
2259
-
2259
+
2260
2260
  var ret = handleObj.handler.apply( this, args );
2261
2261
 
2262
2262
  if ( ret !== undefined ) {
@@ -2355,7 +2355,7 @@ jQuery.event = {
2355
2355
  add: function( handleObj ) {
2356
2356
  jQuery.event.add( this,
2357
2357
  liveConvert( handleObj.origType, handleObj.selector ),
2358
- jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
2358
+ jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
2359
2359
  },
2360
2360
 
2361
2361
  remove: function( handleObj ) {
@@ -2385,7 +2385,7 @@ jQuery.removeEvent = document.removeEventListener ?
2385
2385
  if ( elem.removeEventListener ) {
2386
2386
  elem.removeEventListener( type, handle, false );
2387
2387
  }
2388
- } :
2388
+ } :
2389
2389
  function( elem, type, handle ) {
2390
2390
  if ( elem.detachEvent ) {
2391
2391
  elem.detachEvent( "on" + type, handle );
@@ -2432,7 +2432,7 @@ jQuery.Event.prototype = {
2432
2432
  if ( !e ) {
2433
2433
  return;
2434
2434
  }
2435
-
2435
+
2436
2436
  // if preventDefault exists run it on the original event
2437
2437
  if ( e.preventDefault ) {
2438
2438
  e.preventDefault();
@@ -2528,7 +2528,7 @@ if ( !jQuery.support.submitBubbles ) {
2528
2528
  return trigger( "submit", this, arguments );
2529
2529
  }
2530
2530
  });
2531
-
2531
+
2532
2532
  jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
2533
2533
  var elem = e.target,
2534
2534
  type = elem.type;
@@ -2590,7 +2590,7 @@ if ( !jQuery.support.changeBubbles ) {
2590
2590
  if ( e.type !== "focusout" || elem.type !== "radio" ) {
2591
2591
  jQuery.data( elem, "_change_data", val );
2592
2592
  }
2593
-
2593
+
2594
2594
  if ( data === undefined || val === data ) {
2595
2595
  return;
2596
2596
  }
@@ -2604,7 +2604,7 @@ if ( !jQuery.support.changeBubbles ) {
2604
2604
 
2605
2605
  jQuery.event.special.change = {
2606
2606
  filters: {
2607
- focusout: testChange,
2607
+ focusout: testChange,
2608
2608
 
2609
2609
  beforedeactivate: testChange,
2610
2610
 
@@ -2675,15 +2675,15 @@ if ( document.addEventListener ) {
2675
2675
  if ( focusCounts[fix]++ === 0 ) {
2676
2676
  document.addEventListener( orig, handler, true );
2677
2677
  }
2678
- },
2679
- teardown: function() {
2678
+ },
2679
+ teardown: function() {
2680
2680
  if ( --focusCounts[fix] === 0 ) {
2681
2681
  document.removeEventListener( orig, handler, true );
2682
2682
  }
2683
2683
  }
2684
2684
  };
2685
2685
 
2686
- function handler( e ) {
2686
+ function handler( e ) {
2687
2687
  e = jQuery.event.fix( e );
2688
2688
  e.type = fix;
2689
2689
  return jQuery.event.trigger( e, null, e.target );
@@ -2700,7 +2700,7 @@ jQuery.each(["bind", "one"], function( i, name ) {
2700
2700
  }
2701
2701
  return this;
2702
2702
  }
2703
-
2703
+
2704
2704
  if ( jQuery.isFunction( data ) || data === false ) {
2705
2705
  fn = data;
2706
2706
  data = undefined;
@@ -2740,20 +2740,20 @@ jQuery.fn.extend({
2740
2740
 
2741
2741
  return this;
2742
2742
  },
2743
-
2743
+
2744
2744
  delegate: function( selector, types, data, fn ) {
2745
2745
  return this.live( types, data, fn, selector );
2746
2746
  },
2747
-
2747
+
2748
2748
  undelegate: function( selector, types, fn ) {
2749
2749
  if ( arguments.length === 0 ) {
2750
2750
  return this.unbind( "live" );
2751
-
2751
+
2752
2752
  } else {
2753
2753
  return this.die( types, null, fn, selector );
2754
2754
  }
2755
2755
  },
2756
-
2756
+
2757
2757
  trigger: function( type, data ) {
2758
2758
  return this.each(function() {
2759
2759
  jQuery.event.trigger( type, data, this );
@@ -2810,12 +2810,12 @@ jQuery.each(["live", "die"], function( i, name ) {
2810
2810
  var type, i = 0, match, namespaces, preType,
2811
2811
  selector = origSelector || this.selector,
2812
2812
  context = origSelector ? this : jQuery( this.context );
2813
-
2813
+
2814
2814
  if ( typeof types === "object" && !types.preventDefault ) {
2815
2815
  for ( var key in types ) {
2816
2816
  context[ name ]( key, data, types[key], selector );
2817
2817
  }
2818
-
2818
+
2819
2819
  return this;
2820
2820
  }
2821
2821
 
@@ -2862,7 +2862,7 @@ jQuery.each(["live", "die"], function( i, name ) {
2862
2862
  context.unbind( "live." + liveConvert( type, selector ), fn );
2863
2863
  }
2864
2864
  }
2865
-
2865
+
2866
2866
  return this;
2867
2867
  };
2868
2868
  });
@@ -2881,7 +2881,7 @@ function liveHandler( event ) {
2881
2881
  if ( event.liveFired === this || !events || !events.live || event.button && event.type === "click" ) {
2882
2882
  return;
2883
2883
  }
2884
-
2884
+
2885
2885
  if ( event.namespace ) {
2886
2886
  namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
2887
2887
  }
@@ -3029,7 +3029,7 @@ var Sizzle = function( selector, context, results, seed ) {
3029
3029
  if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
3030
3030
  return [];
3031
3031
  }
3032
-
3032
+
3033
3033
  if ( !selector || typeof selector !== "string" ) {
3034
3034
  return results;
3035
3035
  }
@@ -3039,7 +3039,7 @@ var Sizzle = function( selector, context, results, seed ) {
3039
3039
  contextXML = Sizzle.isXML( context ),
3040
3040
  parts = [],
3041
3041
  soFar = selector;
3042
-
3042
+
3043
3043
  // Reset the position of the chunker regexp (start from head)
3044
3044
  do {
3045
3045
  chunker.exec( "" );
@@ -3047,9 +3047,9 @@ var Sizzle = function( selector, context, results, seed ) {
3047
3047
 
3048
3048
  if ( m ) {
3049
3049
  soFar = m[3];
3050
-
3050
+
3051
3051
  parts.push( m[1] );
3052
-
3052
+
3053
3053
  if ( m[2] ) {
3054
3054
  extra = m[3];
3055
3055
  break;
@@ -3073,7 +3073,7 @@ var Sizzle = function( selector, context, results, seed ) {
3073
3073
  if ( Expr.relative[ selector ] ) {
3074
3074
  selector += parts.shift();
3075
3075
  }
3076
-
3076
+
3077
3077
  set = posProcess( selector, set );
3078
3078
  }
3079
3079
  }
@@ -3202,7 +3202,7 @@ Sizzle.find = function( expr, context, isXML ) {
3202
3202
  for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
3203
3203
  var match,
3204
3204
  type = Expr.order[i];
3205
-
3205
+
3206
3206
  if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
3207
3207
  var left = match[1];
3208
3208
  match.splice( 1, 1 );
@@ -3518,7 +3518,7 @@ var Expr = Sizzle.selectors = {
3518
3518
 
3519
3519
  ATTR: function( match, curLoop, inplace, result, not, isXML ) {
3520
3520
  var name = match[1].replace(/\\/g, "");
3521
-
3521
+
3522
3522
  if ( !isXML && Expr.attrMap[name] ) {
3523
3523
  match[1] = Expr.attrMap[name];
3524
3524
  }
@@ -3549,7 +3549,7 @@ var Expr = Sizzle.selectors = {
3549
3549
  } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
3550
3550
  return true;
3551
3551
  }
3552
-
3552
+
3553
3553
  return match;
3554
3554
  },
3555
3555
 
@@ -3559,7 +3559,7 @@ var Expr = Sizzle.selectors = {
3559
3559
  return match;
3560
3560
  }
3561
3561
  },
3562
-
3562
+
3563
3563
  filters: {
3564
3564
  enabled: function( elem ) {
3565
3565
  return elem.disabled === false && elem.type !== "hidden";
@@ -3572,12 +3572,12 @@ var Expr = Sizzle.selectors = {
3572
3572
  checked: function( elem ) {
3573
3573
  return elem.checked === true;
3574
3574
  },
3575
-
3575
+
3576
3576
  selected: function( elem ) {
3577
3577
  // Accessing this property makes selected-by-default
3578
3578
  // options in Safari work properly
3579
3579
  elem.parentNode.selectedIndex;
3580
-
3580
+
3581
3581
  return elem.selected === true;
3582
3582
  },
3583
3583
 
@@ -3703,21 +3703,21 @@ var Expr = Sizzle.selectors = {
3703
3703
  case "only":
3704
3704
  case "first":
3705
3705
  while ( (node = node.previousSibling) ) {
3706
- if ( node.nodeType === 1 ) {
3707
- return false;
3706
+ if ( node.nodeType === 1 ) {
3707
+ return false;
3708
3708
  }
3709
3709
  }
3710
3710
 
3711
- if ( type === "first" ) {
3712
- return true;
3711
+ if ( type === "first" ) {
3712
+ return true;
3713
3713
  }
3714
3714
 
3715
3715
  node = elem;
3716
3716
 
3717
3717
  case "last":
3718
3718
  while ( (node = node.nextSibling) ) {
3719
- if ( node.nodeType === 1 ) {
3720
- return false;
3719
+ if ( node.nodeType === 1 ) {
3720
+ return false;
3721
3721
  }
3722
3722
  }
3723
3723
 
@@ -3730,22 +3730,22 @@ var Expr = Sizzle.selectors = {
3730
3730
  if ( first === 1 && last === 0 ) {
3731
3731
  return true;
3732
3732
  }
3733
-
3733
+
3734
3734
  var doneName = match[0],
3735
3735
  parent = elem.parentNode;
3736
-
3736
+
3737
3737
  if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
3738
3738
  var count = 0;
3739
-
3739
+
3740
3740
  for ( node = parent.firstChild; node; node = node.nextSibling ) {
3741
3741
  if ( node.nodeType === 1 ) {
3742
3742
  node.nodeIndex = ++count;
3743
3743
  }
3744
- }
3744
+ }
3745
3745
 
3746
3746
  parent.sizcache = doneName;
3747
3747
  }
3748
-
3748
+
3749
3749
  var diff = elem.nodeIndex - last;
3750
3750
 
3751
3751
  if ( first === 0 ) {
@@ -3764,7 +3764,7 @@ var Expr = Sizzle.selectors = {
3764
3764
  TAG: function( elem, match ) {
3765
3765
  return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
3766
3766
  },
3767
-
3767
+
3768
3768
  CLASS: function( elem, match ) {
3769
3769
  return (" " + (elem.className || elem.getAttribute("class")) + " ")
3770
3770
  .indexOf( match ) > -1;
@@ -3830,7 +3830,7 @@ var makeArray = function( array, results ) {
3830
3830
  results.push.apply( results, array );
3831
3831
  return results;
3832
3832
  }
3833
-
3833
+
3834
3834
  return array;
3835
3835
  };
3836
3836
 
@@ -4077,7 +4077,7 @@ if ( document.querySelectorAll ) {
4077
4077
  if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
4078
4078
  return;
4079
4079
  }
4080
-
4080
+
4081
4081
  Sizzle = function( query, context, extra, seed ) {
4082
4082
  context = context || document;
4083
4083
 
@@ -4115,7 +4115,7 @@ if ( document.querySelectorAll ) {
4115
4115
  }
4116
4116
  }
4117
4117
  }
4118
-
4118
+
4119
4119
  return oldSizzle(query, context, extra, seed);
4120
4120
  };
4121
4121
 
@@ -4137,7 +4137,7 @@ if ( document.querySelectorAll ) {
4137
4137
  // This should fail with an exception
4138
4138
  // Gecko does not error, returns false instead
4139
4139
  matches.call( document.documentElement, "[test!='']:sizzle" );
4140
-
4140
+
4141
4141
  } catch( pseudoError ) {
4142
4142
  pseudoWorks = true;
4143
4143
  }
@@ -4148,7 +4148,7 @@ if ( document.querySelectorAll ) {
4148
4148
  expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
4149
4149
 
4150
4150
  if ( !Sizzle.isXML( node ) ) {
4151
- try {
4151
+ try {
4152
4152
  if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
4153
4153
  return matches.call( node, expr );
4154
4154
  }
@@ -4177,7 +4177,7 @@ if ( document.querySelectorAll ) {
4177
4177
  if ( div.getElementsByClassName("e").length === 1 ) {
4178
4178
  return;
4179
4179
  }
4180
-
4180
+
4181
4181
  Expr.order.splice(1, 0, "CLASS");
4182
4182
  Expr.find.CLASS = function( match, context, isXML ) {
4183
4183
  if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
@@ -4228,7 +4228,7 @@ function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
4228
4228
 
4229
4229
  if ( elem ) {
4230
4230
  var match = false;
4231
-
4231
+
4232
4232
  elem = elem[dir];
4233
4233
 
4234
4234
  while ( elem ) {
@@ -4281,7 +4281,7 @@ if ( document.documentElement.contains ) {
4281
4281
 
4282
4282
  Sizzle.isXML = function( elem ) {
4283
4283
  // documentElement is verified for cases where it doesn't yet exist
4284
- // (such as loading iframes in IE - #4833)
4284
+ // (such as loading iframes in IE - #4833)
4285
4285
  var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
4286
4286
 
4287
4287
  return documentElement ? documentElement.nodeName !== "HTML" : false;
@@ -4373,7 +4373,7 @@ jQuery.fn.extend({
4373
4373
  filter: function( selector ) {
4374
4374
  return this.pushStack( winnow(this, selector, true), "filter", selector );
4375
4375
  },
4376
-
4376
+
4377
4377
  is: function( selector ) {
4378
4378
  return !!selector && jQuery.filter( selector, this ).length > 0;
4379
4379
  },
@@ -4391,7 +4391,7 @@ jQuery.fn.extend({
4391
4391
  selector = selectors[i];
4392
4392
 
4393
4393
  if ( !matches[selector] ) {
4394
- matches[selector] = jQuery.expr.match.POS.test( selector ) ?
4394
+ matches[selector] = jQuery.expr.match.POS.test( selector ) ?
4395
4395
  jQuery( selector, context || this.context ) :
4396
4396
  selector;
4397
4397
  }
@@ -4414,7 +4414,7 @@ jQuery.fn.extend({
4414
4414
  return ret;
4415
4415
  }
4416
4416
 
4417
- var pos = POS.test( selectors ) ?
4417
+ var pos = POS.test( selectors ) ?
4418
4418
  jQuery( selectors, context || this.context ) : null;
4419
4419
 
4420
4420
  for ( i = 0, l = this.length; i < l; i++ ) {
@@ -4435,10 +4435,10 @@ jQuery.fn.extend({
4435
4435
  }
4436
4436
 
4437
4437
  ret = ret.length > 1 ? jQuery.unique(ret) : ret;
4438
-
4438
+
4439
4439
  return this.pushStack( ret, "closest", selectors );
4440
4440
  },
4441
-
4441
+
4442
4442
  // Determine the position of an element within
4443
4443
  // the matched set of elements
4444
4444
  index: function( elem ) {
@@ -4519,7 +4519,7 @@ jQuery.each({
4519
4519
  }, function( name, fn ) {
4520
4520
  jQuery.fn[ name ] = function( until, selector ) {
4521
4521
  var ret = jQuery.map( this, fn, until );
4522
-
4522
+
4523
4523
  if ( !runtil.test( name ) ) {
4524
4524
  selector = until;
4525
4525
  }
@@ -4548,7 +4548,7 @@ jQuery.extend({
4548
4548
  jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
4549
4549
  jQuery.find.matches(expr, elems);
4550
4550
  },
4551
-
4551
+
4552
4552
  dir: function( elem, dir, until ) {
4553
4553
  var matched = [],
4554
4554
  cur = elem[ dir ];
@@ -4770,7 +4770,7 @@ jQuery.fn.extend({
4770
4770
  return set;
4771
4771
  }
4772
4772
  },
4773
-
4773
+
4774
4774
  // keepData is for internal use only--do not document
4775
4775
  remove: function( selector, keepData ) {
4776
4776
  for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
@@ -4785,7 +4785,7 @@ jQuery.fn.extend({
4785
4785
  }
4786
4786
  }
4787
4787
  }
4788
-
4788
+
4789
4789
  return this;
4790
4790
  },
4791
4791
 
@@ -4801,7 +4801,7 @@ jQuery.fn.extend({
4801
4801
  elem.removeChild( elem.firstChild );
4802
4802
  }
4803
4803
  }
4804
-
4804
+
4805
4805
  return this;
4806
4806
  },
4807
4807
 
@@ -4952,9 +4952,9 @@ jQuery.fn.extend({
4952
4952
  } else {
4953
4953
  results = jQuery.buildFragment( args, this, scripts );
4954
4954
  }
4955
-
4955
+
4956
4956
  fragment = results.fragment;
4957
-
4957
+
4958
4958
  if ( fragment.childNodes.length === 1 ) {
4959
4959
  first = fragment = fragment.firstChild;
4960
4960
  } else {
@@ -5062,18 +5062,18 @@ jQuery.each({
5062
5062
  var ret = [],
5063
5063
  insert = jQuery( selector ),
5064
5064
  parent = this.length === 1 && this[0].parentNode;
5065
-
5065
+
5066
5066
  if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
5067
5067
  insert[ original ]( this[0] );
5068
5068
  return this;
5069
-
5069
+
5070
5070
  } else {
5071
5071
  for ( var i = 0, l = insert.length; i < l; i++ ) {
5072
5072
  var elems = (i > 0 ? this.clone(true) : this).get();
5073
5073
  jQuery( insert[i] )[ original ]( elems );
5074
5074
  ret = ret.concat( elems );
5075
5075
  }
5076
-
5076
+
5077
5077
  return this.pushStack( ret, name, insert.selector );
5078
5078
  }
5079
5079
  };
@@ -5161,7 +5161,7 @@ jQuery.extend({
5161
5161
  for ( i = 0; ret[i]; i++ ) {
5162
5162
  if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
5163
5163
  scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
5164
-
5164
+
5165
5165
  } else {
5166
5166
  if ( ret[i].nodeType === 1 ) {
5167
5167
  ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
@@ -5173,22 +5173,22 @@ jQuery.extend({
5173
5173
 
5174
5174
  return ret;
5175
5175
  },
5176
-
5176
+
5177
5177
  cleanData: function( elems ) {
5178
5178
  var data, id, cache = jQuery.cache,
5179
5179
  special = jQuery.event.special,
5180
5180
  deleteExpando = jQuery.support.deleteExpando;
5181
-
5181
+
5182
5182
  for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
5183
5183
  if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
5184
5184
  continue;
5185
5185
  }
5186
5186
 
5187
5187
  id = elem[ jQuery.expando ];
5188
-
5188
+
5189
5189
  if ( id ) {
5190
5190
  data = cache[ id ];
5191
-
5191
+
5192
5192
  if ( data && data.events ) {
5193
5193
  for ( var type in data.events ) {
5194
5194
  if ( special[ type ] ) {
@@ -5199,14 +5199,14 @@ jQuery.extend({
5199
5199
  }
5200
5200
  }
5201
5201
  }
5202
-
5202
+
5203
5203
  if ( deleteExpando ) {
5204
5204
  delete elem[ jQuery.expando ];
5205
5205
 
5206
5206
  } else if ( elem.removeAttribute ) {
5207
5207
  elem.removeAttribute( jQuery.expando );
5208
5208
  }
5209
-
5209
+
5210
5210
  delete cache[ id ];
5211
5211
  }
5212
5212
  }
@@ -5819,7 +5819,7 @@ jQuery.extend({
5819
5819
  data = tmp;
5820
5820
  jQuery.handleSuccess( s, xhr, status, data );
5821
5821
  jQuery.handleComplete( s, xhr, status, data );
5822
-
5822
+
5823
5823
  if ( head ) {
5824
5824
  head.removeChild( script );
5825
5825
  }
@@ -6078,19 +6078,19 @@ jQuery.extend({
6078
6078
  value = jQuery.isFunction(value) ? value() : value;
6079
6079
  s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value);
6080
6080
  };
6081
-
6081
+
6082
6082
  // Set traditional to true for jQuery <= 1.3.2 behavior.
6083
6083
  if ( traditional === undefined ) {
6084
6084
  traditional = jQuery.ajaxSettings.traditional;
6085
6085
  }
6086
-
6086
+
6087
6087
  // If an array was passed in, assume that it is an array of form elements.
6088
6088
  if ( jQuery.isArray(a) || a.jquery ) {
6089
6089
  // Serialize the form elements
6090
6090
  jQuery.each( a, function() {
6091
6091
  add( this.name, this.value );
6092
6092
  });
6093
-
6093
+
6094
6094
  } else {
6095
6095
  // If traditional, encode the "old" way (the way 1.3.2 or older
6096
6096
  // did it), otherwise encode params recursively.
@@ -6123,7 +6123,7 @@ function buildParams( prefix, obj, traditional, add ) {
6123
6123
  buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
6124
6124
  }
6125
6125
  });
6126
-
6126
+
6127
6127
  } else if ( !traditional && obj != null && typeof obj === "object" ) {
6128
6128
  if ( jQuery.isEmptyObject( obj ) ) {
6129
6129
  add( prefix, "" );
@@ -6134,7 +6134,7 @@ function buildParams( prefix, obj, traditional, add ) {
6134
6134
  buildParams( prefix + "[" + k + "]", v, traditional, add );
6135
6135
  });
6136
6136
  }
6137
-
6137
+
6138
6138
  } else {
6139
6139
  // Serialize scalar item.
6140
6140
  add( prefix, obj );
@@ -6192,7 +6192,7 @@ jQuery.extend({
6192
6192
  jQuery.event.trigger( "ajaxStop" );
6193
6193
  }
6194
6194
  },
6195
-
6195
+
6196
6196
  triggerGlobal: function( s, type, args ) {
6197
6197
  (s.context && s.context.url == null ? jQuery(s.context) : jQuery.event).trigger(type, args);
6198
6198
  },
@@ -6815,7 +6815,7 @@ if ( "getBoundingClientRect" in document.documentElement ) {
6815
6815
  jQuery.fn.offset = function( options ) {
6816
6816
  var elem = this[0], box;
6817
6817
 
6818
- if ( options ) {
6818
+ if ( options ) {
6819
6819
  return this.each(function( i ) {
6820
6820
  jQuery.offset.setOffset( this, options, i );
6821
6821
  });
@@ -6857,7 +6857,7 @@ if ( "getBoundingClientRect" in document.documentElement ) {
6857
6857
  jQuery.fn.offset = function( options ) {
6858
6858
  var elem = this[0];
6859
6859
 
6860
- if ( options ) {
6860
+ if ( options ) {
6861
6861
  return this.each(function( i ) {
6862
6862
  jQuery.offset.setOffset( this, options, i );
6863
6863
  });
@@ -6976,7 +6976,7 @@ jQuery.offset = {
6976
6976
 
6977
6977
  return { top: top, left: left };
6978
6978
  },
6979
-
6979
+
6980
6980
  setOffset: function( elem, options, i ) {
6981
6981
  var position = jQuery.css( elem, "position" );
6982
6982
 
@@ -7010,7 +7010,7 @@ jQuery.offset = {
7010
7010
  if (options.left != null) {
7011
7011
  props.left = (options.left - curOffset.left) + curLeft;
7012
7012
  }
7013
-
7013
+
7014
7014
  if ( "using" in options ) {
7015
7015
  options.using.call( elem, props );
7016
7016
  } else {
@@ -7070,7 +7070,7 @@ jQuery.each( ["Left", "Top"], function( i, name ) {
7070
7070
 
7071
7071
  jQuery.fn[ method ] = function(val) {
7072
7072
  var elem = this[0], win;
7073
-
7073
+
7074
7074
  if ( !elem ) {
7075
7075
  return null;
7076
7076
  }
@@ -7138,7 +7138,7 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
7138
7138
  if ( !elem ) {
7139
7139
  return size == null ? null : this;
7140
7140
  }
7141
-
7141
+
7142
7142
  if ( jQuery.isFunction( size ) ) {
7143
7143
  return this.each(function( i ) {
7144
7144
  var self = jQuery( this );