guff-compass 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.gitignore +6 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +21 -0
  6. data/demo/bower_components/jquery/.bower.json +21 -0
  7. data/demo/bower_components/jquery/.editorconfig +43 -0
  8. data/demo/bower_components/jquery/.gitattributes +2 -0
  9. data/demo/bower_components/jquery/.gitignore +14 -0
  10. data/demo/bower_components/jquery/.gitmodules +6 -0
  11. data/demo/bower_components/jquery/.jshintrc +17 -0
  12. data/demo/bower_components/jquery/.mailmap +94 -0
  13. data/demo/bower_components/jquery/AUTHORS.txt +170 -0
  14. data/demo/bower_components/jquery/CONTRIBUTING.md +216 -0
  15. data/demo/bower_components/jquery/Gruntfile.js +594 -0
  16. data/demo/bower_components/jquery/MIT-LICENSE.txt +21 -0
  17. data/demo/bower_components/jquery/README.md +398 -0
  18. data/demo/bower_components/jquery/bower.json +11 -0
  19. data/demo/bower_components/jquery/build/release-notes.js +59 -0
  20. data/demo/bower_components/jquery/build/release.js +316 -0
  21. data/demo/bower_components/jquery/component.json +15 -0
  22. data/demo/bower_components/jquery/composer.json +35 -0
  23. data/demo/bower_components/jquery/jquery-migrate.js +511 -0
  24. data/demo/bower_components/jquery/jquery-migrate.min.js +3 -0
  25. data/demo/bower_components/jquery/jquery.js +9789 -0
  26. data/demo/bower_components/jquery/jquery.min.js +6 -0
  27. data/demo/bower_components/jquery/jquery.min.map +1 -0
  28. data/demo/bower_components/jquery/package.json +38 -0
  29. data/demo/bower_components/jquery/speed/benchmark.js +15 -0
  30. data/demo/bower_components/jquery/speed/benchmarker.css +65 -0
  31. data/demo/bower_components/jquery/speed/benchmarker.js +181 -0
  32. data/demo/bower_components/jquery/speed/closest.html +39 -0
  33. data/demo/bower_components/jquery/speed/css.html +82 -0
  34. data/demo/bower_components/jquery/speed/event.html +58 -0
  35. data/demo/bower_components/jquery/speed/filter.html +183 -0
  36. data/demo/bower_components/jquery/speed/find.html +179 -0
  37. data/demo/bower_components/jquery/speed/index.html +72 -0
  38. data/demo/bower_components/jquery/speed/jquery-basis.js +6238 -0
  39. data/demo/bower_components/jquery/speed/slice.vs.concat.html +47 -0
  40. data/demo/bower_components/jquery/src/.jshintrc +27 -0
  41. data/demo/bower_components/jquery/src/ajax.js +855 -0
  42. data/demo/bower_components/jquery/src/ajax/jsonp.js +80 -0
  43. data/demo/bower_components/jquery/src/ajax/script.js +86 -0
  44. data/demo/bower_components/jquery/src/ajax/xhr.js +207 -0
  45. data/demo/bower_components/jquery/src/attributes.js +659 -0
  46. data/demo/bower_components/jquery/src/callbacks.js +197 -0
  47. data/demo/bower_components/jquery/src/core.js +981 -0
  48. data/demo/bower_components/jquery/src/css.js +661 -0
  49. data/demo/bower_components/jquery/src/data.js +336 -0
  50. data/demo/bower_components/jquery/src/deferred.js +141 -0
  51. data/demo/bower_components/jquery/src/deprecated.js +11 -0
  52. data/demo/bower_components/jquery/src/dimensions.js +41 -0
  53. data/demo/bower_components/jquery/src/effects.js +732 -0
  54. data/demo/bower_components/jquery/src/event-alias.js +32 -0
  55. data/demo/bower_components/jquery/src/event.js +995 -0
  56. data/demo/bower_components/jquery/src/exports.js +21 -0
  57. data/demo/bower_components/jquery/src/intro.js +20 -0
  58. data/demo/bower_components/jquery/src/manipulation.js +744 -0
  59. data/demo/bower_components/jquery/src/offset.js +169 -0
  60. data/demo/bower_components/jquery/src/outro.js +2 -0
  61. data/demo/bower_components/jquery/src/queue.js +146 -0
  62. data/demo/bower_components/jquery/src/serialize.js +99 -0
  63. data/demo/bower_components/jquery/src/sizzle-jquery.js +7 -0
  64. data/demo/bower_components/jquery/src/support.js +246 -0
  65. data/demo/bower_components/jquery/src/traversing.js +283 -0
  66. data/demo/bower_components/jquery/src/wrap.js +66 -0
  67. data/demo/bower_components/jquery/test/.jshintignore +3 -0
  68. data/demo/bower_components/jquery/test/.jshintrc +60 -0
  69. data/demo/bower_components/jquery/test/data/1x1.jpg +0 -0
  70. data/demo/bower_components/jquery/test/data/ajax/unreleasedXHR.html +25 -0
  71. data/demo/bower_components/jquery/test/data/atom+xml.php +4 -0
  72. data/demo/bower_components/jquery/test/data/badcall.js +1 -0
  73. data/demo/bower_components/jquery/test/data/badjson.js +1 -0
  74. data/demo/bower_components/jquery/test/data/cleanScript.html +10 -0
  75. data/demo/bower_components/jquery/test/data/core/cc_on.html +22 -0
  76. data/demo/bower_components/jquery/test/data/dashboard.xml +11 -0
  77. data/demo/bower_components/jquery/test/data/dimensions/documentLarge.html +17 -0
  78. data/demo/bower_components/jquery/test/data/dimensions/documentSmall.html +21 -0
  79. data/demo/bower_components/jquery/test/data/echoData.php +1 -0
  80. data/demo/bower_components/jquery/test/data/echoQuery.php +1 -0
  81. data/demo/bower_components/jquery/test/data/errorWithJSON.php +6 -0
  82. data/demo/bower_components/jquery/test/data/errorWithText.php +5 -0
  83. data/demo/bower_components/jquery/test/data/etag.php +21 -0
  84. data/demo/bower_components/jquery/test/data/evalScript.php +1 -0
  85. data/demo/bower_components/jquery/test/data/event/focusElem.html +16 -0
  86. data/demo/bower_components/jquery/test/data/event/longLoadScript.php +4 -0
  87. data/demo/bower_components/jquery/test/data/event/promiseReady.html +17 -0
  88. data/demo/bower_components/jquery/test/data/event/syncReady.html +23 -0
  89. data/demo/bower_components/jquery/test/data/headers.php +18 -0
  90. data/demo/bower_components/jquery/test/data/if_modified_since.php +20 -0
  91. data/demo/bower_components/jquery/test/data/iframe.html +8 -0
  92. data/demo/bower_components/jquery/test/data/jquery-1.9.1.ajax_xhr.min.js +5 -0
  93. data/demo/bower_components/jquery/test/data/json.php +13 -0
  94. data/demo/bower_components/jquery/test/data/json_obj.js +1 -0
  95. data/demo/bower_components/jquery/test/data/jsonp.php +14 -0
  96. data/demo/bower_components/jquery/test/data/manipulation/iframe-denied.html +36 -0
  97. data/demo/bower_components/jquery/test/data/name.html +1 -0
  98. data/demo/bower_components/jquery/test/data/name.php +24 -0
  99. data/demo/bower_components/jquery/test/data/nocontent.php +5 -0
  100. data/demo/bower_components/jquery/test/data/offset/absolute.html +41 -0
  101. data/demo/bower_components/jquery/test/data/offset/body.html +26 -0
  102. data/demo/bower_components/jquery/test/data/offset/fixed.html +34 -0
  103. data/demo/bower_components/jquery/test/data/offset/relative.html +31 -0
  104. data/demo/bower_components/jquery/test/data/offset/scroll.html +39 -0
  105. data/demo/bower_components/jquery/test/data/offset/static.html +31 -0
  106. data/demo/bower_components/jquery/test/data/offset/table.html +43 -0
  107. data/demo/bower_components/jquery/test/data/params_html.php +12 -0
  108. data/demo/bower_components/jquery/test/data/readywaitasset.js +1 -0
  109. data/demo/bower_components/jquery/test/data/readywaitloader.js +25 -0
  110. data/demo/bower_components/jquery/test/data/script.php +11 -0
  111. data/demo/bower_components/jquery/test/data/selector/html5_selector.html +114 -0
  112. data/demo/bower_components/jquery/test/data/selector/sizzle_cache.html +21 -0
  113. data/demo/bower_components/jquery/test/data/statusText.php +5 -0
  114. data/demo/bower_components/jquery/test/data/support/bodyBackground.html +28 -0
  115. data/demo/bower_components/jquery/test/data/support/boxSizing.html +19 -0
  116. data/demo/bower_components/jquery/test/data/support/csp.js +3 -0
  117. data/demo/bower_components/jquery/test/data/support/csp.php +22 -0
  118. data/demo/bower_components/jquery/test/data/support/shrinkWrapBlocks.html +23 -0
  119. data/demo/bower_components/jquery/test/data/support/testElementCrash.html +17 -0
  120. data/demo/bower_components/jquery/test/data/test.html +7 -0
  121. data/demo/bower_components/jquery/test/data/test.js +3 -0
  122. data/demo/bower_components/jquery/test/data/test.php +7 -0
  123. data/demo/bower_components/jquery/test/data/test2.html +5 -0
  124. data/demo/bower_components/jquery/test/data/test3.html +3 -0
  125. data/demo/bower_components/jquery/test/data/testinit.js +264 -0
  126. data/demo/bower_components/jquery/test/data/testrunner.js +371 -0
  127. data/demo/bower_components/jquery/test/data/testsuite.css +155 -0
  128. data/demo/bower_components/jquery/test/data/text.php +12 -0
  129. data/demo/bower_components/jquery/test/data/ua.txt +272 -0
  130. data/demo/bower_components/jquery/test/data/with_fries.xml +25 -0
  131. data/demo/bower_components/jquery/test/data/with_fries_over_jsonp.php +7 -0
  132. data/demo/bower_components/jquery/test/delegatetest.html +228 -0
  133. data/demo/bower_components/jquery/test/hovertest.html +158 -0
  134. data/demo/bower_components/jquery/test/index.html +337 -0
  135. data/demo/bower_components/jquery/test/jquery.js +5 -0
  136. data/demo/bower_components/jquery/test/localfile.html +75 -0
  137. data/demo/bower_components/jquery/test/networkerror.html +84 -0
  138. data/demo/bower_components/jquery/test/readywait.html +70 -0
  139. data/demo/bower_components/jquery/test/unit/ajax.js +2016 -0
  140. data/demo/bower_components/jquery/test/unit/attributes.js +1388 -0
  141. data/demo/bower_components/jquery/test/unit/callbacks.js +342 -0
  142. data/demo/bower_components/jquery/test/unit/core.js +1360 -0
  143. data/demo/bower_components/jquery/test/unit/css.js +1056 -0
  144. data/demo/bower_components/jquery/test/unit/data.js +645 -0
  145. data/demo/bower_components/jquery/test/unit/deferred.js +436 -0
  146. data/demo/bower_components/jquery/test/unit/deprecated.js +8 -0
  147. data/demo/bower_components/jquery/test/unit/dimensions.js +472 -0
  148. data/demo/bower_components/jquery/test/unit/effects.js +2242 -0
  149. data/demo/bower_components/jquery/test/unit/event.js +2755 -0
  150. data/demo/bower_components/jquery/test/unit/exports.js +7 -0
  151. data/demo/bower_components/jquery/test/unit/manipulation.js +2120 -0
  152. data/demo/bower_components/jquery/test/unit/offset.js +559 -0
  153. data/demo/bower_components/jquery/test/unit/queue.js +314 -0
  154. data/demo/bower_components/jquery/test/unit/selector.js +172 -0
  155. data/demo/bower_components/jquery/test/unit/serialize.js +148 -0
  156. data/demo/bower_components/jquery/test/unit/support.js +370 -0
  157. data/demo/bower_components/jquery/test/unit/traversing.js +797 -0
  158. data/demo/bower_components/jquery/test/unit/wrap.js +265 -0
  159. data/demo/bower_components/jquery/test/xhtml.php +5 -0
  160. data/demo/index.html +347 -0
  161. data/demo/styles/main.css +208 -0
  162. data/demo/styles/main.scss +138 -0
  163. data/docs/docco.css +506 -0
  164. data/docs/guff.html +1127 -0
  165. data/docs/public/fonts/aller-bold.eot +0 -0
  166. data/docs/public/fonts/aller-bold.ttf +0 -0
  167. data/docs/public/fonts/aller-bold.woff +0 -0
  168. data/docs/public/fonts/aller-light.eot +0 -0
  169. data/docs/public/fonts/aller-light.ttf +0 -0
  170. data/docs/public/fonts/aller-light.woff +0 -0
  171. data/docs/public/fonts/novecento-bold.eot +0 -0
  172. data/docs/public/fonts/novecento-bold.ttf +0 -0
  173. data/docs/public/fonts/novecento-bold.woff +0 -0
  174. data/docs/public/stylesheets/normalize.css +375 -0
  175. data/guff.gemspec +16 -0
  176. data/guff.scss +514 -0
  177. data/gulpfile.js +67 -0
  178. data/lib/guff.rb +4 -0
  179. data/lib/stylesheets/_guff.scss +514 -0
  180. data/package.json +19 -0
  181. data/src/_functions.scss +57 -0
  182. data/src/_mixins.scss +301 -0
  183. data/src/_reset.scss +67 -0
  184. data/src/_settings.scss +22 -0
  185. data/src/_typography.scss +67 -0
  186. metadata +259 -0
@@ -0,0 +1,21 @@
1
+ if ( typeof module === "object" && module && typeof module.exports === "object" ) {
2
+ // Expose jQuery as module.exports in loaders that implement the Node
3
+ // module pattern (including browserify). Do not create the global, since
4
+ // the user will be storing it themselves locally, and globals are frowned
5
+ // upon in the Node module world.
6
+ module.exports = jQuery;
7
+ } else {
8
+ // Otherwise expose jQuery to the global object as usual
9
+ window.jQuery = window.$ = jQuery;
10
+
11
+ // Register as a named AMD module, since jQuery can be concatenated with other
12
+ // files that may use define, but not via a proper concatenation script that
13
+ // understands anonymous AMD modules. A named AMD is safest and most robust
14
+ // way to register. Lowercase jquery is used because AMD module names are
15
+ // derived from file names, and jQuery is normally delivered in a lowercase
16
+ // file name. Do this after creating the global so that if an AMD module wants
17
+ // to call noConflict to hide this version of jQuery, it will work.
18
+ if ( typeof define === "function" && define.amd ) {
19
+ define( "jquery", [], function () { return jQuery; } );
20
+ }
21
+ }
@@ -0,0 +1,20 @@
1
+ /*!
2
+ * jQuery JavaScript Library v@VERSION
3
+ * http://jquery.com/
4
+ *
5
+ * Includes Sizzle.js
6
+ * http://sizzlejs.com/
7
+ *
8
+ * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
9
+ * Released under the MIT license
10
+ * http://jquery.org/license
11
+ *
12
+ * Date: @DATE
13
+ */
14
+ (function( window, undefined ) {
15
+
16
+ // Can't do this because several apps including ASP.NET trace
17
+ // the stack via arguments.caller.callee and Firefox dies if
18
+ // you try to trace through "use strict" call chains. (#13335)
19
+ // Support: Firefox 18+
20
+ //"use strict";
@@ -0,0 +1,744 @@
1
+ function createSafeFragment( document ) {
2
+ var list = nodeNames.split( "|" ),
3
+ safeFrag = document.createDocumentFragment();
4
+
5
+ if ( safeFrag.createElement ) {
6
+ while ( list.length ) {
7
+ safeFrag.createElement(
8
+ list.pop()
9
+ );
10
+ }
11
+ }
12
+ return safeFrag;
13
+ }
14
+
15
+ var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
16
+ "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
17
+ rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
18
+ rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
19
+ rleadingWhitespace = /^\s+/,
20
+ rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
21
+ rtagName = /<([\w:]+)/,
22
+ rtbody = /<tbody/i,
23
+ rhtml = /<|&#?\w+;/,
24
+ rnoInnerhtml = /<(?:script|style|link)/i,
25
+ manipulation_rcheckableType = /^(?:checkbox|radio)$/i,
26
+ // checked="checked" or checked
27
+ rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
28
+ rscriptType = /^$|\/(?:java|ecma)script/i,
29
+ rscriptTypeMasked = /^true\/(.*)/,
30
+ rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
31
+
32
+ // We have to close these tags to support XHTML (#13200)
33
+ wrapMap = {
34
+ option: [ 1, "<select multiple='multiple'>", "</select>" ],
35
+ legend: [ 1, "<fieldset>", "</fieldset>" ],
36
+ area: [ 1, "<map>", "</map>" ],
37
+ param: [ 1, "<object>", "</object>" ],
38
+ thead: [ 1, "<table>", "</table>" ],
39
+ tr: [ 2, "<table><tbody>", "</tbody></table>" ],
40
+ col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
41
+ td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
42
+
43
+ // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
44
+ // unless wrapped in a div with non-breaking characters in front of it.
45
+ _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>" ]
46
+ },
47
+ safeFragment = createSafeFragment( document ),
48
+ fragmentDiv = safeFragment.appendChild( document.createElement("div") );
49
+
50
+ wrapMap.optgroup = wrapMap.option;
51
+ wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
52
+ wrapMap.th = wrapMap.td;
53
+
54
+ jQuery.fn.extend({
55
+ text: function( value ) {
56
+ return jQuery.access( this, function( value ) {
57
+ return value === undefined ?
58
+ jQuery.text( this ) :
59
+ this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
60
+ }, null, value, arguments.length );
61
+ },
62
+
63
+ append: function() {
64
+ return this.domManip( arguments, function( elem ) {
65
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
66
+ var target = manipulationTarget( this, elem );
67
+ target.appendChild( elem );
68
+ }
69
+ });
70
+ },
71
+
72
+ prepend: function() {
73
+ return this.domManip( arguments, function( elem ) {
74
+ if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
75
+ var target = manipulationTarget( this, elem );
76
+ target.insertBefore( elem, target.firstChild );
77
+ }
78
+ });
79
+ },
80
+
81
+ before: function() {
82
+ return this.domManip( arguments, function( elem ) {
83
+ if ( this.parentNode ) {
84
+ this.parentNode.insertBefore( elem, this );
85
+ }
86
+ });
87
+ },
88
+
89
+ after: function() {
90
+ return this.domManip( arguments, function( elem ) {
91
+ if ( this.parentNode ) {
92
+ this.parentNode.insertBefore( elem, this.nextSibling );
93
+ }
94
+ });
95
+ },
96
+
97
+ // keepData is for internal use only--do not document
98
+ remove: function( selector, keepData ) {
99
+ var elem,
100
+ elems = selector ? jQuery.filter( selector, this ) : this,
101
+ i = 0;
102
+
103
+ for ( ; (elem = elems[i]) != null; i++ ) {
104
+
105
+ if ( !keepData && elem.nodeType === 1 ) {
106
+ jQuery.cleanData( getAll( elem ) );
107
+ }
108
+
109
+ if ( elem.parentNode ) {
110
+ if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
111
+ setGlobalEval( getAll( elem, "script" ) );
112
+ }
113
+ elem.parentNode.removeChild( elem );
114
+ }
115
+ }
116
+
117
+ return this;
118
+ },
119
+
120
+ empty: function() {
121
+ var elem,
122
+ i = 0;
123
+
124
+ for ( ; (elem = this[i]) != null; i++ ) {
125
+ // Remove element nodes and prevent memory leaks
126
+ if ( elem.nodeType === 1 ) {
127
+ jQuery.cleanData( getAll( elem, false ) );
128
+ }
129
+
130
+ // Remove any remaining nodes
131
+ while ( elem.firstChild ) {
132
+ elem.removeChild( elem.firstChild );
133
+ }
134
+
135
+ // If this is a select, ensure that it displays empty (#12336)
136
+ // Support: IE<9
137
+ if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
138
+ elem.options.length = 0;
139
+ }
140
+ }
141
+
142
+ return this;
143
+ },
144
+
145
+ clone: function( dataAndEvents, deepDataAndEvents ) {
146
+ dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
147
+ deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
148
+
149
+ return this.map( function () {
150
+ return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
151
+ });
152
+ },
153
+
154
+ html: function( value ) {
155
+ return jQuery.access( this, function( value ) {
156
+ var elem = this[0] || {},
157
+ i = 0,
158
+ l = this.length;
159
+
160
+ if ( value === undefined ) {
161
+ return elem.nodeType === 1 ?
162
+ elem.innerHTML.replace( rinlinejQuery, "" ) :
163
+ undefined;
164
+ }
165
+
166
+ // See if we can take a shortcut and just use innerHTML
167
+ if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
168
+ ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&
169
+ ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
170
+ !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
171
+
172
+ value = value.replace( rxhtmlTag, "<$1></$2>" );
173
+
174
+ try {
175
+ for (; i < l; i++ ) {
176
+ // Remove element nodes and prevent memory leaks
177
+ elem = this[i] || {};
178
+ if ( elem.nodeType === 1 ) {
179
+ jQuery.cleanData( getAll( elem, false ) );
180
+ elem.innerHTML = value;
181
+ }
182
+ }
183
+
184
+ elem = 0;
185
+
186
+ // If using innerHTML throws an exception, use the fallback method
187
+ } catch(e) {}
188
+ }
189
+
190
+ if ( elem ) {
191
+ this.empty().append( value );
192
+ }
193
+ }, null, value, arguments.length );
194
+ },
195
+
196
+ replaceWith: function() {
197
+ var
198
+ // Snapshot the DOM in case .domManip sweeps something relevant into its fragment
199
+ args = jQuery.map( this, function( elem ) {
200
+ return [ elem.nextSibling, elem.parentNode ];
201
+ }),
202
+ i = 0;
203
+
204
+ // Make the changes, replacing each context element with the new content
205
+ this.domManip( arguments, function( elem ) {
206
+ var next = args[ i++ ],
207
+ parent = args[ i++ ];
208
+
209
+ if ( parent ) {
210
+ // Don't use the snapshot next if it has moved (#13810)
211
+ if ( next && next.parentNode !== parent ) {
212
+ next = this.nextSibling;
213
+ }
214
+ jQuery( this ).remove();
215
+ parent.insertBefore( elem, next );
216
+ }
217
+ // Allow new content to include elements from the context set
218
+ }, true );
219
+
220
+ // Force removal if there was no new content (e.g., from empty arguments)
221
+ return i ? this : this.remove();
222
+ },
223
+
224
+ detach: function( selector ) {
225
+ return this.remove( selector, true );
226
+ },
227
+
228
+ domManip: function( args, callback, allowIntersection ) {
229
+
230
+ // Flatten any nested arrays
231
+ args = core_concat.apply( [], args );
232
+
233
+ var first, node, hasScripts,
234
+ scripts, doc, fragment,
235
+ i = 0,
236
+ l = this.length,
237
+ set = this,
238
+ iNoClone = l - 1,
239
+ value = args[0],
240
+ isFunction = jQuery.isFunction( value );
241
+
242
+ // We can't cloneNode fragments that contain checked, in WebKit
243
+ if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
244
+ return this.each(function( index ) {
245
+ var self = set.eq( index );
246
+ if ( isFunction ) {
247
+ args[0] = value.call( this, index, self.html() );
248
+ }
249
+ self.domManip( args, callback, allowIntersection );
250
+ });
251
+ }
252
+
253
+ if ( l ) {
254
+ fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );
255
+ first = fragment.firstChild;
256
+
257
+ if ( fragment.childNodes.length === 1 ) {
258
+ fragment = first;
259
+ }
260
+
261
+ if ( first ) {
262
+ scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
263
+ hasScripts = scripts.length;
264
+
265
+ // Use the original fragment for the last item instead of the first because it can end up
266
+ // being emptied incorrectly in certain situations (#8070).
267
+ for ( ; i < l; i++ ) {
268
+ node = fragment;
269
+
270
+ if ( i !== iNoClone ) {
271
+ node = jQuery.clone( node, true, true );
272
+
273
+ // Keep references to cloned scripts for later restoration
274
+ if ( hasScripts ) {
275
+ jQuery.merge( scripts, getAll( node, "script" ) );
276
+ }
277
+ }
278
+
279
+ callback.call( this[i], node, i );
280
+ }
281
+
282
+ if ( hasScripts ) {
283
+ doc = scripts[ scripts.length - 1 ].ownerDocument;
284
+
285
+ // Reenable scripts
286
+ jQuery.map( scripts, restoreScript );
287
+
288
+ // Evaluate executable scripts on first document insertion
289
+ for ( i = 0; i < hasScripts; i++ ) {
290
+ node = scripts[ i ];
291
+ if ( rscriptType.test( node.type || "" ) &&
292
+ !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
293
+
294
+ if ( node.src ) {
295
+ // Hope ajax is available...
296
+ jQuery._evalUrl( node.src );
297
+ } else {
298
+ jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
299
+ }
300
+ }
301
+ }
302
+ }
303
+
304
+ // Fix #11809: Avoid leaking memory
305
+ fragment = first = null;
306
+ }
307
+ }
308
+
309
+ return this;
310
+ }
311
+ });
312
+
313
+ // Support: IE<8
314
+ // Manipulating tables requires a tbody
315
+ function manipulationTarget( elem, content ) {
316
+ return jQuery.nodeName( elem, "table" ) &&
317
+ jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ?
318
+
319
+ elem.getElementsByTagName("tbody")[0] ||
320
+ elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
321
+ elem;
322
+ }
323
+
324
+ // Replace/restore the type attribute of script elements for safe DOM manipulation
325
+ function disableScript( elem ) {
326
+ elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type;
327
+ return elem;
328
+ }
329
+ function restoreScript( elem ) {
330
+ var match = rscriptTypeMasked.exec( elem.type );
331
+ if ( match ) {
332
+ elem.type = match[1];
333
+ } else {
334
+ elem.removeAttribute("type");
335
+ }
336
+ return elem;
337
+ }
338
+
339
+ // Mark scripts as having already been evaluated
340
+ function setGlobalEval( elems, refElements ) {
341
+ var elem,
342
+ i = 0;
343
+ for ( ; (elem = elems[i]) != null; i++ ) {
344
+ jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
345
+ }
346
+ }
347
+
348
+ function cloneCopyEvent( src, dest ) {
349
+
350
+ if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
351
+ return;
352
+ }
353
+
354
+ var type, i, l,
355
+ oldData = jQuery._data( src ),
356
+ curData = jQuery._data( dest, oldData ),
357
+ events = oldData.events;
358
+
359
+ if ( events ) {
360
+ delete curData.handle;
361
+ curData.events = {};
362
+
363
+ for ( type in events ) {
364
+ for ( i = 0, l = events[ type ].length; i < l; i++ ) {
365
+ jQuery.event.add( dest, type, events[ type ][ i ] );
366
+ }
367
+ }
368
+ }
369
+
370
+ // make the cloned public data object a copy from the original
371
+ if ( curData.data ) {
372
+ curData.data = jQuery.extend( {}, curData.data );
373
+ }
374
+ }
375
+
376
+ function fixCloneNodeIssues( src, dest ) {
377
+ var nodeName, e, data;
378
+
379
+ // We do not need to do anything for non-Elements
380
+ if ( dest.nodeType !== 1 ) {
381
+ return;
382
+ }
383
+
384
+ nodeName = dest.nodeName.toLowerCase();
385
+
386
+ // IE6-8 copies events bound via attachEvent when using cloneNode.
387
+ if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {
388
+ data = jQuery._data( dest );
389
+
390
+ for ( e in data.events ) {
391
+ jQuery.removeEvent( dest, e, data.handle );
392
+ }
393
+
394
+ // Event data gets referenced instead of copied if the expando gets copied too
395
+ dest.removeAttribute( jQuery.expando );
396
+ }
397
+
398
+ // IE blanks contents when cloning scripts, and tries to evaluate newly-set text
399
+ if ( nodeName === "script" && dest.text !== src.text ) {
400
+ disableScript( dest ).text = src.text;
401
+ restoreScript( dest );
402
+
403
+ // IE6-10 improperly clones children of object elements using classid.
404
+ // IE10 throws NoModificationAllowedError if parent is null, #12132.
405
+ } else if ( nodeName === "object" ) {
406
+ if ( dest.parentNode ) {
407
+ dest.outerHTML = src.outerHTML;
408
+ }
409
+
410
+ // This path appears unavoidable for IE9. When cloning an object
411
+ // element in IE9, the outerHTML strategy above is not sufficient.
412
+ // If the src has innerHTML and the destination does not,
413
+ // copy the src.innerHTML into the dest.innerHTML. #10324
414
+ if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
415
+ dest.innerHTML = src.innerHTML;
416
+ }
417
+
418
+ } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) {
419
+ // IE6-8 fails to persist the checked state of a cloned checkbox
420
+ // or radio button. Worse, IE6-7 fail to give the cloned element
421
+ // a checked appearance if the defaultChecked value isn't also set
422
+
423
+ dest.defaultChecked = dest.checked = src.checked;
424
+
425
+ // IE6-7 get confused and end up setting the value of a cloned
426
+ // checkbox/radio button to an empty string instead of "on"
427
+ if ( dest.value !== src.value ) {
428
+ dest.value = src.value;
429
+ }
430
+
431
+ // IE6-8 fails to return the selected option to the default selected
432
+ // state when cloning options
433
+ } else if ( nodeName === "option" ) {
434
+ dest.defaultSelected = dest.selected = src.defaultSelected;
435
+
436
+ // IE6-8 fails to set the defaultValue to the correct value when
437
+ // cloning other types of input fields
438
+ } else if ( nodeName === "input" || nodeName === "textarea" ) {
439
+ dest.defaultValue = src.defaultValue;
440
+ }
441
+ }
442
+
443
+ jQuery.each({
444
+ appendTo: "append",
445
+ prependTo: "prepend",
446
+ insertBefore: "before",
447
+ insertAfter: "after",
448
+ replaceAll: "replaceWith"
449
+ }, function( name, original ) {
450
+ jQuery.fn[ name ] = function( selector ) {
451
+ var elems,
452
+ i = 0,
453
+ ret = [],
454
+ insert = jQuery( selector ),
455
+ last = insert.length - 1;
456
+
457
+ for ( ; i <= last; i++ ) {
458
+ elems = i === last ? this : this.clone(true);
459
+ jQuery( insert[i] )[ original ]( elems );
460
+
461
+ // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
462
+ core_push.apply( ret, elems.get() );
463
+ }
464
+
465
+ return this.pushStack( ret );
466
+ };
467
+ });
468
+
469
+ function getAll( context, tag ) {
470
+ var elems, elem,
471
+ i = 0,
472
+ found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) :
473
+ typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) :
474
+ undefined;
475
+
476
+ if ( !found ) {
477
+ for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
478
+ if ( !tag || jQuery.nodeName( elem, tag ) ) {
479
+ found.push( elem );
480
+ } else {
481
+ jQuery.merge( found, getAll( elem, tag ) );
482
+ }
483
+ }
484
+ }
485
+
486
+ return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
487
+ jQuery.merge( [ context ], found ) :
488
+ found;
489
+ }
490
+
491
+ // Used in buildFragment, fixes the defaultChecked property
492
+ function fixDefaultChecked( elem ) {
493
+ if ( manipulation_rcheckableType.test( elem.type ) ) {
494
+ elem.defaultChecked = elem.checked;
495
+ }
496
+ }
497
+
498
+ jQuery.extend({
499
+ clone: function( elem, dataAndEvents, deepDataAndEvents ) {
500
+ var destElements, node, clone, i, srcElements,
501
+ inPage = jQuery.contains( elem.ownerDocument, elem );
502
+
503
+ if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
504
+ clone = elem.cloneNode( true );
505
+
506
+ // IE<=8 does not properly clone detached, unknown element nodes
507
+ } else {
508
+ fragmentDiv.innerHTML = elem.outerHTML;
509
+ fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
510
+ }
511
+
512
+ if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
513
+ (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
514
+
515
+ // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
516
+ destElements = getAll( clone );
517
+ srcElements = getAll( elem );
518
+
519
+ // Fix all IE cloning issues
520
+ for ( i = 0; (node = srcElements[i]) != null; ++i ) {
521
+ // Ensure that the destination node is not null; Fixes #9587
522
+ if ( destElements[i] ) {
523
+ fixCloneNodeIssues( node, destElements[i] );
524
+ }
525
+ }
526
+ }
527
+
528
+ // Copy the events from the original to the clone
529
+ if ( dataAndEvents ) {
530
+ if ( deepDataAndEvents ) {
531
+ srcElements = srcElements || getAll( elem );
532
+ destElements = destElements || getAll( clone );
533
+
534
+ for ( i = 0; (node = srcElements[i]) != null; i++ ) {
535
+ cloneCopyEvent( node, destElements[i] );
536
+ }
537
+ } else {
538
+ cloneCopyEvent( elem, clone );
539
+ }
540
+ }
541
+
542
+ // Preserve script evaluation history
543
+ destElements = getAll( clone, "script" );
544
+ if ( destElements.length > 0 ) {
545
+ setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
546
+ }
547
+
548
+ destElements = srcElements = node = null;
549
+
550
+ // Return the cloned set
551
+ return clone;
552
+ },
553
+
554
+ buildFragment: function( elems, context, scripts, selection ) {
555
+ var j, elem, contains,
556
+ tmp, tag, tbody, wrap,
557
+ l = elems.length,
558
+
559
+ // Ensure a safe fragment
560
+ safe = createSafeFragment( context ),
561
+
562
+ nodes = [],
563
+ i = 0;
564
+
565
+ for ( ; i < l; i++ ) {
566
+ elem = elems[ i ];
567
+
568
+ if ( elem || elem === 0 ) {
569
+
570
+ // Add nodes directly
571
+ if ( jQuery.type( elem ) === "object" ) {
572
+ jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
573
+
574
+ // Convert non-html into a text node
575
+ } else if ( !rhtml.test( elem ) ) {
576
+ nodes.push( context.createTextNode( elem ) );
577
+
578
+ // Convert html into DOM nodes
579
+ } else {
580
+ tmp = tmp || safe.appendChild( context.createElement("div") );
581
+
582
+ // Deserialize a standard representation
583
+ tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
584
+ wrap = wrapMap[ tag ] || wrapMap._default;
585
+
586
+ tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];
587
+
588
+ // Descend through wrappers to the right content
589
+ j = wrap[0];
590
+ while ( j-- ) {
591
+ tmp = tmp.lastChild;
592
+ }
593
+
594
+ // Manually add leading whitespace removed by IE
595
+ if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
596
+ nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
597
+ }
598
+
599
+ // Remove IE's autoinserted <tbody> from table fragments
600
+ if ( !jQuery.support.tbody ) {
601
+
602
+ // String was a <table>, *may* have spurious <tbody>
603
+ elem = tag === "table" && !rtbody.test( elem ) ?
604
+ tmp.firstChild :
605
+
606
+ // String was a bare <thead> or <tfoot>
607
+ wrap[1] === "<table>" && !rtbody.test( elem ) ?
608
+ tmp :
609
+ 0;
610
+
611
+ j = elem && elem.childNodes.length;
612
+ while ( j-- ) {
613
+ if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
614
+ elem.removeChild( tbody );
615
+ }
616
+ }
617
+ }
618
+
619
+ jQuery.merge( nodes, tmp.childNodes );
620
+
621
+ // Fix #12392 for WebKit and IE > 9
622
+ tmp.textContent = "";
623
+
624
+ // Fix #12392 for oldIE
625
+ while ( tmp.firstChild ) {
626
+ tmp.removeChild( tmp.firstChild );
627
+ }
628
+
629
+ // Remember the top-level container for proper cleanup
630
+ tmp = safe.lastChild;
631
+ }
632
+ }
633
+ }
634
+
635
+ // Fix #11356: Clear elements from fragment
636
+ if ( tmp ) {
637
+ safe.removeChild( tmp );
638
+ }
639
+
640
+ // Reset defaultChecked for any radios and checkboxes
641
+ // about to be appended to the DOM in IE 6/7 (#8060)
642
+ if ( !jQuery.support.appendChecked ) {
643
+ jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
644
+ }
645
+
646
+ i = 0;
647
+ while ( (elem = nodes[ i++ ]) ) {
648
+
649
+ // #4087 - If origin and destination elements are the same, and this is
650
+ // that element, do not do anything
651
+ if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
652
+ continue;
653
+ }
654
+
655
+ contains = jQuery.contains( elem.ownerDocument, elem );
656
+
657
+ // Append to fragment
658
+ tmp = getAll( safe.appendChild( elem ), "script" );
659
+
660
+ // Preserve script evaluation history
661
+ if ( contains ) {
662
+ setGlobalEval( tmp );
663
+ }
664
+
665
+ // Capture executables
666
+ if ( scripts ) {
667
+ j = 0;
668
+ while ( (elem = tmp[ j++ ]) ) {
669
+ if ( rscriptType.test( elem.type || "" ) ) {
670
+ scripts.push( elem );
671
+ }
672
+ }
673
+ }
674
+ }
675
+
676
+ tmp = null;
677
+
678
+ return safe;
679
+ },
680
+
681
+ cleanData: function( elems, /* internal */ acceptData ) {
682
+ var elem, type, id, data,
683
+ i = 0,
684
+ internalKey = jQuery.expando,
685
+ cache = jQuery.cache,
686
+ deleteExpando = jQuery.support.deleteExpando,
687
+ special = jQuery.event.special;
688
+
689
+ for ( ; (elem = elems[i]) != null; i++ ) {
690
+
691
+ if ( acceptData || jQuery.acceptData( elem ) ) {
692
+
693
+ id = elem[ internalKey ];
694
+ data = id && cache[ id ];
695
+
696
+ if ( data ) {
697
+ if ( data.events ) {
698
+ for ( type in data.events ) {
699
+ if ( special[ type ] ) {
700
+ jQuery.event.remove( elem, type );
701
+
702
+ // This is a shortcut to avoid jQuery.event.remove's overhead
703
+ } else {
704
+ jQuery.removeEvent( elem, type, data.handle );
705
+ }
706
+ }
707
+ }
708
+
709
+ // Remove cache only if it was not already removed by jQuery.event.remove
710
+ if ( cache[ id ] ) {
711
+
712
+ delete cache[ id ];
713
+
714
+ // IE does not allow us to delete expando properties from nodes,
715
+ // nor does it have a removeAttribute function on Document nodes;
716
+ // we must handle all of these cases
717
+ if ( deleteExpando ) {
718
+ delete elem[ internalKey ];
719
+
720
+ } else if ( typeof elem.removeAttribute !== core_strundefined ) {
721
+ elem.removeAttribute( internalKey );
722
+
723
+ } else {
724
+ elem[ internalKey ] = null;
725
+ }
726
+
727
+ core_deletedIds.push( id );
728
+ }
729
+ }
730
+ }
731
+ }
732
+ },
733
+
734
+ _evalUrl: function( url ) {
735
+ return jQuery.ajax({
736
+ url: url,
737
+ type: "GET",
738
+ dataType: "script",
739
+ async: false,
740
+ global: false,
741
+ "throws": true
742
+ });
743
+ }
744
+ });