Coming Soon Page & Maintenance Mode by SeedProd - Version 4.0.0

Version Description

  • Initial Commit

=

Download this release

Release Info

Developer seedprod
Plugin Icon 128x128 Coming Soon Page & Maintenance Mode by SeedProd
Version 4.0.0
Comparing to
See all releases

Version 4.0.0

Files changed (50) hide show
  1. LICENSE.txt +281 -0
  2. README.txt +114 -0
  3. coming-soon.php +73 -0
  4. framework/field-types/checkbox.php +14 -0
  5. framework/field-types/color.php +14 -0
  6. framework/field-types/customsocialfollow.php +40 -0
  7. framework/field-types/date.php +32 -0
  8. framework/field-types/daterange.php +46 -0
  9. framework/field-types/export.php +31 -0
  10. framework/field-types/import.php +25 -0
  11. framework/field-types/js/color.js +6 -0
  12. framework/field-types/js/upload.js +31 -0
  13. framework/field-types/multiselect.php +18 -0
  14. framework/field-types/password.php +9 -0
  15. framework/field-types/radio.php +9 -0
  16. framework/field-types/select.php +22 -0
  17. framework/field-types/text.php +7 -0
  18. framework/field-types/textarea.php +9 -0
  19. framework/field-types/textbox.php +9 -0
  20. framework/field-types/upload.php +15 -0
  21. framework/field-types/wpeditor.php +15 -0
  22. framework/framework.php +525 -0
  23. framework/get-settings.php +20 -0
  24. framework/settings-scripts.js +8 -0
  25. framework/settings-style.css +9 -0
  26. framework/validations/color.php +15 -0
  27. framework/validations/email.php +11 -0
  28. framework/validations/escurlraw.php +12 -0
  29. framework/validations/number.php +13 -0
  30. framework/validations/required.php +11 -0
  31. inc/adminbar-style.css +8 -0
  32. inc/class-seed-csp4.php +217 -0
  33. inc/config-settings.php +381 -0
  34. inc/default-settings.php +6 -0
  35. languages/seedprod.pot +1643 -0
  36. lib/seed_csp4_lessc.inc.php +3359 -0
  37. themes/default/bootstrap/css/bootstrap.css +5958 -0
  38. themes/default/bootstrap/css/bootstrap.min.css +1 -0
  39. themes/default/bootstrap/js/bootstrap.js +2006 -0
  40. themes/default/bootstrap/js/bootstrap.min.js +7 -0
  41. themes/default/functions.php +291 -0
  42. themes/default/images/ajax-loader.gif +0 -0
  43. themes/default/images/seedprod-credit.png +0 -0
  44. themes/default/index.php +26 -0
  45. themes/default/js/jquery.fitvids.js +74 -0
  46. themes/default/js/modernizr.min.js +4 -0
  47. themes/default/js/script.js +12 -0
  48. themes/default/rtl.css +18 -0
  49. themes/default/style.css +141 -0
  50. themes/index.php +3 -0
LICENSE.txt ADDED
@@ -0,0 +1,281 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
+ 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
6
+
7
+ Everyone is permitted to copy and distribute verbatim copies
8
+ of this license document, but changing it is not allowed.
9
+
10
+ Preamble
11
+
12
+ The licenses for most software are designed to take away your
13
+ freedom to share and change it. By contrast, the GNU General Public
14
+ License is intended to guarantee your freedom to share and change free
15
+ software--to make sure the software is free for all its users. This
16
+ General Public License applies to most of the Free Software
17
+ Foundation's software and to any other program whose authors commit to
18
+ using it. (Some other Free Software Foundation software is covered by
19
+ the GNU Library General Public License instead.) You can apply it to
20
+ your programs, too.
21
+
22
+ When we speak of free software, we are referring to freedom, not
23
+ price. Our General Public Licenses are designed to make sure that you
24
+ have the freedom to distribute copies of free software (and charge for
25
+ this service if you wish), that you receive source code or can get it
26
+ if you want it, that you can change the software or use pieces of it
27
+ in new free programs; and that you know you can do these things.
28
+
29
+ To protect your rights, we need to make restrictions that forbid
30
+ anyone to deny you these rights or to ask you to surrender the rights.
31
+ These restrictions translate to certain responsibilities for you if you
32
+ distribute copies of the software, or if you modify it.
33
+
34
+ For example, if you distribute copies of such a program, whether
35
+ gratis or for a fee, you must give the recipients all the rights that
36
+ you have. You must make sure that they, too, receive or can get the
37
+ source code. And you must show them these terms so they know their
38
+ rights.
39
+
40
+ We protect your rights with two steps: (1) copyright the software, and
41
+ (2) offer you this license which gives you legal permission to copy,
42
+ distribute and/or modify the software.
43
+
44
+ Also, for each author's protection and ours, we want to make certain
45
+ that everyone understands that there is no warranty for this free
46
+ software. If the software is modified by someone else and passed on, we
47
+ want its recipients to know that what they have is not the original, so
48
+ that any problems introduced by others will not reflect on the original
49
+ authors' reputations.
50
+
51
+ Finally, any free program is threatened constantly by software
52
+ patents. We wish to avoid the danger that redistributors of a free
53
+ program will individually obtain patent licenses, in effect making the
54
+ program proprietary. To prevent this, we have made it clear that any
55
+ patent must be licensed for everyone's free use or not licensed at all.
56
+
57
+ The precise terms and conditions for copying, distribution and
58
+ modification follow.
59
+
60
+ GNU GENERAL PUBLIC LICENSE
61
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
62
+
63
+ 0. This License applies to any program or other work which contains
64
+ a notice placed by the copyright holder saying it may be distributed
65
+ under the terms of this General Public License. The "Program", below,
66
+ refers to any such program or work, and a "work based on the Program"
67
+ means either the Program or any derivative work under copyright law:
68
+ that is to say, a work containing the Program or a portion of it,
69
+ either verbatim or with modifications and/or translated into another
70
+ language. (Hereinafter, translation is included without limitation in
71
+ the term "modification".) Each licensee is addressed as "you".
72
+
73
+ Activities other than copying, distribution and modification are not
74
+ covered by this License; they are outside its scope. The act of
75
+ running the Program is not restricted, and the output from the Program
76
+ is covered only if its contents constitute a work based on the
77
+ Program (independent of having been made by running the Program).
78
+ Whether that is true depends on what the Program does.
79
+
80
+ 1. You may copy and distribute verbatim copies of the Program's
81
+ source code as you receive it, in any medium, provided that you
82
+ conspicuously and appropriately publish on each copy an appropriate
83
+ copyright notice and disclaimer of warranty; keep intact all the
84
+ notices that refer to this License and to the absence of any warranty;
85
+ and give any other recipients of the Program a copy of this License
86
+ along with the Program.
87
+
88
+ You may charge a fee for the physical act of transferring a copy, and
89
+ you may at your option offer warranty protection in exchange for a fee.
90
+
91
+ 2. You may modify your copy or copies of the Program or any portion
92
+ of it, thus forming a work based on the Program, and copy and
93
+ distribute such modifications or work under the terms of Section 1
94
+ above, provided that you also meet all of these conditions:
95
+
96
+ a) You must cause the modified files to carry prominent notices
97
+ stating that you changed the files and the date of any change.
98
+
99
+ b) You must cause any work that you distribute or publish, that in
100
+ whole or in part contains or is derived from the Program or any
101
+ part thereof, to be licensed as a whole at no charge to all third
102
+ parties under the terms of this License.
103
+
104
+ c) If the modified program normally reads commands interactively
105
+ when run, you must cause it, when started running for such
106
+ interactive use in the most ordinary way, to print or display an
107
+ announcement including an appropriate copyright notice and a
108
+ notice that there is no warranty (or else, saying that you provide
109
+ a warranty) and that users may redistribute the program under
110
+ these conditions, and telling the user how to view a copy of this
111
+ License. (Exception: if the Program itself is interactive but
112
+ does not normally print such an announcement, your work based on
113
+ the Program is not required to print an announcement.)
114
+
115
+ These requirements apply to the modified work as a whole. If
116
+ identifiable sections of that work are not derived from the Program,
117
+ and can be reasonably considered independent and separate works in
118
+ themselves, then this License, and its terms, do not apply to those
119
+ sections when you distribute them as separate works. But when you
120
+ distribute the same sections as part of a whole which is a work based
121
+ on the Program, the distribution of the whole must be on the terms of
122
+ this License, whose permissions for other licensees extend to the
123
+ entire whole, and thus to each and every part regardless of who wrote it.
124
+ Thus, it is not the intent of this section to claim rights or contest
125
+ your rights to work written entirely by you; rather, the intent is to
126
+ exercise the right to control the distribution of derivative or
127
+ collective works based on the Program.
128
+
129
+ In addition, mere aggregation of another work not based on the Program
130
+ with the Program (or with a work based on the Program) on a volume of
131
+ a storage or distribution medium does not bring the other work under
132
+ the scope of this License.
133
+
134
+ 3. You may copy and distribute the Program (or a work based on it,
135
+ under Section 2) in object code or executable form under the terms of
136
+ Sections 1 and 2 above provided that you also do one of the following:
137
+
138
+ a) Accompany it with the complete corresponding machine-readable
139
+ source code, which must be distributed under the terms of Sections
140
+ 1 and 2 above on a medium customarily used for software interchange; or,
141
+
142
+ b) Accompany it with a written offer, valid for at least three
143
+ years, to give any third party, for a charge no more than your
144
+ cost of physically performing source distribution, a complete
145
+ machine-readable copy of the corresponding source code, to be
146
+ distributed under the terms of Sections 1 and 2 above on a medium
147
+ customarily used for software interchange; or,
148
+
149
+ c) Accompany it with the information you received as to the offer
150
+ to distribute corresponding source code. (This alternative is
151
+ allowed only for noncommercial distribution and only if you
152
+ received the program in object code or executable form with such
153
+ an offer, in accord with Subsection b above.)
154
+
155
+ The source code for a work means the preferred form of the work for
156
+ making modifications to it. For an executable work, complete source
157
+ code means all the source code for all modules it contains, plus any
158
+ associated interface definition files, plus the scripts used to
159
+ control compilation and installation of the executable. However, as a
160
+ special exception, the source code distributed need not include
161
+ anything that is normally distributed (in either source or binary
162
+ form) with the major components (compiler, kernel, and so on) of the
163
+ operating system on which the executable runs, unless that component
164
+ itself accompanies the executable.
165
+
166
+ If distribution of executable or object code is made by offering
167
+ access to copy from a designated place, then offering equivalent
168
+ access to copy the source code from the same place counts as
169
+ distribution of the source code, even though third parties are not
170
+ compelled to copy the source along with the object code.
171
+
172
+ 4. You may not copy, modify, sublicense, or distribute the Program
173
+ except as expressly provided under this License. Any attempt
174
+ otherwise to copy, modify, sublicense or distribute the Program is
175
+ void, and will automatically terminate your rights under this License.
176
+ However, parties who have received copies, or rights, from you under
177
+ this License will not have their licenses terminated so long as such
178
+ parties remain in full compliance.
179
+
180
+ 5. You are not required to accept this License, since you have not
181
+ signed it. However, nothing else grants you permission to modify or
182
+ distribute the Program or its derivative works. These actions are
183
+ prohibited by law if you do not accept this License. Therefore, by
184
+ modifying or distributing the Program (or any work based on the
185
+ Program), you indicate your acceptance of this License to do so, and
186
+ all its terms and conditions for copying, distributing or modifying
187
+ the Program or works based on it.
188
+
189
+ 6. Each time you redistribute the Program (or any work based on the
190
+ Program), the recipient automatically receives a license from the
191
+ original licensor to copy, distribute or modify the Program subject to
192
+ these terms and conditions. You may not impose any further
193
+ restrictions on the recipients' exercise of the rights granted herein.
194
+ You are not responsible for enforcing compliance by third parties to
195
+ this License.
196
+
197
+ 7. If, as a consequence of a court judgment or allegation of patent
198
+ infringement or for any other reason (not limited to patent issues),
199
+ conditions are imposed on you (whether by court order, agreement or
200
+ otherwise) that contradict the conditions of this License, they do not
201
+ excuse you from the conditions of this License. If you cannot
202
+ distribute so as to satisfy simultaneously your obligations under this
203
+ License and any other pertinent obligations, then as a consequence you
204
+ may not distribute the Program at all. For example, if a patent
205
+ license would not permit royalty-free redistribution of the Program by
206
+ all those who receive copies directly or indirectly through you, then
207
+ the only way you could satisfy both it and this License would be to
208
+ refrain entirely from distribution of the Program.
209
+
210
+ If any portion of this section is held invalid or unenforceable under
211
+ any particular circumstance, the balance of the section is intended to
212
+ apply and the section as a whole is intended to apply in other
213
+ circumstances.
214
+
215
+ It is not the purpose of this section to induce you to infringe any
216
+ patents or other property right claims or to contest validity of any
217
+ such claims; this section has the sole purpose of protecting the
218
+ integrity of the free software distribution system, which is
219
+ implemented by public license practices. Many people have made
220
+ generous contributions to the wide range of software distributed
221
+ through that system in reliance on consistent application of that
222
+ system; it is up to the author/donor to decide if he or she is willing
223
+ to distribute software through any other system and a licensee cannot
224
+ impose that choice.
225
+
226
+ This section is intended to make thoroughly clear what is believed to
227
+ be a consequence of the rest of this License.
228
+
229
+ 8. If the distribution and/or use of the Program is restricted in
230
+ certain countries either by patents or by copyrighted interfaces, the
231
+ original copyright holder who places the Program under this License
232
+ may add an explicit geographical distribution limitation excluding
233
+ those countries, so that distribution is permitted only in or among
234
+ countries not thus excluded. In such case, this License incorporates
235
+ the limitation as if written in the body of this License.
236
+
237
+ 9. The Free Software Foundation may publish revised and/or new versions
238
+ of the General Public License from time to time. Such new versions will
239
+ be similar in spirit to the present version, but may differ in detail to
240
+ address new problems or concerns.
241
+
242
+ Each version is given a distinguishing version number. If the Program
243
+ specifies a version number of this License which applies to it and "any
244
+ later version", you have the option of following the terms and conditions
245
+ either of that version or of any later version published by the Free
246
+ Software Foundation. If the Program does not specify a version number of
247
+ this License, you may choose any version ever published by the Free Software
248
+ Foundation.
249
+
250
+ 10. If you wish to incorporate parts of the Program into other free
251
+ programs whose distribution conditions are different, write to the author
252
+ to ask for permission. For software which is copyrighted by the Free
253
+ Software Foundation, write to the Free Software Foundation; we sometimes
254
+ make exceptions for this. Our decision will be guided by the two goals
255
+ of preserving the free status of all derivatives of our free software and
256
+ of promoting the sharing and reuse of software generally.
257
+
258
+ NO WARRANTY
259
+
260
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268
+ REPAIR OR CORRECTION.
269
+
270
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
+ POSSIBILITY OF SUCH DAMAGES.
279
+
280
+ END OF TERMS AND CONDITIONS
281
+
README.txt ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Plugin Name ===
2
+ Contributors: seedprod, johnnytee
3
+ Donate link: http://www.seedprod.com
4
+ Tags: wordpress coming soon, wordpress under construction, wordpress maintenance mode, maintenance mode, coming soon, under construction, launch page, launch, maintenance, construction, offline, unavailable, newsletter, coming soon page, landing page
5
+ Requires at least: 3.5.1
6
+ Tested up to: 3.8.0
7
+ Stable tag: 4.0.0
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ Coming Soon and Maintenance Mode pages in minutes.
12
+
13
+ == Description ==
14
+
15
+ Create simple Coming Soon and Maintenance Mode pages. Work on your site while visitors see a "Coming Soon" or "Maintenance Mode" page.
16
+
17
+ ### Benefits, Features and Options:
18
+
19
+ * Works with any WordPress Theme
20
+ * Responsive
21
+ * Customize the Look and Feel
22
+ * Easily add Custom CSS and HTML
23
+ * Uses HTML5 & CSS3
24
+ * Translation Ready, i18n Support
25
+ * Multisite Support
26
+ * BuddyPress Support
27
+ * Uses WordPress Best Practices
28
+
29
+ ### Pro Version Features:
30
+
31
+ * Works with any WordPress theme
32
+ * Visible only to non logged in users
33
+ * Secret link for your clients to view the upcoming website without logging in
34
+ * Search Engine Optimized with customizable meta tags
35
+ * Mobile Ready responsive design and layout
36
+ * Maintenance Mode with Automatic Screenshot
37
+ * Custom Look & Feel with no coding
38
+ * Integrated Google and Typekit fonts
39
+ * Full Browser Backgrounds option
40
+ * Option to capture first and last name
41
+ * Videos can be embedded in the description just be entering the URL
42
+ * Display an Incentive after Sign Up
43
+ * Social Profiles & Social Sharing Buttons
44
+ * MailChimp, AWeber, Get Response, Constant Contact and Campaign Monitor integration
45
+ * Gravity Forms integration to collect info from visitors
46
+ * Built-in referral system to keep track referrered subscribers and how many of those convert
47
+ * Store Emails in the WordPress Database to export to any email service
48
+ * Progress bar with automatic completion calculation
49
+ * Google Analytics Support
50
+ * Automatic Easy Updates
51
+ * Shortcode Support
52
+ * Option to enable template responsiveness
53
+ * Option to control access by IP
54
+ * Custom Footer Branding
55
+ * Custom Favicon
56
+ * Custom CSS Support
57
+ * Import/Export Settings for backup or re-use purposes
58
+ * Multisite Support
59
+ * HTML5 & CSS3 which degrades gracefully for older browsers
60
+ * Translation Ready i18n Support
61
+ * Option to exclude specific URLs from displaying Coming Soon page
62
+ * Plus lots more...
63
+
64
+ * [Upgrade to the Pro Version Now!»](http://www.seedprod.com/?utm_source=wordpress.org&utm_medium=link&utm_campaign=coming-soon-from-wordpress.org)
65
+
66
+
67
+ == Installation ==
68
+
69
+ = Using The WordPress Dashboard =
70
+
71
+ 1. Navigate to the 'Add New' in the plugins dashboard
72
+ 2. Search for 'Coming Soon'
73
+ 3. Click 'Install Now'
74
+ 4. Activate the plugin on the Plugin dashboard
75
+
76
+ = Uploading in WordPress Dashboard =
77
+
78
+ 1. Navigate to the 'Add New' in the plugins dashboard
79
+ 2. Navigate to the 'Upload' area
80
+ 3. Select `coming-soon.zip` from your computer
81
+ 4. Click 'Install Now'
82
+ 5. Activate the plugin in the Plugin dashboard
83
+
84
+ = Using FTP =
85
+
86
+ 1. Download `coming-soon.zip`
87
+ 2. Extract the `coming-soon` directory to your computer
88
+ 3. Upload the `coming-soon` directory to the `/wp-content/plugins/` directory
89
+ 4. Activate the plugin in the Plugin dashboard
90
+
91
+
92
+ == Frequently Asked Questions ==
93
+
94
+ = Disabled Coming Soon Plugin and it still shows =
95
+
96
+ This is always a caching issue. Go to the caching plugin's setting page and clear the cache.
97
+
98
+ == Screenshots ==
99
+
100
+ 1. Coming Soon Page Example
101
+ 2. Maintenance Mode Example
102
+ 3. Content Page
103
+ 4. Design Page
104
+
105
+
106
+ == Changelog ==
107
+
108
+ = 4.0.0 =
109
+ * Initial Commit
110
+
111
+ == Upgrade Notice ==
112
+
113
+ = 4.0.0 =
114
+ Initial Commit
coming-soon.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Plugin Name: Coming Soon
4
+ * Plugin URI: http://www.seedprod.com
5
+ * Description: Coming Soon, Maintenance Mode pages in minutes
6
+ * Version: 4.0.0
7
+ * Author: SeedProd
8
+ * Author URI: http://www.seedprod.com
9
+ * Text Domain: coming-soon
10
+ * License: GPL-2.0+
11
+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
12
+ * Domain Path: /languages
13
+ * Copyright 2012 John Turner (email : john@seedprod.com, twitter : @johnturner)
14
+ */
15
+
16
+ /**
17
+ * Default Constants
18
+ */
19
+ define( 'SEED_CSP4_SHORTNAME', 'seed_csp4' ); // Used to reference namespace functions.
20
+ define( 'SEED_CSP4_SLUG', 'coming-soon/coming-soon.php' ); // Used for settings link.
21
+ define( 'SEED_CSP4_TEXTDOMAIN', 'coming-soon' ); // Your textdomain
22
+ define( 'SEED_CSP4_PLUGIN_NAME', __( 'Coming Soon', 'coming-soon' ) ); // Plugin Name shows up on the admin settings screen.
23
+ define( 'SEED_CSP4_VERSION', '4.0.0'); // Plugin Version Number. Recommend you use Semantic Versioning http://semver.org/
24
+ define( 'SEED_CSP4_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); // Example output: /Applications/MAMP/htdocs/wordpress/wp-content/plugins/seed_csp4/
25
+ define( 'SEED_CSP4_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); // Example output: http://localhost:8888/wordpress/wp-content/plugins/seed_csp4/
26
+ define( 'SEED_CSP4_TABLENAME', 'seed_csp4_subscribers' );
27
+
28
+
29
+ /**
30
+ * Load Translation
31
+ */
32
+ function seed_csp4_load_textdomain() {
33
+ load_plugin_textdomain( 'coming-soon', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
34
+ }
35
+ add_action('plugins_loaded', 'seed_csp4_load_textdomain');
36
+
37
+
38
+ /**
39
+ * Upon activation of the plugin, see if we are running the required version and deploy theme in defined.
40
+ *
41
+ * @since 0.1.0
42
+ */
43
+ function seed_csp4_activation(){
44
+ require_once( 'inc/default-settings.php' );
45
+ add_option('seed_csp4_settings_content',unserialize($seed_csp4_settings_deafults['seed_csp4_settings_content']));
46
+ add_option('seed_csp4_settings_design',unserialize($seed_csp4_settings_deafults['seed_csp4_settings_design']));
47
+ add_option('seed_csp4_settings_advanced',unserialize($seed_csp4_settings_deafults['seed_csp4_settings_advanced']));
48
+ }
49
+ register_activation_hook( __FILE__, 'seed_csp4_activation' );
50
+
51
+
52
+ /***************************************************************************
53
+ * Load Required Files
54
+ ***************************************************************************/
55
+
56
+ // Global
57
+ global $seed_csp4_settings;
58
+
59
+ require_once( 'framework/get-settings.php' );
60
+ $seed_csp4_settings = seed_csp4_get_settings();
61
+
62
+ require_once( 'inc/class-seed-csp4.php' );
63
+ add_action( 'plugins_loaded', array( 'SEED_CSP4', 'get_instance' ) );
64
+
65
+ if( is_admin() ) {
66
+ // Admin Only
67
+ require_once( 'inc/config-settings.php' );
68
+ require_once( 'framework/framework.php' );
69
+ add_action( 'plugins_loaded', array( 'SEED_CSP4_ADMIN', 'get_instance' ) );
70
+ } else {
71
+ // Public only
72
+
73
+ }
framework/field-types/checkbox.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ $c = 0;
8
+ if(empty($options[ $id ]) || !is_array($options[ $id ])){
9
+ $options[ $id ] = array();
10
+ }
11
+ foreach ( $option_values as $k => $v ) {
12
+ echo "<input class='$id' type='checkbox' name='{$setting_id}[$id][]' value='$k' " . ( in_array( $k, ( empty( $options[ $id ] ) ? array( ) : $options[ $id ] ) ) ? 'checked' : '' ) . " /> $v<br/>";
13
+ $c++;
14
+ }
framework/field-types/color.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+ if(!isset($options[ $id ])){
7
+ $options[ $id ] = '';
8
+ }
9
+
10
+ echo "<input id='$id' class='pickcolor-field' type='text' name='{$setting_id}[$id]' value='" . esc_attr( $options[ $id ] ) . "' style='background-color:" . ( empty( $options[ $id ] ) ? $default_value : $options[ $id ] ) . ";' />";
11
+
12
+ wp_enqueue_script( 'seed_csp4-color-js', SEED_CSP4_PLUGIN_URL . 'framework/field-types/js/color.js', array(
13
+ 'wp-color-picker'
14
+ ),false, true );
framework/field-types/customsocialfollow.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ $profiles = array(
8
+ 'Facebook',
9
+ 'Twitter',
10
+ 'RSS',
11
+ 'Email',
12
+ );
13
+
14
+ if(!empty($options[$id])){
15
+ $profiles = array();
16
+ foreach($options[$id] as $k=>$v){
17
+ $profiles[] = $k;
18
+ }
19
+
20
+ }
21
+
22
+ ?>
23
+ <small class='description'><?php _e("Enter your social profile url's. Drag &amp; Drop the icons to reorder. Remember to save your changes. <a href='https://seedprod.zendesk.com/entries/21778652-adding-custom-icons' target='_blank'>Learn how to add your own custom icons</a>.",'coming-soon'); ?></small>
24
+ <ul id="seed-csp4-social-profiles">
25
+ <?php foreach($profiles as $k=>$v){ ?>
26
+ <li class="ui-state-default"><img style="width:24px;vertical-align:middle;cursor:move" src="<?php echo SEED_CSP4_PLUGIN_URL.'themes/default/images/icons1/'.strtolower($v).'.png'; ?>"> <?php echo "<input autocomplete='off' placeholder='$v' class='regular-text' name='{$setting_id}[$id][$v]' type='text' value='" . esc_attr( $options[ $id ][$v] ) . "' />"; ?></li>
27
+ <?php } ?>
28
+ </ul>
29
+ <style>
30
+ #seed-csp4-social-profiles .ui-state-highlight { height: 1.5em; line-height: 1.2em; border:1px dotted #ccc; width:325px }
31
+ </style>
32
+ <script>
33
+
34
+ jQuery(document).ready(function($){
35
+ $( "#seed-csp4-social-profiles" ).sortable({
36
+ placeholder: "ui-state-highlight"
37
+ });
38
+ //$( "#seed-csp4-social-profiles" ).disableSelection();
39
+ });
40
+ </script>
framework/field-types/date.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ $option_values = array(
8
+ '01'=>__('01-Jan','coming-soon'),
9
+ '02'=>__('02-Feb','coming-soon'),
10
+ '03'=>__('03-Mar','coming-soon'),
11
+ '04'=>__('04-Apr','coming-soon'),
12
+ '05'=>__('05-May','coming-soon'),
13
+ '06'=>__('06-Jun','coming-soon'),
14
+ '07'=>__('07-Jul','coming-soon'),
15
+ '08'=>__('08-Aug','coming-soon'),
16
+ '09'=>__('09-Sep','coming-soon'),
17
+ '10'=>__('10-Oct','coming-soon'),
18
+ '11'=>__('11-Nov','coming-soon'),
19
+ '12'=>__('12-Dec','coming-soon'),
20
+ );
21
+
22
+
23
+ echo "<select id='mm' name='{$setting_id}[$id][month]'>";
24
+ foreach ( $option_values as $k => $v ) {
25
+ echo "<option value='$k' " . selected( $options[ $id ]['month'], $k, false ) . ">$v</option>";
26
+ }
27
+ echo "</select>";
28
+
29
+ echo "<input id='jj' class='small-text' name='{$setting_id}[$id][day]' placeholder='".__('day','coming-soon')."' type='text' value='" . esc_attr( $options[ $id ]['day'] ) . "' />";
30
+
31
+ echo ',';
32
+ echo "<input id='aa' class='small-text' name='{$setting_id}[$id][year]' placeholder='".__('year','coming-soon')."' type='text' value='" . esc_attr( $options[ $id ]['year'] ) . "' /><br>";
framework/field-types/daterange.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ $option_values = array(
8
+ '01'=>__('01-Jan','coming-soon'),
9
+ '02'=>__('02-Feb','coming-soon'),
10
+ '03'=>__('03-Mar','coming-soon'),
11
+ '04'=>__('04-Apr','coming-soon'),
12
+ '05'=>__('05-May','coming-soon'),
13
+ '06'=>__('06-Jun','coming-soon'),
14
+ '07'=>__('07-Jul','coming-soon'),
15
+ '08'=>__('08-Aug','coming-soon'),
16
+ '09'=>__('09-Sep','coming-soon'),
17
+ '10'=>__('10-Oct','coming-soon'),
18
+ '11'=>__('11-Nov','coming-soon'),
19
+ '12'=>__('12-Dec','coming-soon'),
20
+ );
21
+
22
+ _e('Start Date', 'coming-soon');
23
+ echo "<select id='mm' name='{$setting_id}[$id][start_month]'>";
24
+ foreach ( $option_values as $k => $v ) {
25
+ echo "<option value='$k' " . selected( $options[ $id ]['start_month'], $k, false ) . ">$v</option>";
26
+ }
27
+ echo "</select>";
28
+
29
+ echo "<input id='jj' class='small-text' placeholder='".__('day','coming-soon')."' name='{$setting_id}[$id][start_day]' type='text' value='" . esc_attr( $options[ $id ]['start_day'] ) . "' />";
30
+
31
+ echo ',';
32
+ echo "<input id='aa' class='small-text' placeholder='".__('year','coming-soon')."' name='{$setting_id}[$id][start_year]' type='text' value='" . esc_attr( $options[ $id ]['start_year'] ) . "' />";
33
+
34
+ echo '&nbsp;&nbsp;&nbsp;&nbsp;';
35
+ _e('End Date', 'coming-soon');
36
+ echo "<select id='mm' name='{$setting_id}[$id][end_month]'>";
37
+ foreach ( $option_values as $k => $v ) {
38
+ echo "<option value='$k' " . selected( $options[ $id ]['end_month'], $k, false ) . ">$v</option>";
39
+ }
40
+ echo "</select>";
41
+
42
+ echo "<input id='jj' class='small-text' placeholder='".__('day','coming-soon')."' name='{$setting_id}[$id][end_day]' type='text' value='" . esc_attr( $options[ $id ]['end_day'] ) . "' />";
43
+
44
+ echo ',';
45
+ echo "<input id='aa' class='small-text' placeholder='".__('year','coming-soon')."' name='{$setting_id}[$id][end_year]' type='text' value='" . esc_attr( $options[ $id ]['end_year'] ) . "' /><br>";
46
+
framework/field-types/export.php ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ $seed_csp4_s1 = get_option('seed_csp4_settings_1');
8
+ $seed_csp4_s2 = get_option('seed_csp4_settings_2');
9
+ $seed_csp4_s3 = get_option('seed_csp4_settings_4');
10
+ $settings = array( );
11
+ foreach ( $this->options as $k ) {
12
+ switch ( $k[ 'type' ] ) {
13
+ case 'setting':
14
+ $s = get_option( $k[ 'id' ]);
15
+ if(is_array($s)){
16
+ $settings[$k[ 'id' ]] = $s;
17
+ }
18
+ break;
19
+ }
20
+ }
21
+
22
+ $export = json_encode($settings);
23
+
24
+ echo "<textarea id='$id' class='large-text'>" . $export . "</textarea><br>";
25
+
26
+ echo '
27
+ <script>
28
+ jQuery(document).ready(function($) {
29
+ $("#export").click(function(){this.select()});
30
+ });
31
+ </script>';
framework/field-types/import.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ $ajax_url = html_entity_decode(wp_nonce_url('admin-ajax.php?action=seed_csp4_import_settings','seed_csp4_import_settings'));
8
+
9
+ echo "<textarea id='import_settings' class='large-text'></textarea><br><button id='import-settings-btn' type='button' class='button-secondary'>Import</button>";
10
+
11
+ echo "<script>
12
+ jQuery(document).ready(function($) {
13
+ $('#import-settings-btn').click(function() {
14
+ if(confirm(seed_csp4_msgs.import_confirm)){
15
+ var settings = $('#import_settings').val();
16
+ $.post('{$ajax_url}',{settings: settings}, function(data) {
17
+ if(data == '1'){
18
+ $('#import-settings-btn').html('Import Successful').attr('disabled','disabled');
19
+ setTimeout('csp4_reload_page()',2000);
20
+ }
21
+ });
22
+ }
23
+ });
24
+ });
25
+ </script>";
framework/field-types/js/color.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ // For Color Field Type
2
+
3
+ jQuery(document).ready(function($){
4
+ $('.pickcolor-field').wpColorPicker();
5
+ });
6
+
framework/field-types/js/upload.js ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // For Upload Field Type
2
+
3
+ jQuery(document).ready(function($){
4
+ var _custom_media = true,
5
+ _orig_send_attachment = wp.media.editor.send.attachment;
6
+
7
+ $('.upload-button').click(function(e) {
8
+ var send_attachment_bkp = wp.media.editor.send.attachment;
9
+ var button = $(this);
10
+ var id = jQuery(this).prev('input');
11
+ _custom_media = true;
12
+ wp.media.editor.send.attachment = function(props, attachment){
13
+ var size = props.size;
14
+ var att =attachment.sizes[size];
15
+
16
+ //props.size
17
+ if ( _custom_media ) {
18
+ $(id).val(att.url);
19
+ } else {
20
+ return _orig_send_attachment.apply( this, [props, attachment] );
21
+ };
22
+ }
23
+
24
+ wp.media.editor.open(button);
25
+ return false;
26
+ });
27
+
28
+ $('.add_media').on('click', function(){
29
+ _custom_media = false;
30
+ });
31
+ });
framework/field-types/multiselect.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ if(empty($options[$id])){
8
+ $options[$id] = array();
9
+ }
10
+
11
+ echo "<select multiple='multiple' id='$id' class='" . ( empty( $class ) ? 'all-options' : $class ) . "' name='{$setting_id}[$id][]'>";
12
+
13
+ foreach ( $option_values as $k => $v ) {
14
+
15
+
16
+ echo "<option value='$k' " . (in_array($k,$options[$id],true)?'selected':'') . ">$v</option>";
17
+ }
18
+ echo "</select><br>";
framework/field-types/password.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+ if(empty($options[ $id ])){
7
+ $options[ $id ] = '';
8
+ }
9
+ echo "<input id='$id' class='" . ( empty( $class ) ? 'regular-text' : $class ) . "' name='{$setting_id}[$id]' type='password' value='" . esc_attr( $options[ $id ] ) . "' /><br>";
framework/field-types/radio.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ foreach ( $option_values as $k => $v ) {
8
+ echo "<input class='$id' type='radio' name='{$setting_id}[$id]' value='$k' " . checked( $options[ $id ], $k, false ) . " /> $v<br/>";
9
+ }
framework/field-types/select.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ echo "<select id='$id' class='" . ( empty( $class ) ? '' : $class ) . "' name='{$setting_id}[$id]'>";
8
+ foreach ( $option_values as $k => $v ) {
9
+ if(is_array($v)){
10
+ echo '<optgroup label="'.ucwords($k).'">';
11
+ foreach ( $v as $k1=>$v1 ) {
12
+ echo "<option value='$k1' " . selected( $options[ $id ], $k1, false ) . ">$v1</option>";
13
+ }
14
+ echo '</optgroup>';
15
+ }else{
16
+ if(!isset($options[ $id ])){
17
+ $options[ $id ] = '';
18
+ }
19
+ echo "<option value='$k' " . selected( $options[ $id ], $k, false ) . ">$v</option>";
20
+ }
21
+ }
22
+ echo "</select> ";
framework/field-types/text.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+ if(!empty($options[ $id ]))
7
+ echo "<p id='$id' class='" . ( empty( $class ) ? '' : $class ) . "' >".$options[ $id ] ."</p>";
framework/field-types/textarea.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+ if(empty($options[ $id ])){
7
+ $options[ $id ] = '';
8
+ }
9
+ echo "<textarea id='$id' class='" . ( empty( $class ) ? '' : $class ) . "' name='{$setting_id}[$id]'>" . $options[ $id ] . "</textarea><br>";
framework/field-types/textbox.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+ if(empty($options[ $id ])){
7
+ $options[ $id ] = '';
8
+ }
9
+ echo "<input id='$id' class='" . ( empty( $class ) ? 'regular-text' : $class ) . "' name='{$setting_id}[$id]' type='text' value='" . esc_attr( $options[ $id ] ) . "' /><br>";
framework/field-types/upload.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+
7
+ if(!isset($options[ $id ]))
8
+ $options[ $id ] = null;
9
+
10
+
11
+ echo "<input id='$id' class='" . ( empty( $class ) ? 'regular-text' : $class ) . "' name='{$setting_id}[$id]' type='text' value='" . esc_attr( $options[ $id ] ) . "' />";
12
+ echo "<input id='{$id}_upload_image_button' class='button-secondary upload-button' type='button' value='" . __( 'Media Image Library', 'coming-soon' ) . "' /><br>";
13
+
14
+ wp_enqueue_script( 'seed_csp4-upload-js', SEED_CSP4_PLUGIN_URL . 'framework/field-types/js/upload.js', array() );
15
+ wp_enqueue_media();
framework/field-types/wpeditor.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // {$setting_id}[$id] - Contains the setting id, this is what it will be stored in the db as.
3
+ // $class - optional class value
4
+ // $id - setting id
5
+ // $options[$id] value from the db
6
+ if(empty($options[ $id ])){
7
+ $options[ $id ] = '';
8
+ }
9
+ $content = $options[ $id ];
10
+ $editor_id = $id;
11
+ $args = array(
12
+ 'textarea_name' => "{$setting_id}[$id]"
13
+ );
14
+
15
+ wp_editor( $content, $editor_id, $args );
framework/framework.php ADDED
@@ -0,0 +1,525 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * seed_csp4 Admin
4
+ *
5
+ * @package WordPress
6
+ * @subpackage seed_csp4
7
+ * @since 0.1.0
8
+ */
9
+
10
+
11
+ class SEED_CSP4_ADMIN
12
+ {
13
+ public $plugin_version = SEED_CSP4_VERSION;
14
+ public $plugin_name = SEED_CSP4_PLUGIN_NAME;
15
+
16
+ /**
17
+ * Instance of this class.
18
+ *
19
+ * @since 1.0.0
20
+ *
21
+ * @var object
22
+ */
23
+ protected static $instance = null;
24
+
25
+ /**
26
+ * Slug of the plugin screen.
27
+ *
28
+ * @since 1.0.0
29
+ *
30
+ * @var string
31
+ */
32
+ protected $plugin_screen_hook_suffix = null;
33
+
34
+ /**
35
+ * Load Hooks
36
+ */
37
+ function __construct( )
38
+ {
39
+ if ( is_admin() && ( !defined( 'DOING_AJAX' ) || !DOING_AJAX ) ){
40
+ add_action( 'admin_enqueue_scripts', array( &$this, 'admin_enqueue_scripts' ) );
41
+ add_action( 'admin_menu', array( &$this, 'create_menus' ) );
42
+ add_action( 'admin_init', array( &$this, 'reset_defaults' ) );
43
+ add_action( 'admin_init', array( &$this, 'create_settings' ) );
44
+ add_filter( 'plugin_action_links', array( &$this, 'plugin_action_links' ), 10, 2 );
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Return an instance of this class.
50
+ *
51
+ * @since 1.0.0
52
+ *
53
+ * @return object A single instance of this class.
54
+ */
55
+ public static function get_instance() {
56
+
57
+ // If the single instance hasn't been set, set it now.
58
+ if ( null == self::$instance ) {
59
+ self::$instance = new self;
60
+ }
61
+
62
+ return self::$instance;
63
+ }
64
+
65
+ /**
66
+ * Reset the settings page. Reset works per settings id.
67
+ *
68
+ */
69
+ function reset_defaults( )
70
+ {
71
+ if ( isset( $_POST[ 'seed_csp4_reset' ] ) ) {
72
+ $option_page = $_POST[ 'option_page' ];
73
+ check_admin_referer( $option_page . '-options' );
74
+ require_once(SEED_CSP4_PLUGIN_PATH.'inc/default-settings.php');
75
+
76
+ $_POST[ $_POST[ 'option_page' ] ] = $seed_csp4_settings_deafults[$_POST[ 'option_page' ]];
77
+ add_settings_error( 'general', 'seed_csp4-settings-reset', __( "Settings reset." ), 'updated' );
78
+ }
79
+ }
80
+
81
+ /**
82
+ * Properly enqueue styles and scripts for our theme options page.
83
+ *
84
+ * This function is attached to the admin_enqueue_scripts action hook.
85
+ *
86
+ * @since 0.1.0
87
+ * @param string $hook_suffix The name of the current page we are on.
88
+ */
89
+ function admin_enqueue_scripts( $hook_suffix )
90
+ {
91
+ if ( $hook_suffix != $this->plugin_screen_hook_suffix )
92
+ return;
93
+
94
+ wp_enqueue_script( 'media-upload' );
95
+ wp_enqueue_script( 'jquery-ui-sortable' );
96
+ wp_enqueue_script( 'wp-lists' );
97
+ wp_enqueue_script( 'seed_csp4-framework-js', SEED_CSP4_PLUGIN_URL . 'framework/settings-scripts.js', array( 'jquery' ), $this->plugin_version );
98
+ wp_enqueue_script( 'theme-preview' );
99
+ wp_enqueue_style( 'thickbox' );
100
+ wp_enqueue_style( 'media-upload' );
101
+ wp_enqueue_style( 'wp-color-picker' );
102
+ wp_enqueue_style( 'seed_csp4-framework-css', SEED_CSP4_PLUGIN_URL . 'framework/settings-style.css', false, $this->plugin_version );
103
+ wp_enqueue_style( 'font-awesome', '//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css', false, $this->plugin_version );
104
+ }
105
+
106
+ /**
107
+ * Creates WordPress Menu pages from an array in the config file.
108
+ *
109
+ * This function is attached to the admin_menu action hook.
110
+ *
111
+ * @since 0.1.0
112
+ */
113
+ function create_menus( )
114
+ {
115
+ $this->plugin_screen_hook_suffix = add_options_page(
116
+ __( "Coming Soon", 'coming-soon' ),
117
+ __( "Coming Soon", 'coming-soon' ),
118
+ 'manage_options',
119
+ 'seed_csp4',
120
+ array( &$this , 'option_page' )
121
+ );
122
+ }
123
+
124
+ /**
125
+ * Display settings link on plugin page
126
+ */
127
+ function plugin_action_links( $links, $file )
128
+ {
129
+ $plugin_file = SEED_CSP4_SLUG;
130
+
131
+ if ( $file == $plugin_file ) {
132
+ $settings_link = '<a href="options-general.php?page=seed_csp4">Settings</a>';
133
+ array_unshift( $links, $settings_link );
134
+ }
135
+ return $links;
136
+ }
137
+
138
+
139
+ /**
140
+ * Allow Tabs on the Settings Page
141
+ *
142
+ */
143
+ function plugin_options_tabs( )
144
+ {
145
+ $menu_slug = null;
146
+ $page = $_REQUEST[ 'page' ];
147
+ $uses_tabs = false;
148
+ $current_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : false;
149
+
150
+ //Check if this config uses tabs
151
+ foreach ( seed_csp4_get_options() as $v ) {
152
+ if ( $v[ 'type' ] == 'tab' ) {
153
+ $uses_tabs = true;
154
+ break;
155
+ }
156
+ }
157
+
158
+ // If uses tabs then generate the tabs
159
+ if ( $uses_tabs ) {
160
+ echo '<h2 class="nav-tab-wrapper" style="padding-left:20px">';
161
+ $c = 1;
162
+ foreach ( seed_csp4_get_options() as $v ) {
163
+ if ( isset( $v[ 'menu_slug' ] ) ) {
164
+ $menu_slug = $v[ 'menu_slug' ];
165
+ }
166
+ if ( $menu_slug == $page && $v[ 'type' ] == 'tab' ) {
167
+ $active = '';
168
+ if ( $current_tab ) {
169
+ $active = $current_tab == $v[ 'id' ] ? 'nav-tab-active' : '';
170
+ } elseif ( $c == 1 ) {
171
+ $active = 'nav-tab-active';
172
+ }
173
+ echo '<a class="nav-tab ' . $active . '" href="?page=' . $menu_slug . '&tab=' . $v[ 'id' ] . '">' . $v[ 'label' ] . '</a>';
174
+ $c++;
175
+ }
176
+ }
177
+ echo '<a class="nav-tab seed_csp4-preview thickbox-preview" href="'.home_url().'?cs_preview=true&TB_iframe=true&width=640&height=632" title="'.__('&larr; Close Window','coming-soon').'">'.__('Live Preview','coming-soon').'</a>';
178
+ if(defined('SEED_CSP_API_KEY') === false){
179
+ echo '<a class="nav-tab seed_csp4-support" style="color: #8a6d3b;background-color: #fcf8e3;float:right" href="http://www.seedprod.com/features/?utm_source=coming-soon-plugin&utm_medium=banner&utm_campaign=coming-soon-link-in-plugin" target="_blank"><i class="fa fa-star"></i> '.__('Upgrade to the Pro Version','coming-soon').'</a>';
180
+ }
181
+ echo '</h2>';
182
+
183
+ }
184
+ }
185
+
186
+ /**
187
+ * Get the layout for the page. classic|2-col
188
+ *
189
+ */
190
+ function get_page_layout( )
191
+ {
192
+ $layout = 'classic';
193
+ foreach ( seed_csp4_get_options() as $v ) {
194
+ switch ( $v[ 'type' ] ) {
195
+ case 'menu';
196
+ $page = $_REQUEST[ 'page' ];
197
+ if ( $page == $v[ 'menu_slug' ] ) {
198
+ if ( isset( $v[ 'layout' ] ) ) {
199
+ $layout = $v[ 'layout' ];
200
+ }
201
+ }
202
+ break;
203
+ }
204
+ }
205
+ return $layout;
206
+ }
207
+
208
+ /**
209
+ * Render the option pages.
210
+ *
211
+ * @since 0.1.0
212
+ */
213
+ function option_page( )
214
+ {
215
+ $menu_slug = null;
216
+ $page = $_REQUEST[ 'page' ];
217
+ $layout = $this->get_page_layout();
218
+ ?>
219
+ <div class="wrap columns-2 seed-csp4">
220
+ <?php screen_icon(); ?>
221
+ <h2><?php echo $this->plugin_name; ?> <span class="seed_csp4-version"> <?php echo SEED_CSP4_VERSION; ?></span></h2>
222
+ <?php //settings_errors() ?>
223
+ <?php $this->plugin_options_tabs(); ?>
224
+ <?php if ( $layout == '2-col' ): ?>
225
+ <div id="poststuff">
226
+ <div id="post-body" class="metabox-holder columns-1">
227
+ <div id="post-body-content" >
228
+ <?php endif; ?>
229
+ <?php if(!empty($_GET['tab']))
230
+ do_action( 'seed_csp4_render_page', array('tab'=>$_GET['tab']));
231
+ ?>
232
+ <form action="options.php" method="post">
233
+ <p>
234
+ <!-- <input name="submit" type="submit" value="<?php _e( 'Save All Changes', 'coming-soon' ); ?>" class="button-primary"/> -->
235
+ <?php if(!empty($_GET['tab']) && $_GET['tab'] != 'seed_csp4_tab_3') { ?>
236
+ <!-- <input id="reset" name="reset" type="submit" value="<?php _e( 'Reset Settings', 'coming-soon' ); ?>" class="button-secondary"/> -->
237
+ <?php } ?>
238
+ </p>
239
+ <?php
240
+ $show_submit = false;
241
+ foreach ( seed_csp4_get_options() as $v ) {
242
+ if ( isset( $v[ 'menu_slug' ] ) ) {
243
+ $menu_slug = $v[ 'menu_slug' ];
244
+ }
245
+ if ( $menu_slug == $page ) {
246
+ switch ( $v[ 'type' ] ) {
247
+ case 'menu';
248
+ break;
249
+ case 'tab';
250
+ $tab = $v;
251
+ if ( empty( $default_tab ) )
252
+ $default_tab = $v[ 'id' ];
253
+ break;
254
+ case 'setting':
255
+ $current_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : $default_tab;
256
+ if ( $current_tab == $tab[ 'id' ] ) {
257
+ settings_fields( $v[ 'id' ] );
258
+ $show_submit = true;
259
+ }
260
+
261
+ break;
262
+ case 'section':
263
+ $current_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : $default_tab;
264
+ if ( $current_tab == $tab[ 'id' ] or $current_tab === false ) {
265
+ if ( $layout == '2-col' ) {
266
+ echo '<div id="'.$v[ 'id' ].'" class="postbox seedprod-postbox">';
267
+ $this->do_settings_sections( $v[ 'id' ],$show_submit );
268
+ echo '</div>';
269
+ } else {
270
+ do_settings_sections( $v[ 'id' ] );
271
+ }
272
+
273
+ }
274
+ break;
275
+
276
+ }
277
+
278
+ }
279
+ }
280
+ ?>
281
+ <?php if($show_submit): ?>
282
+ <p>
283
+ <!-- <input name="submit" type="submit" value="<?php _e( 'Save All Changes', 'coming-soon' ); ?>" class="button-primary"/> -->
284
+ <!-- <input id="reset" name="reset" type="submit" value="<?php _e( 'Reset Settings', 'coming-soon' ); ?>" class="button-secondary"/> -->
285
+ </p>
286
+ <?php endif; ?>
287
+ </form>
288
+
289
+ <?php if ( $layout == '2-col' ): ?>
290
+ </div> <!-- #post-body-content -->
291
+
292
+
293
+ </div> <!-- #post-body -->
294
+ </div> <!-- #poststuff -->
295
+ <?php endif; ?>
296
+ </div> <!-- .wrap -->
297
+
298
+ <!-- JS login to confirm setting resets. -->
299
+ <script>
300
+ jQuery(document).ready(function($) {
301
+ $('#reset').click(function(e){
302
+ if(!confirm('<?php _e( 'This tabs settings be deleted and reset to the defaults. Are you sure you want to reset?', 'coming-soon' ); ?>')){
303
+ e.preventDefault();
304
+ }
305
+ });
306
+ });
307
+ </script>
308
+ <?php
309
+ }
310
+
311
+ /**
312
+ * Create the settings options, sections and fields via the WordPress Settings API
313
+ *
314
+ * This function is attached to the admin_init action hook.
315
+ *
316
+ * @since 0.1.0
317
+ */
318
+ function create_settings( )
319
+ {
320
+ foreach ( seed_csp4_get_options() as $k => $v ) {
321
+
322
+ switch ( $v[ 'type' ] ) {
323
+ case 'menu':
324
+ $menu_slug = $v[ 'menu_slug' ];
325
+
326
+ break;
327
+ case 'setting':
328
+ if ( empty( $v[ 'validate_function' ] ) ) {
329
+ $v[ 'validate_function' ] = array(
330
+ &$this,
331
+ 'validate_machine'
332
+ );
333
+ }
334
+ register_setting( $v[ 'id' ], $v[ 'id' ], $v[ 'validate_function' ] );
335
+ $setting_id = $v[ 'id' ];
336
+ break;
337
+ case 'section':
338
+ if ( empty( $v[ 'desc_callback' ] ) ) {
339
+ $v[ 'desc_callback' ] = array(
340
+ &$this,
341
+ '__return_empty_string'
342
+ );
343
+ } else {
344
+ $v[ 'desc_callback' ] = $v[ 'desc_callback' ];
345
+ }
346
+ add_settings_section( $v[ 'id' ], $v[ 'label' ], $v[ 'desc_callback' ], $v[ 'id' ] );
347
+ $section_id = $v[ 'id' ];
348
+ break;
349
+ case 'tab':
350
+ break;
351
+ default:
352
+ if ( empty( $v[ 'callback' ] ) ) {
353
+ $v[ 'callback' ] = array(
354
+ &$this,
355
+ 'field_machine'
356
+ );
357
+ }
358
+
359
+ add_settings_field( $v[ 'id' ], $v[ 'label' ], $v[ 'callback' ], $section_id, $section_id, array(
360
+ 'id' => $v[ 'id' ],
361
+ 'desc' => ( isset( $v[ 'desc' ] ) ? $v[ 'desc' ] : '' ),
362
+ 'setting_id' => $setting_id,
363
+ 'class' => ( isset( $v[ 'class' ] ) ? $v[ 'class' ] : '' ),
364
+ 'type' => $v[ 'type' ],
365
+ 'default_value' => ( isset( $v[ 'default_value' ] ) ? $v[ 'default_value' ] : '' ),
366
+ 'option_values' => ( isset( $v[ 'option_values' ] ) ? $v[ 'option_values' ] : '' )
367
+ ) );
368
+
369
+ }
370
+ }
371
+ }
372
+
373
+ /**
374
+ * Create a field based on the field type passed in.
375
+ *
376
+ * @since 0.1.0
377
+ */
378
+ function field_machine( $args )
379
+ {
380
+ extract( $args ); //$id, $desc, $setting_id, $class, $type, $default_value, $option_values
381
+
382
+ // Load defaults
383
+ $defaults = array( );
384
+ foreach ( seed_csp4_get_options() as $k ) {
385
+ switch ( $k[ 'type' ] ) {
386
+ case 'setting':
387
+ case 'section':
388
+ case 'tab':
389
+ break;
390
+ default:
391
+ if ( isset( $k[ 'default_value' ] ) ) {
392
+ $defaults[ $k[ 'id' ] ] = $k[ 'default_value' ];
393
+ }
394
+ }
395
+ }
396
+ $options = get_option( $setting_id );
397
+
398
+ $options = wp_parse_args( $options, $defaults );
399
+
400
+ $path = SEED_CSP4_PLUGIN_PATH . 'framework/field-types/' . $type . '.php';
401
+ if ( file_exists( $path ) ) {
402
+ // Show Field
403
+ include( $path );
404
+ // Show description
405
+ if ( !empty( $desc ) ) {
406
+ echo "<small class='description'>{$desc}</small>";
407
+ }
408
+ }
409
+
410
+ }
411
+
412
+ /**
413
+ * Validates user input before we save it via the Options API. If error add_setting_error
414
+ *
415
+ * @since 0.1.0
416
+ * @param array $input Contains all the values submitted to the POST.
417
+ * @return array $input Contains sanitized values.
418
+ * @todo Figure out best way to validate values.
419
+ */
420
+ function validate_machine( $input )
421
+ {
422
+ $option_page = $_POST['option_page'];
423
+ foreach ( seed_csp4_get_options() as $k ) {
424
+ switch ( $k[ 'type' ] ) {
425
+ case 'menu':
426
+ case 'setting':
427
+ if(isset($k['id']))
428
+ $setting_id = $k['id'];
429
+ case 'section':
430
+ case 'tab';
431
+ break;
432
+ default:
433
+ if ( !empty( $k[ 'validate' ] ) && $setting_id == $option_page ) {
434
+ $validation_rules = explode( ',', $k[ 'validate' ] );
435
+
436
+ foreach ( $validation_rules as $v ) {
437
+ $path = SEED_CSP4_PLUGIN_PATH . 'framework/validations/' . $v . '.php';
438
+ if ( file_exists( $path ) ) {
439
+ // Defaults Values
440
+ $is_valid = true;
441
+ $error_msg = '';
442
+
443
+ // Test Validation
444
+ include( $path );
445
+
446
+ // Is it valid?
447
+ if ( $is_valid === false ) {
448
+ add_settings_error( $k[ 'id' ], 'seedprod_error', $error_msg, 'error' );
449
+ // Unset invalids
450
+ unset( $input[ $k[ 'id' ] ] );
451
+ }
452
+
453
+ }
454
+ } //end foreach
455
+
456
+ }
457
+ }
458
+ }
459
+
460
+ return $input;
461
+ }
462
+
463
+ /**
464
+ * Dummy function to be called by all sections from the Settings API. Define a custom function in the config.
465
+ *
466
+ * @since 0.1.0
467
+ * @return string Empty
468
+ */
469
+ function __return_empty_string( )
470
+ {
471
+ echo '';
472
+ }
473
+
474
+
475
+ /**
476
+ * SeedProd version of WP's do_settings_sections
477
+ *
478
+ * @since 0.1.0
479
+ */
480
+ function do_settings_sections( $page, $show_submit )
481
+ {
482
+ global $wp_settings_sections, $wp_settings_fields;
483
+
484
+ if ( !isset( $wp_settings_sections ) || !isset( $wp_settings_sections[ $page ] ) )
485
+ return;
486
+
487
+ foreach ( (array) $wp_settings_sections[ $page ] as $section ) {
488
+ echo "<h3><span></span>{$section['title']}</h3>\n";
489
+ echo '<div class="inside">';
490
+ call_user_func( $section[ 'callback' ], $section );
491
+ if ( !isset( $wp_settings_fields ) || !isset( $wp_settings_fields[ $page ] ) || !isset( $wp_settings_fields[ $page ][ $section[ 'id' ] ] ) )
492
+ continue;
493
+ echo '<table class="form-table">';
494
+ $this->do_settings_fields( $page, $section[ 'id' ] );
495
+ echo '</table>';
496
+ if($show_submit): ?>
497
+ <p>
498
+ <input name="submit" type="submit" value="<?php _e( 'Save All Changes', 'coming-soon' ); ?>" class="button-primary"/>
499
+ </p>
500
+ <?php endif;
501
+ echo '</div>';
502
+ }
503
+ }
504
+
505
+ function do_settings_fields($page, $section) {
506
+ global $wp_settings_fields;
507
+
508
+ if ( !isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section]) )
509
+ return;
510
+
511
+ foreach ( (array) $wp_settings_fields[$page][$section] as $field ) {
512
+ echo '<tr valign="top">';
513
+ if ( !empty($field['args']['label_for']) )
514
+ echo '<th scope="row"><label for="' . $field['args']['label_for'] . '">' . $field['title'] . '</label></th>';
515
+ else
516
+ echo '<th scope="row"><strong>' . $field['title'] . '</strong><!--<br>'.$field['args']['desc'].'--></th>';
517
+ echo '<td>';
518
+ call_user_func($field['callback'], $field['args']);
519
+ echo '</td>';
520
+ echo '</tr>';
521
+ }
522
+ }
523
+
524
+ }
525
+
framework/get-settings.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ function seed_csp4_get_settings(){
3
+ $s1 = get_option('seed_csp4_settings_content');
4
+ $s2 = get_option('seed_csp4_settings_design');
5
+ $s3 = get_option('seed_csp4_settings_advanced');
6
+
7
+ if(empty($s1))
8
+ $s1 = array();
9
+
10
+ if(empty($s2))
11
+ $s2 = array();
12
+
13
+ if(empty($s3))
14
+ $s3 = array();
15
+
16
+ $settings = $s1 + $s2 + $s3;
17
+
18
+
19
+ return apply_filters( 'seed_csp4_get_settings', $settings );;
20
+ }
framework/settings-scripts.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ // This is place for js you need to execute on the settings page. This file will only load on the menu pages you've define in the config file.
2
+
3
+ jQuery(document).ready(function($){
4
+
5
+ });
6
+
7
+ /*! http://mths.be/placeholder v2.0.7 by @mathias */
8
+ ;(function(f,h,$){var a='placeholder' in h.createElement('input'),d='placeholder' in h.createElement('textarea'),i=$.fn,c=$.valHooks,k,j;if(a&&d){j=i.placeholder=function(){return this};j.input=j.textarea=true}else{j=i.placeholder=function(){var l=this;l.filter((a?'textarea':':input')+'[placeholder]').not('.placeholder').bind({'focus.placeholder':b,'blur.placeholder':e}).data('placeholder-enabled',true).trigger('blur.placeholder');return l};j.input=a;j.textarea=d;k={get:function(m){var l=$(m);return l.data('placeholder-enabled')&&l.hasClass('placeholder')?'':m.value},set:function(m,n){var l=$(m);if(!l.data('placeholder-enabled')){return m.value=n}if(n==''){m.value=n;if(m!=h.activeElement){e.call(m)}}else{if(l.hasClass('placeholder')){b.call(m,true,n)||(m.value=n)}else{m.value=n}}return l}};a||(c.input=k);d||(c.textarea=k);$(function(){$(h).delegate('form','submit.placeholder',function(){var l=$('.placeholder',this).each(b);setTimeout(function(){l.each(e)},10)})});$(f).bind('beforeunload.placeholder',function(){$('.placeholder').each(function(){this.value=''})})}function g(m){var l={},n=/^jQuery\d+$/;$.each(m.attributes,function(p,o){if(o.specified&&!n.test(o.name)){l[o.name]=o.value}});return l}function b(m,n){var l=this,o=$(l);if(l.value==o.attr('placeholder')&&o.hasClass('placeholder')){if(o.data('placeholder-password')){o=o.hide().next().show().attr('id',o.removeAttr('id').data('placeholder-id'));if(m===true){return o[0].value=n}o.focus()}else{l.value='';o.removeClass('placeholder');l==h.activeElement&&l.select()}}}function e(){var q,l=this,p=$(l),m=p,o=this.id;if(l.value==''){if(l.type=='password'){if(!p.data('placeholder-textinput')){try{q=p.clone().attr({type:'text'})}catch(n){q=$('<input>').attr($.extend(g(this),{type:'text'}))}q.removeAttr('name').data({'placeholder-password':true,'placeholder-id':o}).bind('focus.placeholder',b);p.data({'placeholder-textinput':q,'placeholder-id':o}).before(q)}p=p.removeAttr('id').hide().prev().attr('id',o).show()}p.addClass('placeholder');p[0].value=p.attr('placeholder')}else{p.removeClass('placeholder')}}}(this,document,jQuery));
framework/settings-style.css ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /* This is place for css you need to execute on the settings page. This file will only load on the menu pages you've define in the config file. */
2
+ .seed-csp4 .seed_csp4-version{
3
+ font-size:10px;
4
+ }
5
+
6
+ .seed-csp4 .mceLayout{
7
+ background-color:#fff;
8
+ }
9
+
framework/validations/color.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Check to see if a value is a valid hex color
4
+ * Test $input[$k['id']]
5
+ * Set $k['error_msg'] and $is_valid
6
+ * Set $is_valid = true/false
7
+ */
8
+
9
+
10
+ if ( !empty( $input[ $k[ 'id' ] ] ) ) {
11
+ if ( !preg_match( '/^#[a-f0-9]{6}$/i', $input[ $k[ 'id' ] ] ) ) {
12
+ $is_valid = false;
13
+ $error_msg = $k[ 'label' ] . ': ' . __( 'Please enter a valid color value.', 'coming-soon' );
14
+ }
15
+ }
framework/validations/email.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Check to see if an email is valid.
4
+ * Test $input[$k['id']]
5
+ * Set $k['error_msg'] and $is_valid
6
+ */
7
+
8
+ if ( !empty( $input[ $k[ 'id' ] ] ) ) {
9
+ $is_valid = is_email( $input[ $k[ 'id' ] ] );
10
+ $error_msg = $k[ 'label' ] . ': ' . __( 'Please enter a valid email.', 'coming-soon' );
11
+ }
framework/validations/escurlraw.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Check to see if an email is valid.
4
+ * Test $input[$k['id']]
5
+ * Set $k['error_msg'] and $is_valid
6
+ */
7
+
8
+ if ( !empty( $input[ $k[ 'id' ] ] ) ) {
9
+ $input[ $k[ 'id' ] ]= esc_url_raw($input[ $k[ 'id' ] ]);
10
+ $is_valid = true;
11
+ $error_msg = $k[ 'label' ] . ': ' . __( 'Please enter a valid email.', 'coming-soon' );
12
+ }
framework/validations/number.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Check to see if a value is a valid hex color
4
+ * Test $input[$k['id']]
5
+ * Set $k['error_msg'] and $is_valid
6
+ */
7
+
8
+ if ( !empty( $input[ $k[ 'id' ] ] ) ) {
9
+ if ( !is_numeric( $input[ $k[ 'id' ] ] ) ) {
10
+ $is_valid = false;
11
+ $error_msg = $k[ 'label' ] . ': ' . __( 'Please enter a valid number.', 'coming-soon' );
12
+ }
13
+ }
framework/validations/required.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Check to see if a value is required
4
+ * Test $input[$k['id']]
5
+ * Set $k['error_msg'] and $is_valid
6
+ */
7
+
8
+ if ( empty( $input[ $k[ 'id' ] ] ) ) {
9
+ $is_valid = false;
10
+ $error_msg = $k[ 'label' ] . ' ' . __( 'is required.', 'coming-soon' );
11
+ }
inc/adminbar-style.css ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ #wpadminbar .csp4-mode-active > .ab-item{
2
+ color:#fff;
3
+ background-color: #f44;
4
+ }
5
+
6
+ #wpadminbar .csp4-mode-active:hover > .ab-item{
7
+ background-color: #a30 !important;
8
+ }
inc/class-seed-csp4.php ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin class logic goes here
4
+ */
5
+ class SEED_CSP4{
6
+
7
+ /**
8
+ * Instance of this class.
9
+ *
10
+ * @since 1.0.0
11
+ *
12
+ * @var object
13
+ */
14
+ protected static $instance = null;
15
+
16
+ private $comingsoon_rendered = false;
17
+
18
+ function __construct(){
19
+
20
+ extract(seed_csp4_get_settings());
21
+
22
+ // Actions & Filters if the landing page is active or being previewed
23
+ if(((!empty($status) && $status === '1') || (!empty($status) && $status === '2')) || (isset($_GET['cs_preview']) && $_GET['cs_preview'] == 'true')){
24
+ if(function_exists('bp_is_active')){
25
+ add_action( 'template_redirect', array(&$this,'render_comingsoon_page'),9);
26
+ }else{
27
+ add_action( 'template_redirect', array(&$this,'render_comingsoon_page'));
28
+ }
29
+ add_action( 'admin_bar_menu',array( &$this, 'admin_bar_menu' ), 1000 );
30
+ }
31
+
32
+ // Add this script globally so we can view the notification across the admin area
33
+ add_action( 'admin_enqueue_scripts', array(&$this,'add_scripts') );
34
+ }
35
+
36
+ /**
37
+ * Return an instance of this class.
38
+ *
39
+ * @since 1.0.0
40
+ *
41
+ * @return object A single instance of this class.
42
+ */
43
+ public static function get_instance() {
44
+
45
+ // If the single instance hasn't been set, set it now.
46
+ if ( null == self::$instance ) {
47
+ self::$instance = new self;
48
+ }
49
+
50
+ return self::$instance;
51
+ }
52
+
53
+ /**
54
+ * Get pages and put in assoc array
55
+ */
56
+ function get_pages(){
57
+ $pages = get_pages();
58
+ $page_arr = array();
59
+ if(is_array($pages)){
60
+ foreach($pages as $k=>$v){
61
+ $page_arr[$v->ID] = $v->post_title;
62
+ }
63
+ }
64
+ return $page_arr;
65
+ }
66
+
67
+ /**
68
+ * Display admin bar when active
69
+ */
70
+ function admin_bar_menu($str){
71
+ global $seed_csp4_settings,$wp_admin_bar;
72
+ extract($seed_csp4_settings);
73
+
74
+ if(!isset($status)){
75
+ return false;
76
+ }
77
+
78
+ $msg = '';
79
+ if($status == '1'){
80
+ $msg = __('Coming Soon Mode Active','coming-soon');
81
+ }elseif($status == '2'){
82
+ $msg = __('Maintenance Mode Active','coming-soon');
83
+ }
84
+ //Add the main siteadmin menu item
85
+ $wp_admin_bar->add_menu( array(
86
+ 'id' => 'seed-csp4-notice',
87
+ 'href' => admin_url().'options-general.php?page=seed_csp4',
88
+ 'parent' => 'top-secondary',
89
+ 'title' => $msg,
90
+ 'meta' => array( 'class' => 'csp4-mode-active' ),
91
+ ) );
92
+ }
93
+
94
+ /**
95
+ * Display the default template
96
+ */
97
+ function get_default_template(){
98
+ $file = file_get_contents(SEED_CSP4_PLUGIN_PATH.'/themes/default/index.php');
99
+ return $file;
100
+ }
101
+
102
+ /**
103
+ * Load scripts
104
+ */
105
+ function add_scripts($hook) {
106
+ wp_enqueue_style( 'seed-csp4-adminbar-notification', SEED_CSP4_PLUGIN_URL.'inc/adminbar-style.css', false, SEED_CSP4_VERSION, 'screen');
107
+ }
108
+
109
+ /**
110
+ * Get Font Family
111
+ */
112
+ public static function get_font_family($font){
113
+ $fonts = array();
114
+ $fonts['_arial'] = 'Helvetica, Arial, sans-serif';
115
+ $fonts['_arial_black'] = 'Arial Black, Arial Black, Gadget, sans-serif';
116
+ $fonts['_georgia'] = 'Georgia,serif';
117
+ $fonts['_helvetica_neue'] = '"Helvetica Neue", Helvetica, Arial, sans-serif';
118
+ $fonts['_impact'] = 'Charcoal,Impact,sans-serif';
119
+ $fonts['_lucida'] = 'Lucida Grande,Lucida Sans Unicode, sans-serif';
120
+ $fonts['_palatino'] = 'Palatino,Palatino Linotype, Book Antiqua, serif';
121
+ $fonts['_tahoma'] = 'Geneva,Tahoma,sans-serif';
122
+ $fonts['_times'] = 'Times,Times New Roman, serif';
123
+ $fonts['_trebuchet'] = 'Trebuchet MS, sans-serif';
124
+ $fonts['_verdana'] = 'Verdana, Geneva, sans-serif';
125
+
126
+ if(!empty($fonts[$font])){
127
+ $font_family = $fonts[$font];
128
+ }else{
129
+ $font_family = 'Helvetica Neue, Arial, sans-serif';
130
+ }
131
+
132
+ echo $font_family;
133
+ }
134
+
135
+
136
+ /**
137
+ * Display the coming soon page
138
+ */
139
+ function render_comingsoon_page() {
140
+
141
+ extract(seed_csp4_get_settings());
142
+
143
+ if(!isset($status)){
144
+ $err = new WP_Error('error', __("Please enter your settings.", 'coming-soon'));
145
+ echo $err->get_error_message();
146
+ exit();
147
+ }
148
+
149
+
150
+ if(empty($_GET['cs_preview'])){
151
+ $_GET['cs_preview'] = false;
152
+ }
153
+
154
+ // Check if Preview
155
+ $is_preview = false;
156
+ if ((isset($_GET['cs_preview']) && $_GET['cs_preview'] == 'true')) {
157
+ $is_preview = true;
158
+ }
159
+
160
+ // Exit if a custom login page
161
+ if(preg_match("/login/i",$_SERVER['REQUEST_URI']) > 0 && $is_preview == false){
162
+ return false;
163
+ }
164
+
165
+ if(preg_match("/account/i",$_SERVER['REQUEST_URI']) > 0 && $is_preview == false){
166
+ return false;
167
+ }
168
+
169
+ //Exit if wysija double opt-in
170
+ if(preg_match("/wysija/i",$_SERVER['REQUEST_URI']) > 0 && $is_preview == false){
171
+ return false;
172
+ }
173
+
174
+
175
+
176
+ // Finally check if we should show the coming soon page.
177
+ $this->comingsoon_rendered = true;
178
+
179
+ // set headers
180
+ if($status == '2'){
181
+ header('HTTP/1.1 503 Service Temporarily Unavailable');
182
+ header('Status: 503 Service Temporarily Unavailable');
183
+ header('Retry-After: 86400'); // retry in a day
184
+ $csp4_maintenance_file = WP_CONTENT_DIR."/maintenance.php";
185
+ if(!empty($enable_maintenance_php) and file_exists($csp4_maintenance_file)){
186
+ include_once( $csp4_maintenance_file );
187
+ exit();
188
+ }
189
+ }
190
+
191
+ // render template tags
192
+
193
+ $template = $this->get_default_template();
194
+ require_once( SEED_CSP4_PLUGIN_PATH.'/themes/default/functions.php' );
195
+ $template_tags = array(
196
+ '{Title}' => seed_csp4_title(),
197
+ '{MetaDescription}' => seed_csp4_metadescription(),
198
+ '{Privacy}' => seed_csp4_privacy(),
199
+ '{Favicon}' => seed_csp4_favicon(),
200
+ '{CustomCSS}' => seed_csp4_customcss(),
201
+ '{Head}' => seed_csp4_head(),
202
+ '{Footer}' => seed_csp4_footer(),
203
+ '{Logo}' => seed_csp4_logo(),
204
+ '{Headline}' => seed_csp4_headline(),
205
+ '{Description}' => seed_csp4_description(),
206
+ '{Credit}' => seed_csp4_credit(),
207
+ );
208
+ echo strtr($template, $template_tags);
209
+ exit();
210
+
211
+ }
212
+
213
+ }
214
+
215
+
216
+
217
+
inc/config-settings.php ADDED
@@ -0,0 +1,381 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Config
4
+ *
5
+ * @package WordPress
6
+ * @subpackage seed_csp4
7
+ * @since 0.1.0
8
+ */
9
+
10
+ /**
11
+ * Config Settings
12
+ */
13
+ function seed_csp4_get_options(){
14
+
15
+ /**
16
+ * Create new menus
17
+ */
18
+
19
+ $seed_csp4_options[ ] = array(
20
+ "type" => "menu",
21
+ "menu_type" => "add_options_page",
22
+ "page_name" => __( "Coming Soon", 'coming-soon' ),
23
+ "menu_slug" => "seed_csp4",
24
+ "layout" => "2-col"
25
+ );
26
+
27
+ /**
28
+ * Settings Tab
29
+ */
30
+ $seed_csp4_options[ ] = array(
31
+ "type" => "tab",
32
+ "id" => "seed_csp4_setting",
33
+ "label" => __( "Content", 'coming-soon' ),
34
+ );
35
+
36
+ $seed_csp4_options[ ] = array(
37
+ "type" => "setting",
38
+ "id" => "seed_csp4_settings_content",
39
+ );
40
+
41
+ $seed_csp4_options[ ] = array(
42
+ "type" => "section",
43
+ "id" => "seed_csp4_section_general",
44
+ "label" => __( "General", 'coming-soon' ),
45
+ );
46
+
47
+ $seed_csp4_options[ ] = array(
48
+ "type" => "radio",
49
+ "id" => "status",
50
+ "label" => __( "Status", 'coming-soon' ),
51
+ "option_values" => array(
52
+ '0' => __( 'Disabled', 'coming-soon' ),
53
+ '1' => __( 'Enable Coming Soon Mode', 'coming-soon' ),
54
+ '2' => __( 'Enable Maintenance Mode', 'coming-soon' )
55
+ ),
56
+ "desc" => __( "When you are logged in you'll see your normal website. Logged out visitors will see the Coming Soon or Maintenance page. Coming Soon Mode will be available to search engines if your site is not private. Maintenance Mode will notify search engines that the site is unavailable.", 'coming-soon' ),
57
+ "default_value" => "0"
58
+ );
59
+
60
+
61
+ $csp4_maintenance_file = WP_CONTENT_DIR."/maintenance.php";
62
+ if (file_exists($csp4_maintenance_file)) {
63
+ $seed_csp4_options[ ] = array(
64
+ "type" => "checkbox",
65
+ "id" => "enable_maintenance_php",
66
+ "label" => __( "Use maintenance.php", 'coming-soon' ),
67
+ "desc" => __('maintenance.php detected, would you like to use this for your maintenance page?', 'coming-soon'),
68
+ "option_values" => array(
69
+ 'name' => __( 'Yes', 'coming-soon' ),
70
+ //'required' => __( 'Make Name Required', 'coming-soon' ),
71
+ )
72
+ );
73
+ }
74
+
75
+ // Page Setttings
76
+ $seed_csp4_options[ ] = array(
77
+ "type" => "section",
78
+ "id" => "seed_csp4_section_page_settings",
79
+ "label" => __( "Page Settings", 'coming-soon' )
80
+ );
81
+
82
+ $seed_csp4_options[ ] = array(
83
+ "type" => "upload",
84
+ "id" => "logo",
85
+ "label" => __( "Logo", 'coming-soon' ),
86
+ "desc" => __('Upload a logo or teaser image (or) enter the url to your image.', 'coming-soon'),
87
+ );
88
+
89
+ $seed_csp4_options[ ] = array(
90
+ "type" => "textbox",
91
+ "id" => "headline",
92
+ "class" => "large-text",
93
+ "label" => __( "Headline", 'coming-soon' ),
94
+ "desc" => __( "Enter a headline for your page.", 'coming-soon' ),
95
+ );
96
+
97
+ $seed_csp4_options[ ] = array(
98
+ "type" => "wpeditor",
99
+ "id" => "description",
100
+ "label" => __( "Message", 'coming-soon' ),
101
+ "desc" => __( "Tell the visitor what to expect from your site.", 'coming-soon' ),
102
+ "class" => "large-text"
103
+ );
104
+
105
+ $seed_csp4_options[ ] = array( "type" => "radio",
106
+ "id" => "footer_credit",
107
+ "label" => __("Powered By SeedProd", 'ultimate-coming-soon-page'),
108
+ "option_values" => array('0'=>__('Nope - Got No Love', 'coming-soon'),'1'=>__('Yep - I Love You Man', 'coming-soon')),
109
+ "desc" => __("Can we show a <strong>cool stylish</strong> footer credit at the bottom the page.", 'coming-soon'),
110
+ "default_value" => "0",
111
+ );
112
+
113
+
114
+ // Header
115
+ $seed_csp4_options[ ] = array(
116
+ "type" => "section",
117
+ "id" => "seed_csp4_section_header",
118
+ "label" => __( "Header", 'coming-soon' )
119
+ );
120
+
121
+ $seed_csp4_options[ ] = array(
122
+ "type" => "upload",
123
+ "id" => "favicon",
124
+ "label" => __( "Favicon", 'coming-soon' ),
125
+ "desc" => __('Favicons are displayed in a browser tab. Need Help <a href="http://tools.dynamicdrive.com/favicon/" target="_blank">creating a favicon</a>?', 'coming-soon'),
126
+ );
127
+
128
+ $seed_csp4_options[ ] = array(
129
+ "type" => "textbox",
130
+ "id" => "seo_title",
131
+ "label" => __( "SEO Title", 'coming-soon' ),
132
+ );
133
+
134
+ $seed_csp4_options[ ] = array(
135
+ "type" => "textarea",
136
+ "id" => "seo_description",
137
+ "label" => __( "SEO Meta Description", 'coming-soon' ),
138
+ "class" => "large-text"
139
+ );
140
+
141
+
142
+ $seed_csp4_options[ ] = array(
143
+ "type" => "textarea",
144
+ "id" => "ga_analytics",
145
+ "class" => "large-text",
146
+ "label" => __( "Analytics Code", 'coming-soon' ),
147
+ "desc" => __('Paste in your Universal or Classic <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a> code.', 'coming-soon'),
148
+ );
149
+
150
+
151
+ /**
152
+ * Design Tab
153
+ */
154
+ $seed_csp4_options[ ] = array(
155
+ "type" => "tab",
156
+ "id" => "seed_csp4_design",
157
+ "label" => __( "Design", 'coming-soon' )
158
+ );
159
+
160
+ $seed_csp4_options[ ] = array(
161
+ "type" => "setting",
162
+ "id" => "seed_csp4_settings_design"
163
+ );
164
+
165
+
166
+ // Background
167
+ $seed_csp4_options[ ] = array(
168
+ "type" => "section",
169
+ "id" => "seed_csp4_section_background",
170
+ "label" => __( "Background", 'coming-soon' )
171
+ );
172
+
173
+
174
+ $seed_csp4_options[ ] = array(
175
+ "type" => "color",
176
+ "id" => "bg_color",
177
+ "label" => __( "Background Color", 'coming-soon' ),
178
+ "default_value" => "#fafafa",
179
+ "validate" => 'color',
180
+ "desc" => __( "Choose between having a solid color background or uploading an image. By default images will cover the entire background.", 'coming-soon' )
181
+ );
182
+
183
+
184
+ $seed_csp4_options[ ] = array(
185
+ "type" => "upload",
186
+ "id" => "bg_image",
187
+ "label" => __( "Background Image", 'coming-soon' ),
188
+ );
189
+
190
+ $seed_csp4_options[ ] = array(
191
+ "type" => "checkbox",
192
+ "id" => "bg_cover",
193
+ "label" => __( "Responsive Background", 'coming-soon' ),
194
+ "desc" => __("Scale the background image to be as large as possible so that the background area is completely covered by the background image. Some parts of the background image may not be in view within the background positioning area.", 'coming-soon'),
195
+ "option_values" => array(
196
+ '1' => __( 'Yes', 'coming-soon' ),
197
+ ),
198
+ "default" => "1",
199
+ );
200
+
201
+ $seed_csp4_options[ ] = array(
202
+ "type" => "select",
203
+ "id" => "bg_repeat",
204
+ "desc" => __('This setting is not applied if Responsive Background is checked', 'coming-soon' ),
205
+ "label" => __( "Background Repeat", 'coming-soon' ),
206
+ "option_values" => array(
207
+ 'no-repeat' => __( 'No-Repeat', 'coming-soon' ),
208
+ 'repeat' => __( 'Tile', 'coming-soon' ),
209
+ 'repeat-x' => __( 'Tile Horizontally', 'coming-soon' ),
210
+ 'repeat-y' => __( 'Tile Vertically', 'coming-soon' ),
211
+ )
212
+ );
213
+
214
+
215
+ $seed_csp4_options[ ] = array(
216
+ "type" => "select",
217
+ "id" => "bg_position",
218
+ "desc" => __('This setting is not applied if Responsive Background is checked', 'coming-soon' ),
219
+ "label" => __( "Background Position", 'coming-soon' ),
220
+ "option_values" => array(
221
+ 'left top' => __( 'Left Top', 'coming-soon' ),
222
+ 'left center' => __( 'Left Center', 'coming-soon' ),
223
+ 'left bottom' => __( 'Left Bottom', 'coming-soon' ),
224
+ 'right top' => __( 'Right Top', 'coming-soon' ),
225
+ 'right center' => __( 'Right Center', 'coming-soon' ),
226
+ 'right bottom' => __( 'Right Bottom', 'coming-soon' ),
227
+ 'center top' => __( 'Center Top', 'coming-soon' ),
228
+ 'center center' => __( 'Center Center', 'coming-soon' ),
229
+ 'center bottom' => __( 'Center Bottom', 'coming-soon' ),
230
+ )
231
+ );
232
+
233
+ $seed_csp4_options[ ] = array(
234
+ "type" => "select",
235
+ "id" => "bg_attahcment",
236
+ "desc" => __('This setting is not applied if Responsive Background is checked', 'coming-soon' ),
237
+ "label" => __( "Background Attachment", 'coming-soon' ),
238
+ "option_values" => array(
239
+ 'fixed' => __( 'Fixed', 'coming-soon' ),
240
+ 'scroll' => __( 'Scroll', 'coming-soon' ),
241
+ )
242
+ );
243
+
244
+ // Background
245
+ $seed_csp4_options[ ] = array(
246
+ "type" => "section",
247
+ "id" => "seed_csp4_section_well",
248
+ "label" => __( "Content", 'coming-soon' )
249
+ );
250
+
251
+ $seed_csp4_options[ ] = array(
252
+ "type" => "textbox",
253
+ "id" => "max_width",
254
+ "class" => "text-small",
255
+ "label" => __( "Max Width", 'coming-soon' ),
256
+ "desc" => __("By default the max width of the content is set to 600px. Enter a number value if you need it bigger. Example: 900", 'coming-soon'), );
257
+
258
+ $seed_csp4_options[ ] = array(
259
+ "type" => "checkbox",
260
+ "id" => "enable_well",
261
+ "label" => __( "Enable Well", 'coming-soon' ),
262
+ "desc" => __("This will wrap your content in a box.", 'coming-soon'),
263
+ "option_values" => array(
264
+ '1' => __( 'Yes', 'coming-soon' ),
265
+ ),
266
+ );
267
+
268
+
269
+
270
+ // Text
271
+ $seed_csp4_options[ ] = array(
272
+ "type" => "section",
273
+ "id" => "seed_csp4_section_text",
274
+ "label" => __( "Text", 'coming-soon' )
275
+ );
276
+
277
+ $seed_csp4_options[ ] = array(
278
+ "type" => "color",
279
+ "id" => "text_color",
280
+ "label" => __( "Text Color", 'coming-soon' ),
281
+ "default_value" => "#666666",
282
+ "validate" => 'required,color',
283
+ );
284
+
285
+ $seed_csp4_options[ ] = array(
286
+ "type" => "color",
287
+ "id" => "link_color",
288
+ "label" => __( "Link Color", 'coming-soon' ),
289
+ "default_value" => "#27AE60",
290
+ "validate" => 'required,color',
291
+ );
292
+
293
+ $seed_csp4_options[ ] = array(
294
+ "type" => "color",
295
+ "id" => "headline_color",
296
+ "label" => __( "Headline Color", 'coming-soon' ),
297
+ "validate" => 'color',
298
+ "default_value" => "#444444",
299
+ "desc" => __('If no Headline Color is chosen then the Link Color will be used. ','coming-soon'),
300
+ );
301
+
302
+
303
+
304
+ $seed_csp4_options[ ] = array(
305
+ "type" => "select",
306
+ "id" => "text_font",
307
+ "label" => __( "Text Font", 'coming-soon' ),
308
+ "option_values" => apply_filters('seed_csp4_fonts',array(
309
+ '_arial' => 'Arial',
310
+ '_arial_black' =>'Arial Black',
311
+ '_georgia' => 'Georgia',
312
+ '_helvetica_neue' => 'Helvetica Neue',
313
+ '_impact' => 'Impact',
314
+ '_lucida' => 'Lucida Grande',
315
+ '_palatino' => 'Palatino',
316
+ '_tahoma' => 'Tahoma',
317
+ '_times' => 'Times New Roman',
318
+ '_trebuchet' => 'Trebuchet',
319
+ '_verdana' => 'Verdana',
320
+ )),
321
+ );
322
+
323
+
324
+ // Template
325
+ $seed_csp4_options[ ] = array(
326
+ "type" => "section",
327
+ "id" => "seed_csp4_section_template",
328
+ "label" => __( "Template", 'coming-soon' )
329
+ );
330
+
331
+
332
+ $seed_csp4_options[ ] = array(
333
+ "type" => "textarea",
334
+ "id" => "custom_css",
335
+ "class" => "large-text",
336
+ "label" => __( "Custom CSS", 'coming-soon' ),
337
+ "desc" => __('Need to tweaks the styles? Add your custom CSS here.','coming-soon'),
338
+ );
339
+
340
+ /**
341
+ * Advanced Tab
342
+ */
343
+ $seed_csp4_options[ ] = array(
344
+ "type" => "tab",
345
+ "id" => "seed_csp4_advanced",
346
+ "label" => __( "Advanced", 'coming-soon' )
347
+ );
348
+
349
+ $seed_csp4_options[ ] = array(
350
+ "type" => "setting",
351
+ "id" => "seed_csp4_settings_advanced"
352
+ );
353
+
354
+
355
+ // Scripts
356
+ $seed_csp4_options[ ] = array(
357
+ "type" => "section",
358
+ "id" => "seed_csp4_section_scripts",
359
+ "label" => __( "Scripts", 'coming-soon' )
360
+ );
361
+
362
+ $seed_csp4_options[ ] = array(
363
+ "type" => "textarea",
364
+ "id" => "header_scripts",
365
+ "label" => __( "Header Scripts", 'coming-soon' ),
366
+ "desc" => __('Enter any custom scripts. You can enter Javascript or CSS. This will be rendered before the closing head tag.', 'coming-soon'),
367
+ "class" => "large-text"
368
+ );
369
+
370
+ $seed_csp4_options[ ] = array(
371
+ "type" => "textarea",
372
+ "id" => "footer_scripts",
373
+ "label" => __( "Footer Scripts", 'coming-soon' ),
374
+ "desc" => __('Enter any custom scripts. This will be rendered before the closing body tag.', 'coming-soon'),
375
+ "class" => "large-text"
376
+ );
377
+
378
+
379
+ return $seed_csp4_options;
380
+
381
+ }
inc/default-settings.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ $seed_csp4_settings_deafults = array (
3
+ 'seed_csp4_settings_content' => 'a:9:{s:6:"status";s:1:"0";s:4:"logo";s:0:"";s:8:"headline";s:0:"";s:11:"description";s:0:"";s:13:"footer_credit";s:1:"0";s:7:"favicon";s:0:"";s:9:"seo_title";s:0:"";s:15:"seo_description";s:0:"";s:12:"ga_analytics";s:0:"";}',
4
+ 'seed_csp4_settings_design' => 'a:12:{s:8:"bg_color";s:7:"#fafafa";s:8:"bg_image";s:0:"";s:8:"bg_cover";a:1:{i:0;s:1:"1";}s:9:"bg_repeat";s:9:"no-repeat";s:11:"bg_position";s:8:"left top";s:13:"bg_attahcment";s:5:"fixed";s:9:"max_width";s:0:"";s:10:"text_color";s:7:"#666666";s:10:"link_color";s:7:"#27AE60";s:14:"headline_color";s:7:"#444444";s:9:"text_font";s:6:"_arial";s:10:"custom_css";s:0:"";}',
5
+ 'seed_csp4_settings_advanced' => 'a:2:{s:14:"header_scripts";s:0:"";s:14:"footer_scripts";s:0:"";}',
6
+ );
languages/seedprod.pot ADDED
@@ -0,0 +1,1643 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Coming Soon Pro by SeedProd\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2013-11-24 17:31-0500\n"
6
+ "PO-Revision-Date: 2013-11-24 17:31-0500\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Poedit-KeywordsList: __\n"
13
+ "X-Poedit-Basepath: ../\n"
14
+ "X-Generator: Poedit 1.5.7\n"
15
+ "X-Poedit-SearchPath-0: .\n"
16
+
17
+ #: seedprod-coming-soon-pro.php:34 inc/config.php:29
18
+ msgid "Coming Soon Pro"
19
+ msgstr ""
20
+
21
+ #: seedprod-coming-soon-pro.php:59
22
+ #, php-format
23
+ msgid ""
24
+ "WordPress %s and higher required. The plugin has now disabled itself. On a "
25
+ "side note why are you running an old version :( Upgrade!"
26
+ msgstr ""
27
+
28
+ #: framework/framework.php:72
29
+ msgid "Settings reset."
30
+ msgstr ""
31
+
32
+ #: framework/framework.php:226
33
+ msgid "&larr; Close Window"
34
+ msgstr ""
35
+
36
+ #: framework/framework.php:226
37
+ msgid "Live Preview"
38
+ msgstr ""
39
+
40
+ #: framework/framework.php:228
41
+ msgid "Support"
42
+ msgstr ""
43
+
44
+ #: framework/field-types/customaweberauth.php:11
45
+ msgid "Save"
46
+ msgstr ""
47
+
48
+ #: framework/field-types/customaweberlists.php:25
49
+ #: framework/field-types/customcampaignmonitorclients.php:25
50
+ #: framework/field-types/customcampaignmonitorlists.php:26
51
+ #: framework/field-types/customconstantcontactlist.php:26
52
+ #: framework/field-types/customgetresponse.php:25
53
+ #: framework/field-types/customicontact.php:25
54
+ #: framework/field-types/custommadmini.php:25
55
+ #: framework/field-types/custommailchimplist.php:25
56
+ msgid "Refresh List"
57
+ msgstr ""
58
+
59
+ #: framework/field-types/customcontainereffects.php:21
60
+ msgid "Width"
61
+ msgstr ""
62
+
63
+ #: framework/field-types/customcontainereffects.php:33
64
+ msgid "Color"
65
+ msgstr ""
66
+
67
+ #: framework/field-types/customcontainereffects.php:44
68
+ msgid "Radius"
69
+ msgstr ""
70
+
71
+ #: framework/field-types/customcountdown.php:8
72
+ #: framework/field-types/date.php:8 framework/field-types/daterange.php:8
73
+ msgid "01-Jan"
74
+ msgstr ""
75
+
76
+ #: framework/field-types/customcountdown.php:9
77
+ #: framework/field-types/date.php:9 framework/field-types/daterange.php:9
78
+ msgid "02-Feb"
79
+ msgstr ""
80
+
81
+ #: framework/field-types/customcountdown.php:10
82
+ #: framework/field-types/date.php:10 framework/field-types/daterange.php:10
83
+ msgid "03-Mar"
84
+ msgstr ""
85
+
86
+ #: framework/field-types/customcountdown.php:11
87
+ #: framework/field-types/date.php:11 framework/field-types/daterange.php:11
88
+ msgid "04-Apr"
89
+ msgstr ""
90
+
91
+ #: framework/field-types/customcountdown.php:12
92
+ #: framework/field-types/date.php:12 framework/field-types/daterange.php:12
93
+ msgid "05-May"
94
+ msgstr ""
95
+
96
+ #: framework/field-types/customcountdown.php:13
97
+ #: framework/field-types/date.php:13 framework/field-types/daterange.php:13
98
+ msgid "06-Jun"
99
+ msgstr ""
100
+
101
+ #: framework/field-types/customcountdown.php:14
102
+ #: framework/field-types/date.php:14 framework/field-types/daterange.php:14
103
+ msgid "07-Jul"
104
+ msgstr ""
105
+
106
+ #: framework/field-types/customcountdown.php:15
107
+ #: framework/field-types/date.php:15 framework/field-types/daterange.php:15
108
+ msgid "08-Aug"
109
+ msgstr ""
110
+
111
+ #: framework/field-types/customcountdown.php:16
112
+ #: framework/field-types/date.php:16 framework/field-types/daterange.php:16
113
+ msgid "09-Sep"
114
+ msgstr ""
115
+
116
+ #: framework/field-types/customcountdown.php:17
117
+ #: framework/field-types/date.php:17 framework/field-types/daterange.php:17
118
+ msgid "10-Oct"
119
+ msgstr ""
120
+
121
+ #: framework/field-types/customcountdown.php:18
122
+ #: framework/field-types/date.php:18 framework/field-types/daterange.php:18
123
+ msgid "11-Nov"
124
+ msgstr ""
125
+
126
+ #: framework/field-types/customcountdown.php:19
127
+ #: framework/field-types/date.php:19 framework/field-types/daterange.php:19
128
+ msgid "12-Dec"
129
+ msgstr ""
130
+
131
+ #: framework/field-types/customcountdown.php:32
132
+ #: framework/field-types/date.php:29 framework/field-types/daterange.php:29
133
+ #: framework/field-types/daterange.php:42
134
+ msgid "day"
135
+ msgstr ""
136
+
137
+ #: framework/field-types/customcountdown.php:35
138
+ #: framework/field-types/date.php:32 framework/field-types/daterange.php:32
139
+ #: framework/field-types/daterange.php:45
140
+ msgid "year"
141
+ msgstr ""
142
+
143
+ #: framework/field-types/customcountdown.php:38
144
+ msgid "hh"
145
+ msgstr ""
146
+
147
+ #: framework/field-types/customcountdown.php:39
148
+ msgid "mm"
149
+ msgstr ""
150
+
151
+ #: framework/field-types/customlicensekey.php:16
152
+ msgid "Check License"
153
+ msgstr ""
154
+
155
+ #: framework/field-types/customsharebuttons.php:14
156
+ msgid "Optional Tweet Text"
157
+ msgstr ""
158
+
159
+ #: framework/field-types/customsharebuttons.php:18
160
+ msgid "Image for Facebook Like. Optimal Size: 200px x 200px"
161
+ msgstr ""
162
+
163
+ #: framework/field-types/customsharebuttons.php:19
164
+ #: framework/field-types/customsharebuttons.php:30
165
+ #: framework/field-types/upload.php:8
166
+ msgid "Media Image Library"
167
+ msgstr ""
168
+
169
+ #: framework/field-types/customsharebuttons.php:29
170
+ msgid "Image for Pinterest"
171
+ msgstr ""
172
+
173
+ #: framework/validations/color.php:13
174
+ msgid "Please enter a valid color value."
175
+ msgstr ""
176
+
177
+ #: framework/validations/email.php:10 framework/validations/escurlraw.php:11
178
+ #: inc/config.php:885
179
+ msgid "Please enter a valid email."
180
+ msgstr ""
181
+
182
+ #: framework/validations/number.php:11
183
+ msgid "Please enter a valid number."
184
+ msgstr ""
185
+
186
+ #: framework/validations/required.php:10
187
+ msgid "is required."
188
+ msgstr ""
189
+
190
+ #: inc/class-plugin.php:212
191
+ msgid "Super Admin"
192
+ msgstr ""
193
+
194
+ #: inc/class-plugin.php:225
195
+ msgid "Coming Soon Mode Active"
196
+ msgstr ""
197
+
198
+ #: inc/class-plugin.php:227
199
+ msgid "Maintenance Mode Active"
200
+ msgstr ""
201
+
202
+ #: inc/class-plugin.php:254
203
+ msgid "Are you sure you want to DELETE all subscribers?"
204
+ msgstr ""
205
+
206
+ #: inc/class-plugin.php:255
207
+ msgid ""
208
+ "Are you sure you want to IMPORT these settings? Current settings will be "
209
+ "erased!"
210
+ msgstr ""
211
+
212
+ #: inc/class-plugin.php:413 inc/class-plugin.php:469 inc/class-plugin.php:519
213
+ #: inc/class-plugin.php:561
214
+ msgid "No lists Found"
215
+ msgstr ""
216
+
217
+ #: inc/class-plugin.php:417
218
+ msgid "Unable to load MailChimp lists, check your API Key."
219
+ msgstr ""
220
+
221
+ #: inc/class-plugin.php:513
222
+ msgid "Unable to authenticate"
223
+ msgstr ""
224
+
225
+ #: inc/class-plugin.php:616
226
+ msgid "Unable to load Constant Contact lists"
227
+ msgstr ""
228
+
229
+ #: inc/class-plugin.php:669
230
+ msgid "Unable to load Campaign Monitor lists"
231
+ msgstr ""
232
+
233
+ #: inc/class-plugin.php:717
234
+ msgid "Unable to load Campaign Monitor clients"
235
+ msgstr ""
236
+
237
+ #: inc/class-plugin.php:775
238
+ msgid "Unable to load Aweber lists"
239
+ msgstr ""
240
+
241
+ #: inc/class-plugin.php:903
242
+ msgid "New Email Subscriber"
243
+ msgstr ""
244
+
245
+ #: inc/class-plugin.php:1650
246
+ msgid "Do not display an Email SignUp"
247
+ msgstr ""
248
+
249
+ #: inc/class-plugin.php:1651
250
+ msgid "Database"
251
+ msgstr ""
252
+
253
+ #: inc/class-plugin.php:1652
254
+ msgid "FeedBurner"
255
+ msgstr ""
256
+
257
+ #: inc/class-plugin.php:1739
258
+ msgid "All subscribers deleted."
259
+ msgstr ""
260
+
261
+ #: inc/class-plugin.php:1746
262
+ msgid "Selected subscribers deleted."
263
+ msgstr ""
264
+
265
+ #: inc/class-plugin.php:1869
266
+ msgid "Subscribed on: "
267
+ msgstr ""
268
+
269
+ #: inc/class-plugin.php:1923 inc/config.php:1518
270
+ msgid "Subscribers"
271
+ msgstr ""
272
+
273
+ #: inc/class-plugin.php:1924
274
+ msgid "Clicks"
275
+ msgstr ""
276
+
277
+ #: inc/class-plugin.php:1925
278
+ msgid "# People Signed Up"
279
+ msgstr ""
280
+
281
+ #: inc/class-plugin.php:1926
282
+ msgid "Conversion Rate"
283
+ msgstr ""
284
+
285
+ #: inc/class-plugin.php:1927
286
+ msgid "Created"
287
+ msgstr ""
288
+
289
+ #: inc/class-plugin.php:1963
290
+ msgid "Export All"
291
+ msgstr ""
292
+
293
+ #: inc/class-plugin.php:1964
294
+ msgid "Delete All"
295
+ msgstr ""
296
+
297
+ #: inc/class-plugin.php:1965
298
+ msgid "Delete Selected"
299
+ msgstr ""
300
+
301
+ #: inc/config.php:40
302
+ msgid "Settings"
303
+ msgstr ""
304
+
305
+ #: inc/config.php:51
306
+ msgid "General"
307
+ msgstr ""
308
+
309
+ #: inc/config.php:57
310
+ msgid "Status"
311
+ msgstr ""
312
+
313
+ #: inc/config.php:59
314
+ msgid "Disabled"
315
+ msgstr ""
316
+
317
+ #: inc/config.php:60
318
+ msgid "Enable Coming Soon Mode"
319
+ msgstr ""
320
+
321
+ #: inc/config.php:61
322
+ msgid "Enable Maintenance Mode"
323
+ msgstr ""
324
+
325
+ #: inc/config.php:63
326
+ msgid ""
327
+ "When you are logged in you'll see your normal website. Logged out visitors "
328
+ "will see the Coming Soon or Maintenance page. Coming Soon Mode will be "
329
+ "available to search engines if your site is not private. Maintenance Mode "
330
+ "will notify search engines that the site is unavailable."
331
+ msgstr ""
332
+
333
+ #: inc/config.php:73
334
+ msgid "Use maintenance.php"
335
+ msgstr ""
336
+
337
+ #: inc/config.php:74
338
+ msgid ""
339
+ "maintenance.php detected, would you like to use this for your maintenance "
340
+ "page?"
341
+ msgstr ""
342
+
343
+ #: inc/config.php:76 inc/config.php:189 inc/config.php:451 inc/config.php:519
344
+ #: inc/config.php:529 inc/config.php:539 inc/config.php:556 inc/config.php:598
345
+ #: inc/config.php:615 inc/config.php:661 inc/config.php:686 inc/config.php:902
346
+ #: inc/config.php:973 inc/config.php:1037 inc/config.php:1048
347
+ #: inc/config.php:1091 inc/config.php:1236 inc/config.php:1431
348
+ #: inc/config.php:1442 inc/config.php:1454 inc/config.php:1488
349
+ msgid "Yes"
350
+ msgstr ""
351
+
352
+ #: inc/config.php:87
353
+ msgid "License Key"
354
+ msgstr ""
355
+
356
+ #: inc/config.php:88
357
+ msgid ""
358
+ "Enter your <a href='http://www.seedprod.com/members' target='_blank'>License "
359
+ "Key</a> to receive automatic plugin updates."
360
+ msgstr ""
361
+
362
+ #: inc/config.php:97
363
+ msgid "Page Settings"
364
+ msgstr ""
365
+
366
+ #: inc/config.php:103
367
+ msgid "Logo"
368
+ msgstr ""
369
+
370
+ #: inc/config.php:104
371
+ msgid "Upload a logo or teaser image (or) enter the url to your image."
372
+ msgstr ""
373
+
374
+ #: inc/config.php:111
375
+ msgid "Headline"
376
+ msgstr ""
377
+
378
+ #: inc/config.php:112
379
+ msgid ""
380
+ "Enter a headline for your page. Replace the default headline if it exists."
381
+ msgstr ""
382
+
383
+ #: inc/config.php:118
384
+ msgid "Description"
385
+ msgstr ""
386
+
387
+ #: inc/config.php:119
388
+ msgid ""
389
+ "Tell the visitor what to expect from your site. Also supports WordPress "
390
+ "shortcodes and <a href='http://codex.wordpress.org/Embeds' "
391
+ "target='_target'>video embeds</a>."
392
+ msgstr ""
393
+
394
+ #: inc/config.php:135
395
+ msgid "Form Settings"
396
+ msgstr ""
397
+
398
+ #: inc/config.php:141
399
+ msgid "Save subscribers to:"
400
+ msgstr ""
401
+
402
+ #: inc/config.php:149
403
+ msgid "Name Field"
404
+ msgstr ""
405
+
406
+ #: inc/config.php:150
407
+ msgid "Ask for the visitors name."
408
+ msgstr ""
409
+
410
+ #: inc/config.php:152
411
+ msgid "Display Name Field"
412
+ msgstr ""
413
+
414
+ #: inc/config.php:180
415
+ msgid "Database Settings"
416
+ msgstr ""
417
+
418
+ #: inc/config.php:186
419
+ msgid "Enable New Subscriber Notifications"
420
+ msgstr ""
421
+
422
+ #: inc/config.php:187
423
+ msgid "Get an email notification when some subscribes."
424
+ msgstr ""
425
+
426
+ #: inc/config.php:196
427
+ msgid "Send Notifications to this Email"
428
+ msgstr ""
429
+
430
+ #: inc/config.php:197
431
+ msgid ""
432
+ "Separate multiple emails with a comma. If no email is defined, notifications "
433
+ "while be sent to the admin email."
434
+ msgstr ""
435
+
436
+ #: inc/config.php:204
437
+ msgid "FeedBurner Settings"
438
+ msgstr ""
439
+
440
+ #: inc/config.php:210
441
+ msgid "Address"
442
+ msgstr ""
443
+
444
+ #: inc/config.php:211
445
+ msgid "Enter your FeedBurner address."
446
+ msgstr ""
447
+
448
+ #: inc/config.php:217
449
+ msgid "Local"
450
+ msgstr ""
451
+
452
+ #: inc/config.php:220
453
+ msgid ""
454
+ "The language the FeedBurner form is displayed in. The default is English. <a "
455
+ "href=\"http://support.google.com/feedburner/bin/answer.py?"
456
+ "hl=en&answer=81423\">Learn more</a>."
457
+ msgstr ""
458
+
459
+ #: inc/config.php:227
460
+ msgid "Aweber Settings"
461
+ msgstr ""
462
+
463
+ #: inc/config.php:234
464
+ msgid ""
465
+ "<a href=\"https://auth.aweber.com/1.0/oauth/authorize_app/a662998e\" target="
466
+ "\"_blank\">Authorize App</a> &larr; Click the link to get you Authorization "
467
+ "Code."
468
+ msgstr ""
469
+
470
+ #: inc/config.php:240
471
+ msgid "Authorization Code"
472
+ msgstr ""
473
+
474
+ #: inc/config.php:241
475
+ msgid ""
476
+ "Paste in the Authorization Code you received when authorizing the app and "
477
+ "click <strong>Save</strong>."
478
+ msgstr ""
479
+
480
+ #: inc/config.php:247 inc/config.php:275 inc/config.php:304 inc/config.php:426
481
+ #: inc/config.php:465 inc/config.php:509
482
+ msgid "List"
483
+ msgstr ""
484
+
485
+ #: inc/config.php:255
486
+ msgid "Campaign Monitor Settings"
487
+ msgstr ""
488
+
489
+ #: inc/config.php:261 inc/config.php:318 inc/config.php:347 inc/config.php:375
490
+ #: inc/config.php:502
491
+ msgid "API Key"
492
+ msgstr ""
493
+
494
+ #: inc/config.php:262
495
+ msgid ""
496
+ "Get your <a target=\"_blank\" href=\"http://help.campaignmonitor.com/topic."
497
+ "aspx?t=206\">API key</a>"
498
+ msgstr ""
499
+
500
+ #: inc/config.php:268
501
+ msgid "Client"
502
+ msgstr ""
503
+
504
+ #: inc/config.php:284
505
+ msgid "Constant Contact Settings"
506
+ msgstr ""
507
+
508
+ #: inc/config.php:290 inc/config.php:412
509
+ msgid "Username"
510
+ msgstr ""
511
+
512
+ #: inc/config.php:291
513
+ msgid "Enter your Constant Contact username."
514
+ msgstr ""
515
+
516
+ #: inc/config.php:297
517
+ msgid "Password"
518
+ msgstr ""
519
+
520
+ #: inc/config.php:298
521
+ msgid "Enter your Constant Contact password."
522
+ msgstr ""
523
+
524
+ #: inc/config.php:312
525
+ msgid "GetResponse Settings"
526
+ msgstr ""
527
+
528
+ #: inc/config.php:319
529
+ msgid ""
530
+ "Enter your API Key. <a target=\"_blank\" href=\"https://app.getresponse.com/"
531
+ "my_account.html\" target=\"_blank\">Get your API key</a>"
532
+ msgstr ""
533
+
534
+ #: inc/config.php:325 inc/config.php:354
535
+ msgid "Campaign"
536
+ msgstr ""
537
+
538
+ #: inc/config.php:334
539
+ msgid "Mad Mimi Settings"
540
+ msgstr ""
541
+
542
+ #: inc/config.php:340
543
+ msgid "Username or Email"
544
+ msgstr ""
545
+
546
+ #: inc/config.php:341
547
+ msgid "Enter your username or email."
548
+ msgstr ""
549
+
550
+ #: inc/config.php:348
551
+ msgid ""
552
+ "Enter your API Key. <a target=\"_blank\" href=\"https://madmimi.com/user/"
553
+ "edit?set_api&account_info_tabs=account_info_personal\" target=\"_blank\">Get "
554
+ "your API key</a>"
555
+ msgstr ""
556
+
557
+ #: inc/config.php:362
558
+ msgid "Infusionsoft Settings"
559
+ msgstr ""
560
+
561
+ #: inc/config.php:368
562
+ msgid "App Name"
563
+ msgstr ""
564
+
565
+ #: inc/config.php:369
566
+ msgid "Enter your app name."
567
+ msgstr ""
568
+
569
+ #: inc/config.php:376
570
+ msgid ""
571
+ "Enter your api key. Learn how to <a href=\"http://ug.infusionsoft.com/"
572
+ "article/AA-00442/0/How-do-I-enable-the-Infusionsoft-API-and-generate-an-API-"
573
+ "Key.html\" target=\"_blank\">generate your Infusionsoft api key</a>."
574
+ msgstr ""
575
+
576
+ #: inc/config.php:383
577
+ msgid "HTML Web Form Settings"
578
+ msgstr ""
579
+
580
+ #: inc/config.php:390
581
+ msgid "HTML"
582
+ msgstr ""
583
+
584
+ #: inc/config.php:391
585
+ msgid "Enter the html provided from the 3rd party service."
586
+ msgstr ""
587
+
588
+ #: inc/config.php:399
589
+ msgid "iContact Settings"
590
+ msgstr ""
591
+
592
+ #: inc/config.php:405
593
+ msgid "Authorize App"
594
+ msgstr ""
595
+
596
+ #: inc/config.php:406
597
+ msgid ""
598
+ "<a href=\"https://app.icontact.com/icp/core/externallogin?"
599
+ "sAppId=puD4TZWs2kKlKZLZZgD7IAUiqPSYPIvd\" target=\"_blank\">Authorize the "
600
+ "App</a> and define the app password, then enter that information below."
601
+ msgstr ""
602
+
603
+ #: inc/config.php:413
604
+ msgid "Enter your username."
605
+ msgstr ""
606
+
607
+ #: inc/config.php:419
608
+ msgid "App Password"
609
+ msgstr ""
610
+
611
+ #: inc/config.php:420
612
+ msgid "Enter the password you defined for this app."
613
+ msgstr ""
614
+
615
+ #: inc/config.php:434
616
+ msgid "Gravity Forms Settings"
617
+ msgstr ""
618
+
619
+ #: inc/config.php:440
620
+ msgid "Form"
621
+ msgstr ""
622
+
623
+ #: inc/config.php:442
624
+ msgid "Select a form to display on your page."
625
+ msgstr ""
626
+
627
+ #: inc/config.php:448
628
+ msgid "Override Gravity Form's confirmation page"
629
+ msgstr ""
630
+
631
+ #: inc/config.php:449
632
+ msgid ""
633
+ "Redirect to this plugin's Thank You page instead of the default Gravity "
634
+ "Forms Confirmation page."
635
+ msgstr ""
636
+
637
+ #: inc/config.php:459
638
+ msgid "WYSIJA Settings"
639
+ msgstr ""
640
+
641
+ #: inc/config.php:467
642
+ msgid "Select a list to save your contacts to."
643
+ msgstr ""
644
+
645
+ #: inc/config.php:474
646
+ msgid "Sendy Settings"
647
+ msgstr ""
648
+
649
+ #: inc/config.php:480
650
+ msgid "Sendy Url"
651
+ msgstr ""
652
+
653
+ #: inc/config.php:482
654
+ msgid ""
655
+ "The url to where your Sendy is installed. Example: http://"
656
+ "your_sendy_installation"
657
+ msgstr ""
658
+
659
+ #: inc/config.php:488
660
+ msgid "List ID"
661
+ msgstr ""
662
+
663
+ #: inc/config.php:489
664
+ msgid ""
665
+ "The list id you want to subscribe a user to. This encrypted & hashed id can "
666
+ "be found under View all lists section named ID in Sendy"
667
+ msgstr ""
668
+
669
+ #: inc/config.php:496
670
+ msgid "MailChimp Settings"
671
+ msgstr ""
672
+
673
+ #: inc/config.php:503
674
+ msgid ""
675
+ "Enter your API Key. <a target=\"_blank\" href=\"http://admin.mailchimp.com/"
676
+ "account/api-key-popup\" target=\"_blank\">Get your API key</a>"
677
+ msgstr ""
678
+
679
+ #: inc/config.php:516
680
+ msgid "Enable Double Opt-In"
681
+ msgstr ""
682
+
683
+ #: inc/config.php:517
684
+ msgid ""
685
+ "Learn more about <a href=\"http://kb.mailchimp.com/article/how-does-"
686
+ "confirmed-optin-or-double-optin-work\">Double Opt-In</a>"
687
+ msgstr ""
688
+
689
+ #: inc/config.php:526
690
+ msgid "Send Welcome Email"
691
+ msgstr ""
692
+
693
+ #: inc/config.php:527
694
+ msgid ""
695
+ "If your Double Opt-in is false and this is true, MailChimp will send your "
696
+ "lists Welcome Email if this subscribe succeeds - this will not fire if "
697
+ "MailChimp ends up updating an existing subscriber. If Double Opt-in is true, "
698
+ "this has no effect. Learn more about <a href='http://blog.mailchimp.com/"
699
+ "sending-welcome-emails-with-mailchimp/' target='_blank'>Welcome Emails</a>."
700
+ msgstr ""
701
+
702
+ #: inc/config.php:536
703
+ msgid "Group Name"
704
+ msgstr ""
705
+
706
+ #: inc/config.php:537
707
+ msgid ""
708
+ "Optional: Enter the name of the group. Learn more about <a href=\"http://"
709
+ "mailchimp.com/features/groups/\" target=\"_blank\">Groups</a>"
710
+ msgstr ""
711
+
712
+ #: inc/config.php:546
713
+ msgid "Groups"
714
+ msgstr ""
715
+
716
+ #: inc/config.php:547
717
+ msgid "Optional: Comma delimited list of interest groups to add the email to."
718
+ msgstr ""
719
+
720
+ #: inc/config.php:553
721
+ msgid "Replace Interests"
722
+ msgstr ""
723
+
724
+ #: inc/config.php:554
725
+ msgid ""
726
+ "Whether MailChimp will replace the interest groups with the groups provided "
727
+ "or add the provided groups to the member's interest groups"
728
+ msgstr ""
729
+
730
+ #: inc/config.php:564
731
+ msgid "After Subscribe Settings"
732
+ msgstr ""
733
+
734
+ #: inc/config.php:570
735
+ msgid "Thank You or Incentive Message"
736
+ msgstr ""
737
+
738
+ #: inc/config.php:571
739
+ msgid ""
740
+ "Leave a thank you or incentive information after the user has subscribed. "
741
+ "This will override the default success message."
742
+ msgstr ""
743
+
744
+ #: inc/config.php:578
745
+ msgid "Share Buttons"
746
+ msgstr ""
747
+
748
+ #: inc/config.php:579
749
+ msgid ""
750
+ "Select the checkboxes above to display Social Share Buttons after you "
751
+ "capture an email."
752
+ msgstr ""
753
+
754
+ #: inc/config.php:581
755
+ msgid "Twitter"
756
+ msgstr ""
757
+
758
+ #: inc/config.php:582
759
+ msgid "Facebook"
760
+ msgstr ""
761
+
762
+ #: inc/config.php:583
763
+ msgid "Google Plus"
764
+ msgstr ""
765
+
766
+ #: inc/config.php:584
767
+ msgid "LinkedIn"
768
+ msgstr ""
769
+
770
+ #: inc/config.php:585
771
+ msgid "PinIt"
772
+ msgstr ""
773
+
774
+ #: inc/config.php:587
775
+ msgid "Tumblr"
776
+ msgstr ""
777
+
778
+ #: inc/config.php:595
779
+ msgid "Display Referrer Link"
780
+ msgstr ""
781
+
782
+ #: inc/config.php:596
783
+ msgid ""
784
+ "The referrer link is a special link that you can encourage your subscribers "
785
+ "to share so you track who referred who."
786
+ msgstr ""
787
+
788
+ #: inc/config.php:606
789
+ msgid "Progress Bar Settings"
790
+ msgstr ""
791
+
792
+ #: inc/config.php:612
793
+ msgid "Enable Progress Bar"
794
+ msgstr ""
795
+
796
+ #: inc/config.php:613
797
+ msgid "Displays a progress bar on your site."
798
+ msgstr ""
799
+
800
+ #: inc/config.php:622
801
+ msgid "Start and End Date"
802
+ msgstr ""
803
+
804
+ #: inc/config.php:623
805
+ msgid ""
806
+ "The percent complete will be automatically calculated if you enter a start "
807
+ "and end date."
808
+ msgstr ""
809
+
810
+ #: inc/config.php:630
811
+ msgid "Percent Complete Override"
812
+ msgstr ""
813
+
814
+ #: inc/config.php:631
815
+ msgid ""
816
+ "Enter the percentage complete without the percentage sign. This will "
817
+ "override the date calculation above."
818
+ msgstr ""
819
+
820
+ #: inc/config.php:638
821
+ msgid "Progress Bar Effect"
822
+ msgstr ""
823
+
824
+ #: inc/config.php:640
825
+ msgid "Basic"
826
+ msgstr ""
827
+
828
+ #: inc/config.php:641
829
+ msgid "Striped"
830
+ msgstr ""
831
+
832
+ #: inc/config.php:642
833
+ msgid "Animated"
834
+ msgstr ""
835
+
836
+ #: inc/config.php:645
837
+ msgid "Striped and Animated are not supported in Internet Explorer"
838
+ msgstr ""
839
+
840
+ #: inc/config.php:652
841
+ msgid "Countdown Settings"
842
+ msgstr ""
843
+
844
+ #: inc/config.php:658
845
+ msgid "Enable Countdown"
846
+ msgstr ""
847
+
848
+ #: inc/config.php:659
849
+ msgid "Displays a countdown on your site."
850
+ msgstr ""
851
+
852
+ #: inc/config.php:668
853
+ msgid "End DateTime"
854
+ msgstr ""
855
+
856
+ #: inc/config.php:669
857
+ msgid "Enter the datetime to countdown to."
858
+ msgstr ""
859
+
860
+ #: inc/config.php:683
861
+ msgid "Auto Launch"
862
+ msgstr ""
863
+
864
+ #: inc/config.php:684
865
+ msgid ""
866
+ "This will automatically launch your site when countdown reaches the end."
867
+ msgstr ""
868
+
869
+ #: inc/config.php:693 inc/config.php:836
870
+ msgid "Language Strings"
871
+ msgstr ""
872
+
873
+ #: inc/config.php:694
874
+ msgid "Translate the text strings below into your language if not English."
875
+ msgstr ""
876
+
877
+ #: inc/config.php:701
878
+ msgid "Days"
879
+ msgstr ""
880
+
881
+ #: inc/config.php:702 inc/config.php:710 inc/config.php:719 inc/config.php:728
882
+ msgid "Translate into your language."
883
+ msgstr ""
884
+
885
+ #: inc/config.php:709
886
+ msgid "Hours"
887
+ msgstr ""
888
+
889
+ #: inc/config.php:718
890
+ msgid "Minutes"
891
+ msgstr ""
892
+
893
+ #: inc/config.php:727
894
+ msgid "Seconds"
895
+ msgstr ""
896
+
897
+ #: inc/config.php:740
898
+ msgid "Header"
899
+ msgstr ""
900
+
901
+ #: inc/config.php:745
902
+ msgid "Favicon"
903
+ msgstr ""
904
+
905
+ #: inc/config.php:746
906
+ msgid ""
907
+ "Favicons are displayed in a browser tab. Need Help <a href=\"http://tools."
908
+ "dynamicdrive.com/favicon/\" target=\"_blank\">creating a favicon</a>?"
909
+ msgstr ""
910
+
911
+ #: inc/config.php:752
912
+ msgid "SEO Title"
913
+ msgstr ""
914
+
915
+ #: inc/config.php:753
916
+ msgid ""
917
+ "If left empty the <a href=\"http://www.seomoz.org/learn-seo/title-tag\" "
918
+ "target=\"_blank\">title tag</a> of your page will be: "
919
+ msgstr ""
920
+
921
+ #: inc/config.php:759
922
+ msgid "SEO Meta Description"
923
+ msgstr ""
924
+
925
+ #: inc/config.php:760
926
+ msgid ""
927
+ "If left empty the <a href=\"http://www.seomoz.org/learn-seo/meta-description"
928
+ "\" target=\"_blank\">meta description</a> of your page will be: "
929
+ msgstr ""
930
+
931
+ #: inc/config.php:768
932
+ msgid "Analytics Code"
933
+ msgstr ""
934
+
935
+ #: inc/config.php:769
936
+ msgid ""
937
+ "Paste in your <a href=\"http://www.google.com/analytics/\" target=\"_blank"
938
+ "\">Google Analytics</a> code. Example: UA-xxxxxxxxx"
939
+ msgstr ""
940
+
941
+ #: inc/config.php:776
942
+ msgid "Footer Credit"
943
+ msgstr ""
944
+
945
+ #: inc/config.php:788
946
+ msgid "Credit Image"
947
+ msgstr ""
948
+
949
+ #: inc/config.php:789
950
+ msgid "Use an image to add a footer credit."
951
+ msgstr ""
952
+
953
+ #: inc/config.php:795
954
+ msgid "Link to be used for your footer credit."
955
+ msgstr ""
956
+
957
+ #: inc/config.php:796
958
+ msgid "Credit Link"
959
+ msgstr ""
960
+
961
+ #: inc/config.php:811
962
+ msgid "Social Media Profiles"
963
+ msgstr ""
964
+
965
+ #: inc/config.php:817
966
+ msgid "Social Media Icons Size"
967
+ msgstr ""
968
+
969
+ #: inc/config.php:819
970
+ msgid "Small 16px"
971
+ msgstr ""
972
+
973
+ #: inc/config.php:820
974
+ msgid "Medium 24px"
975
+ msgstr ""
976
+
977
+ #: inc/config.php:821
978
+ msgid "Large 32px"
979
+ msgstr ""
980
+
981
+ #: inc/config.php:829
982
+ msgid "Social Profiles"
983
+ msgstr ""
984
+
985
+ #: inc/config.php:842
986
+ msgid "Subscribe Button"
987
+ msgstr ""
988
+
989
+ #: inc/config.php:843
990
+ msgid "Notify Me"
991
+ msgstr ""
992
+
993
+ #: inc/config.php:849
994
+ msgid "Subscribe Field"
995
+ msgstr ""
996
+
997
+ #: inc/config.php:850
998
+ msgid "Enter Your Email"
999
+ msgstr ""
1000
+
1001
+ #: inc/config.php:856
1002
+ msgid "First Name Field"
1003
+ msgstr ""
1004
+
1005
+ #: inc/config.php:857
1006
+ msgid "First Name"
1007
+ msgstr ""
1008
+
1009
+ #: inc/config.php:863
1010
+ msgid "Last Name Field"
1011
+ msgstr ""
1012
+
1013
+ #: inc/config.php:864
1014
+ msgid "Last Name"
1015
+ msgstr ""
1016
+
1017
+ #: inc/config.php:870
1018
+ msgid "Success"
1019
+ msgstr ""
1020
+
1021
+ #: inc/config.php:871
1022
+ msgid "You'll be notified soon!"
1023
+ msgstr ""
1024
+
1025
+ #: inc/config.php:877
1026
+ msgid "Already Subscribed"
1027
+ msgstr ""
1028
+
1029
+ #: inc/config.php:878
1030
+ msgid "You're already subscribed."
1031
+ msgstr ""
1032
+
1033
+ #: inc/config.php:884
1034
+ msgid "Invalid Email"
1035
+ msgstr ""
1036
+
1037
+ #: inc/config.php:891
1038
+ msgid "API Error"
1039
+ msgstr ""
1040
+
1041
+ #: inc/config.php:892
1042
+ msgid "Error, please try again."
1043
+ msgstr ""
1044
+
1045
+ #: inc/config.php:899
1046
+ msgid "Display WPML Language Switcher"
1047
+ msgstr ""
1048
+
1049
+ #: inc/config.php:901
1050
+ msgid "No"
1051
+ msgstr ""
1052
+
1053
+ #: inc/config.php:904
1054
+ msgid "This will display the WPML Language Switcher on the Coming Soon page."
1055
+ msgstr ""
1056
+
1057
+ #: inc/config.php:916
1058
+ msgid "Design"
1059
+ msgstr ""
1060
+
1061
+ #: inc/config.php:947
1062
+ msgid "Background"
1063
+ msgstr ""
1064
+
1065
+ #: inc/config.php:954
1066
+ msgid "Background Color"
1067
+ msgstr ""
1068
+
1069
+ #: inc/config.php:957
1070
+ msgid ""
1071
+ "Choose between having a solid color background or uploading an image. By "
1072
+ "default images will cover the entire background."
1073
+ msgstr ""
1074
+
1075
+ #: inc/config.php:964
1076
+ msgid "Background Image"
1077
+ msgstr ""
1078
+
1079
+ #: inc/config.php:970
1080
+ msgid "Cover or Stretch"
1081
+ msgstr ""
1082
+
1083
+ #: inc/config.php:971
1084
+ msgid ""
1085
+ "Cover will scale the image to the smallest size such that both its width and "
1086
+ "its height can fit inside the content area. The image will be stretched for "
1087
+ "older browsers."
1088
+ msgstr ""
1089
+
1090
+ #: inc/config.php:981
1091
+ msgid "Background Repeat"
1092
+ msgstr ""
1093
+
1094
+ #: inc/config.php:983
1095
+ msgid "No-Repeat"
1096
+ msgstr ""
1097
+
1098
+ #: inc/config.php:984
1099
+ msgid "Tile"
1100
+ msgstr ""
1101
+
1102
+ #: inc/config.php:985
1103
+ msgid "Tile Horizontally"
1104
+ msgstr ""
1105
+
1106
+ #: inc/config.php:986
1107
+ msgid "Tile Vertically"
1108
+ msgstr ""
1109
+
1110
+ #: inc/config.php:994
1111
+ msgid "Background Position"
1112
+ msgstr ""
1113
+
1114
+ #: inc/config.php:996
1115
+ msgid "Left Top"
1116
+ msgstr ""
1117
+
1118
+ #: inc/config.php:997
1119
+ msgid "Left Center"
1120
+ msgstr ""
1121
+
1122
+ #: inc/config.php:998
1123
+ msgid "Left Bottom"
1124
+ msgstr ""
1125
+
1126
+ #: inc/config.php:999
1127
+ msgid "Right Top"
1128
+ msgstr ""
1129
+
1130
+ #: inc/config.php:1000
1131
+ msgid "Right Center"
1132
+ msgstr ""
1133
+
1134
+ #: inc/config.php:1001
1135
+ msgid "Right Bottom"
1136
+ msgstr ""
1137
+
1138
+ #: inc/config.php:1002
1139
+ msgid "Center Top"
1140
+ msgstr ""
1141
+
1142
+ #: inc/config.php:1003
1143
+ msgid "Center Center"
1144
+ msgstr ""
1145
+
1146
+ #: inc/config.php:1004
1147
+ msgid "Center Bottom"
1148
+ msgstr ""
1149
+
1150
+ #: inc/config.php:1011
1151
+ msgid "Background Attachment"
1152
+ msgstr ""
1153
+
1154
+ #: inc/config.php:1013
1155
+ msgid "Fixed"
1156
+ msgstr ""
1157
+
1158
+ #: inc/config.php:1014
1159
+ msgid "Scroll"
1160
+ msgstr ""
1161
+
1162
+ #: inc/config.php:1021
1163
+ msgid "Background Effects"
1164
+ msgstr ""
1165
+
1166
+ #: inc/config.php:1023
1167
+ msgid "None"
1168
+ msgstr ""
1169
+
1170
+ #: inc/config.php:1024
1171
+ msgid "Noise"
1172
+ msgstr ""
1173
+
1174
+ #: inc/config.php:1026
1175
+ msgid ""
1176
+ "Background effects can be applied to Background Colors or Background Images."
1177
+ msgstr ""
1178
+
1179
+ #: inc/config.php:1034
1180
+ msgid "Background Slideshow"
1181
+ msgstr ""
1182
+
1183
+ #: inc/config.php:1035
1184
+ msgid "This will override the setting above and create a background slideshow."
1185
+ msgstr ""
1186
+
1187
+ #: inc/config.php:1045
1188
+ msgid "Slideshow Randomize"
1189
+ msgstr ""
1190
+
1191
+ #: inc/config.php:1046
1192
+ msgid ""
1193
+ "This will display a random slideshow each time as opposed to the order "
1194
+ "listed below."
1195
+ msgstr ""
1196
+
1197
+ #: inc/config.php:1056
1198
+ msgid "Slide Speed"
1199
+ msgstr ""
1200
+
1201
+ #: inc/config.php:1057
1202
+ msgid "This will determine how fast slides change in milliseconds."
1203
+ msgstr ""
1204
+
1205
+ #: inc/config.php:1064
1206
+ msgid "Slide Transition"
1207
+ msgstr ""
1208
+
1209
+ #: inc/config.php:1065
1210
+ msgid "This will determine the transition between slides."
1211
+ msgstr ""
1212
+
1213
+ #: inc/config.php:1067
1214
+ msgid "Fade"
1215
+ msgstr ""
1216
+
1217
+ #: inc/config.php:1068
1218
+ msgid "Slide Top"
1219
+ msgstr ""
1220
+
1221
+ #: inc/config.php:1069
1222
+ msgid "Slide Right"
1223
+ msgstr ""
1224
+
1225
+ #: inc/config.php:1070
1226
+ msgid "Slide Bottom"
1227
+ msgstr ""
1228
+
1229
+ #: inc/config.php:1071
1230
+ msgid "Slide Left"
1231
+ msgstr ""
1232
+
1233
+ #: inc/config.php:1072
1234
+ msgid "Carousel Right"
1235
+ msgstr ""
1236
+
1237
+ #: inc/config.php:1073
1238
+ msgid "Carousel Left"
1239
+ msgstr ""
1240
+
1241
+ #: inc/config.php:1080
1242
+ msgid "Slideshow Images"
1243
+ msgstr ""
1244
+
1245
+ #: inc/config.php:1081
1246
+ msgid ""
1247
+ "Paste in the urls to the images you like to use for your slideshow one per "
1248
+ "line. <a href=\"https://seedprod.zendesk.com/entries/22545416-how-to-create-"
1249
+ "a-background-slideshow\" target=\"_blank\">Learn How</a>"
1250
+ msgstr ""
1251
+
1252
+ #: inc/config.php:1088
1253
+ msgid "Background Video (Beta)"
1254
+ msgstr ""
1255
+
1256
+ #: inc/config.php:1089
1257
+ msgid "This will override the setting above and create a background video."
1258
+ msgstr ""
1259
+
1260
+ #: inc/config.php:1099
1261
+ msgid "Background Video URL"
1262
+ msgstr ""
1263
+
1264
+ #: inc/config.php:1100
1265
+ msgid "Enter the YouTube or Vimeo url."
1266
+ msgstr ""
1267
+
1268
+ #: inc/config.php:1107
1269
+ msgid "Text"
1270
+ msgstr ""
1271
+
1272
+ #: inc/config.php:1113
1273
+ msgid "Text Color"
1274
+ msgstr ""
1275
+
1276
+ #: inc/config.php:1123
1277
+ msgid "Link &amp; Button Color"
1278
+ msgstr ""
1279
+
1280
+ #: inc/config.php:1131
1281
+ msgid "Headline Color"
1282
+ msgstr ""
1283
+
1284
+ #: inc/config.php:1133
1285
+ msgid ""
1286
+ "If no Headline Color is choosen then the Link &amp; Button Color will be "
1287
+ "used. "
1288
+ msgstr ""
1289
+
1290
+ #: inc/config.php:1141
1291
+ msgid "Text Font"
1292
+ msgstr ""
1293
+
1294
+ #: inc/config.php:1162
1295
+ msgid "Headline Font"
1296
+ msgstr ""
1297
+
1298
+ #: inc/config.php:1178
1299
+ msgid ""
1300
+ "If you choose 'Inherit' as a headline font then the text font will be used."
1301
+ msgstr ""
1302
+
1303
+ #: inc/config.php:1184
1304
+ msgid "Button Font"
1305
+ msgstr ""
1306
+
1307
+ #: inc/config.php:1200
1308
+ msgid ""
1309
+ "If you choose 'Inherit' as a button font then the headline font will be used."
1310
+ msgstr ""
1311
+
1312
+ #: inc/config.php:1207
1313
+ msgid "Typekit Kit ID"
1314
+ msgstr ""
1315
+
1316
+ #: inc/config.php:1208
1317
+ msgid ""
1318
+ "Enter your <a href=\"https://typekit.com\" target=\"_blank\">Typekit</a> Kit "
1319
+ "ID. This will override the fonts above."
1320
+ msgstr ""
1321
+
1322
+ #: inc/config.php:1214
1323
+ msgid "Text Effects"
1324
+ msgstr ""
1325
+
1326
+ #: inc/config.php:1216
1327
+ msgid "Inset <small class=\"description\">: Adds a subtle inset shadow</small>"
1328
+ msgstr ""
1329
+
1330
+ #: inc/config.php:1227
1331
+ msgid "Container"
1332
+ msgstr ""
1333
+
1334
+ #: inc/config.php:1233
1335
+ msgid "Enable Container"
1336
+ msgstr ""
1337
+
1338
+ #: inc/config.php:1234
1339
+ msgid ""
1340
+ "A container is a wrapper that will encapsulate your coming soon content."
1341
+ msgstr ""
1342
+
1343
+ #: inc/config.php:1243
1344
+ msgid "Container Color"
1345
+ msgstr ""
1346
+
1347
+ #: inc/config.php:1251
1348
+ msgid "Container Position"
1349
+ msgstr ""
1350
+
1351
+ #: inc/config.php:1253
1352
+ msgid "Left"
1353
+ msgstr ""
1354
+
1355
+ #: inc/config.php:1254
1356
+ msgid "Center"
1357
+ msgstr ""
1358
+
1359
+ #: inc/config.php:1255
1360
+ msgid "Right"
1361
+ msgstr ""
1362
+
1363
+ #: inc/config.php:1263
1364
+ msgid "Container Effects"
1365
+ msgstr ""
1366
+
1367
+ #: inc/config.php:1265
1368
+ msgid "Fade In"
1369
+ msgstr ""
1370
+
1371
+ #: inc/config.php:1266
1372
+ msgid "Drop Shadow"
1373
+ msgstr ""
1374
+
1375
+ #: inc/config.php:1267
1376
+ msgid "Glow"
1377
+ msgstr ""
1378
+
1379
+ #: inc/config.php:1268
1380
+ msgid "Border"
1381
+ msgstr ""
1382
+
1383
+ #: inc/config.php:1269
1384
+ msgid "Rounded Corners"
1385
+ msgstr ""
1386
+
1387
+ #: inc/config.php:1270
1388
+ msgid "Opacity"
1389
+ msgstr ""
1390
+
1391
+ #: inc/config.php:1272
1392
+ msgid ""
1393
+ "These effects only work in modern browsers. Not sure what a <a target="
1394
+ "\"_blank\" href=\"http://browsehappy.com/\">modern browser</a> is?"
1395
+ msgstr ""
1396
+
1397
+ #: inc/config.php:1293
1398
+ msgid "Template"
1399
+ msgstr ""
1400
+
1401
+ #: inc/config.php:1301
1402
+ msgid "Custom CSS"
1403
+ msgstr ""
1404
+
1405
+ #: inc/config.php:1302
1406
+ msgid "Need to tweaks the styles? Add your custom CSS here."
1407
+ msgstr ""
1408
+
1409
+ #: inc/config.php:1309
1410
+ msgid "Code"
1411
+ msgstr ""
1412
+
1413
+ #: inc/config.php:1310
1414
+ msgid ""
1415
+ "If you need to make some advanced changes to the template you can edit the "
1416
+ "code above directly."
1417
+ msgstr ""
1418
+
1419
+ #: inc/config.php:1317
1420
+ msgid "Template Tags"
1421
+ msgstr ""
1422
+
1423
+ #: inc/config.php:1318
1424
+ msgid ""
1425
+ "\n"
1426
+ " <code>{Title}</code> - Display your title. Settings > Coming "
1427
+ "Soon Pro Settings > Header > SEO Title <br>\n"
1428
+ " <code>{MetaDescription}</code> - Displays your description along "
1429
+ "with the proper meta tags. Settings > Coming Soon Pro > Settings > Header > "
1430
+ "SEO Meta Description <br>\n"
1431
+ " <code>{Privacy}</code> - Displays noindex tag if set to private. "
1432
+ "Settings > Privacy <br>\n"
1433
+ " <code>{Favicon}</code> - Displays favicon tag. Settings > Coming "
1434
+ "Soon Pro > Settings > Header > Favicon <br>\n"
1435
+ " <code>{Head}</code> - Required in the <head> Displays custom "
1436
+ "scripts for the page. Settings > Coming Soon Pro > Advanced > Scripts<br>\n"
1437
+ " <code>{Custom CSS}</code> - Displays custom css page. Settings > "
1438
+ "Coming Soon Pro > Design > Template > Custom CSS<br>\n"
1439
+ " <code>{Logo}</code> - Displays your logo if set. Settings > "
1440
+ "Coming Soon Pro > Settings > Page Settings > Logo<br>\n"
1441
+ " <code>{Headline}</code> - Displays your headline if set. "
1442
+ "Settings > Coming Soon Pro > Settings > Page Settings > Headline<br>\n"
1443
+ " <code>{Description}</code> - Displays your description if set. "
1444
+ "Settings > Coming Soon Pro > Settings > Page Settings > Description<br>\n"
1445
+ " <code>{ProgressBar}</code> - Displays a progress bar if enabled. "
1446
+ "Settings > Coming Soon Pro > Settings > Progress Bar Settings<br>\n"
1447
+ " <code>{Countdown}</code> - Displays a countdown if enabled. "
1448
+ "Settings > Coming Soon Pro > Settings > Countdown Settings<br>\n"
1449
+ " <code>{Form}</code> - Displays signup form and thank you page. "
1450
+ "Settings > Coming Soon Pro > Settings<br>\n"
1451
+ " <code>{SocialProfiles}</code> - Displays your social profiles if "
1452
+ "set. Settings > Coming Soon Pro > Settings > Social Media Profiles<br>\n"
1453
+ " <code>{Credit}</code> - Displays your footer credit if set. "
1454
+ "Settings > Coming Soon Pro > Settings > Footer Credit<br>\n"
1455
+ " <code>{Footer}</code> - Displays required scripts for the page."
1456
+ "<br>\n"
1457
+ " "
1458
+ msgstr ""
1459
+
1460
+ #: inc/config.php:1344
1461
+ msgid "Advanced"
1462
+ msgstr ""
1463
+
1464
+ #: inc/config.php:1355
1465
+ msgid "Access"
1466
+ msgstr ""
1467
+
1468
+ #: inc/config.php:1362
1469
+ msgid "Client View URL"
1470
+ msgstr ""
1471
+
1472
+ #: inc/config.php:1363
1473
+ msgid ""
1474
+ "Enter a phrase above and give your client a secret url that will allow them "
1475
+ "to bypass the Coming Soon page. The cookie life is 6 hours. After the cookie "
1476
+ "expires they will need to revisit the client view url to regain access."
1477
+ msgstr ""
1478
+
1479
+ #: inc/config.php:1369
1480
+ msgid "Access by IP"
1481
+ msgstr ""
1482
+
1483
+ #: inc/config.php:1370
1484
+ msgid ""
1485
+ "All visitors from certain IP's to bypass the Coming Soon page. Put each IP "
1486
+ "on it's own line."
1487
+ msgstr ""
1488
+
1489
+ #: inc/config.php:1376
1490
+ msgid "Access by Role"
1491
+ msgstr ""
1492
+
1493
+ #: inc/config.php:1377
1494
+ msgid ""
1495
+ "By default anyone logged in will see the regular site and not the coming "
1496
+ "soon page. To override this select Roles that will be given access to see "
1497
+ "the regular site."
1498
+ msgstr ""
1499
+
1500
+ #: inc/config.php:1386
1501
+ msgid "Landing Page Mode"
1502
+ msgstr ""
1503
+
1504
+ #: inc/config.php:1387
1505
+ msgid ""
1506
+ "Only display the coming soon page on one page of your site and use it as a "
1507
+ "landing page. Leave unselected if you want the coming soon page to be "
1508
+ "display on your entire site."
1509
+ msgstr ""
1510
+
1511
+ #: inc/config.php:1395
1512
+ msgid "Include URL Pattern"
1513
+ msgstr ""
1514
+
1515
+ #: inc/config.php:1396
1516
+ msgid ""
1517
+ "Include certain urls to only diplay the coming soon page on a section of "
1518
+ "your site using <a href=\"http://en.wikipedia.org/wiki/Regex\" target="
1519
+ "\"_blank\">regular expressions</a>. For example enter \"blog\" will include "
1520
+ "pages with the url: http://example.org/blog/*. <a href=\"https://seedprod."
1521
+ "zendesk.com/entries/23050096-exclude-and-include-urls-pattern-examples\" "
1522
+ "target=\"_blank\">See more examples</a> and learn how to include multiple "
1523
+ "pages. This is useful if you are working on a new section of your site."
1524
+ msgstr ""
1525
+
1526
+ #: inc/config.php:1402
1527
+ msgid "Exclude URL Pattern"
1528
+ msgstr ""
1529
+
1530
+ #: inc/config.php:1403
1531
+ msgid ""
1532
+ "Exclude certain urls from displaying the Coming Soon page using <a href="
1533
+ "\"http://en.wikipedia.org/wiki/Regex\" target=\"_blank\">regular "
1534
+ "expressions</a>. For example enter \"blog\" will exclude the url: http://"
1535
+ "example.org/blog/. <a href=\"https://seedprod.zendesk.com/entries/23050096-"
1536
+ "exclude-and-include-urls-pattern-examples\" target=\"_blank\">See more "
1537
+ "examples</a> and learn how to exclue multiple pages. This is useful if a "
1538
+ "section of you site is ready to be viewed or you have a login page on the "
1539
+ "frontend."
1540
+ msgstr ""
1541
+
1542
+ #: inc/config.php:1411
1543
+ msgid "Scripts"
1544
+ msgstr ""
1545
+
1546
+ #: inc/config.php:1428
1547
+ msgid "Enable Responsiveness"
1548
+ msgstr ""
1549
+
1550
+ #: inc/config.php:1429
1551
+ msgid "Makes the page responsive."
1552
+ msgstr ""
1553
+
1554
+ #: inc/config.php:1439
1555
+ msgid "Enable FitVid"
1556
+ msgstr ""
1557
+
1558
+ #: inc/config.php:1440
1559
+ msgid "Makes your videos responsive."
1560
+ msgstr ""
1561
+
1562
+ #: inc/config.php:1451
1563
+ msgid "Enable wp_head &amp; wp_footer"
1564
+ msgstr ""
1565
+
1566
+ #: inc/config.php:1452
1567
+ msgid ""
1568
+ "The <a href=\"http://codex.wordpress.org/Plugin_API/Action_Reference/wp_head"
1569
+ "\" target=\"_blank\">wp_head</a> and <a href=\"http://codex.wordpress.org/"
1570
+ "Plugin_API/Action_Reference/wp_footer\" target=\"_blank\">wp_footer</a> "
1571
+ "functions are required by some plugins. If you are unsure do not enable it. "
1572
+ "These functions can cause styling issues with the page."
1573
+ msgstr ""
1574
+
1575
+ #: inc/config.php:1461
1576
+ msgid "Header Scripts"
1577
+ msgstr ""
1578
+
1579
+ #: inc/config.php:1462
1580
+ msgid ""
1581
+ "Enter any custom scripts. You can enter Javascript or CSS. This will be "
1582
+ "rendered before the closing head tag."
1583
+ msgstr ""
1584
+
1585
+ #: inc/config.php:1469
1586
+ msgid "Footer Scripts"
1587
+ msgstr ""
1588
+
1589
+ #: inc/config.php:1470
1590
+ msgid ""
1591
+ "Enter any custom scripts. This will be rendered before the closing body tag."
1592
+ msgstr ""
1593
+
1594
+ #: inc/config.php:1477
1595
+ msgid "Conversion Scripts"
1596
+ msgstr ""
1597
+
1598
+ #: inc/config.php:1478
1599
+ msgid ""
1600
+ "This will render only after the form has been submitted. This will be "
1601
+ "rendered before the closing body tag."
1602
+ msgstr ""
1603
+
1604
+ #: inc/config.php:1485
1605
+ msgid "Disable Custom Code Template"
1606
+ msgstr ""
1607
+
1608
+ #: inc/config.php:1486
1609
+ msgid ""
1610
+ "Mod_security will cause false positive 400 error on some host. Disable the "
1611
+ "custom template to avoid this error and notify your host of the false "
1612
+ "positive."
1613
+ msgstr ""
1614
+
1615
+ #: inc/config.php:1495
1616
+ msgid "Import / Export"
1617
+ msgstr ""
1618
+
1619
+ #: inc/config.php:1501
1620
+ msgid "Import"
1621
+ msgstr ""
1622
+
1623
+ #: inc/config.php:1502
1624
+ msgid "Paste settings from another Coming Soon Pro instance to import."
1625
+ msgstr ""
1626
+
1627
+ #: inc/config.php:1508
1628
+ msgid "Export"
1629
+ msgstr ""
1630
+
1631
+ #: inc/config.php:1509
1632
+ msgid ""
1633
+ "Copy these settings and use the import them to another Coming Soon Pro "
1634
+ "instance."
1635
+ msgstr ""
1636
+
1637
+ #: themes/default/functions.php:666
1638
+ msgid "Your Referral URL is:"
1639
+ msgstr ""
1640
+
1641
+ #: themes/default/functions.php:667
1642
+ msgid "Your Referral Stats"
1643
+ msgstr ""
lib/seed_csp4_lessc.inc.php ADDED
@@ -0,0 +1,3359 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * lessphp v0.3.8
5
+ * http://leafo.net/lessphp
6
+ *
7
+ * LESS css compiler, adapted from http://seed_csp4_lesscss.org
8
+ *
9
+ * Copyright 2012, Leaf Corcoran <leafot@gmail.com>
10
+ * Licensed under MIT or GPLv3, see LICENSE
11
+ */
12
+
13
+
14
+ /**
15
+ * The less compiler and parser.
16
+ *
17
+ * Converting LESS to CSS is a three stage process. The incoming file is parsed
18
+ * by `seed_csp4_lessc_parser` into a syntax tree, then it is compiled into another tree
19
+ * representing the CSS structure by `seed_csp4_lessc`. The CSS tree is fed into a
20
+ * formatter, like `seed_csp4_lessc_formatter` which then outputs CSS as a string.
21
+ *
22
+ * During the first compile, all values are *reduced*, which means that their
23
+ * types are brought to the lowest form before being dump as strings. This
24
+ * handles math equations, variable dereferences, and the like.
25
+ *
26
+ * The `parse` function of `seed_csp4_lessc` is the entry point.
27
+ *
28
+ * In summary:
29
+ *
30
+ * The `seed_csp4_lessc` class creates an intstance of the parser, feeds it LESS code,
31
+ * then transforms the resulting tree to a CSS tree. This class also holds the
32
+ * evaluation context, such as all available mixins and variables at any given
33
+ * time.
34
+ *
35
+ * The `seed_csp4_lessc_parser` class is only concerned with parsing its input.
36
+ *
37
+ * The `seed_csp4_lessc_formatter` takes a CSS tree, and dumps it to a formatted string,
38
+ * handling things like indentation.
39
+ */
40
+ class seed_csp4_lessc {
41
+ static public $VERSION = "v0.3.8";
42
+ static protected $TRUE = array("keyword", "true");
43
+ static protected $FALSE = array("keyword", "false");
44
+
45
+ protected $libFunctions = array();
46
+ protected $registeredVars = array();
47
+ protected $preserveComments = false;
48
+
49
+ public $vPrefix = '@'; // prefix of abstract properties
50
+ public $mPrefix = '$'; // prefix of abstract blocks
51
+ public $parentSelector = '&';
52
+
53
+ public $importDisabled = false;
54
+ public $importDir = '';
55
+
56
+ protected $numberPrecision = null;
57
+
58
+ // set to the parser that generated the current line when compiling
59
+ // so we know how to create error messages
60
+ protected $sourceParser = null;
61
+ protected $sourceLoc = null;
62
+
63
+ static public $defaultValue = array("keyword", "");
64
+
65
+ static protected $nextImportId = 0; // uniquely identify imports
66
+
67
+ // attempts to find the path of an import url, returns null for css files
68
+ protected function findImport($url) {
69
+ foreach ((array)$this->importDir as $dir) {
70
+ $full = $dir.(substr($dir, -1) != '/' ? '/' : '').$url;
71
+ if ($this->fileExists($file = $full.'.less') || $this->fileExists($file = $full)) {
72
+ return $file;
73
+ }
74
+ }
75
+
76
+ return null;
77
+ }
78
+
79
+ protected function fileExists($name) {
80
+ return is_file($name);
81
+ }
82
+
83
+ static public function compressList($items, $delim) {
84
+ if (!isset($items[1]) && isset($items[0])) return $items[0];
85
+ else return array('list', $delim, $items);
86
+ }
87
+
88
+ static public function preg_quote($what) {
89
+ return preg_quote($what, '/');
90
+ }
91
+
92
+ protected function tryImport($importPath, $parentBlock, $out) {
93
+ if ($importPath[0] == "function" && $importPath[1] == "url") {
94
+ $importPath = $this->flattenList($importPath[2]);
95
+ }
96
+
97
+ $str = $this->coerceString($importPath);
98
+ if ($str === null) return false;
99
+
100
+ $url = $this->compileValue($this->lib_e($str));
101
+
102
+ // don't import if it ends in css
103
+ if (substr_compare($url, '.css', -4, 4) === 0) return false;
104
+
105
+ $realPath = $this->findImport($url);
106
+ if ($realPath === null) return false;
107
+
108
+ if ($this->importDisabled) {
109
+ return array(false, "/* import disabled */");
110
+ }
111
+
112
+ $this->addParsedFile($realPath);
113
+ $parser = $this->makeParser($realPath);
114
+ $root = $parser->parse(file_get_contents($realPath));
115
+
116
+ // set the parents of all the block props
117
+ foreach ($root->props as $prop) {
118
+ if ($prop[0] == "block") {
119
+ $prop[1]->parent = $parentBlock;
120
+ }
121
+ }
122
+
123
+ // copy mixins into scope, set their parents
124
+ // bring blocks from import into current block
125
+ // TODO: need to mark the source parser these came from this file
126
+ foreach ($root->children as $childName => $child) {
127
+ if (isset($parentBlock->children[$childName])) {
128
+ $parentBlock->children[$childName] = array_merge(
129
+ $parentBlock->children[$childName],
130
+ $child);
131
+ } else {
132
+ $parentBlock->children[$childName] = $child;
133
+ }
134
+ }
135
+
136
+ $pi = pathinfo($realPath);
137
+ $dir = $pi["dirname"];
138
+
139
+ list($top, $bottom) = $this->sortProps($root->props, true);
140
+ $this->compileImportedProps($top, $parentBlock, $out, $parser, $dir);
141
+
142
+ return array(true, $bottom, $parser, $dir);
143
+ }
144
+
145
+ protected function compileImportedProps($props, $block, $out, $sourceParser, $importDir) {
146
+ $oldSourceParser = $this->sourceParser;
147
+
148
+ $oldImport = $this->importDir;
149
+
150
+ // TODO: this is because the importDir api is stupid
151
+ $this->importDir = (array)$this->importDir;
152
+ array_unshift($this->importDir, $importDir);
153
+
154
+ foreach ($props as $prop) {
155
+ $this->compileProp($prop, $block, $out);
156
+ }
157
+
158
+ $this->importDir = $oldImport;
159
+ $this->sourceParser = $oldSourceParser;
160
+ }
161
+
162
+ /**
163
+ * Recursively compiles a block.
164
+ *
165
+ * A block is analogous to a CSS block in most cases. A single LESS document
166
+ * is encapsulated in a block when parsed, but it does not have parent tags
167
+ * so all of it's children appear on the root level when compiled.
168
+ *
169
+ * Blocks are made up of props and children.
170
+ *
171
+ * Props are property instructions, array tuples which describe an action
172
+ * to be taken, eg. write a property, set a variable, mixin a block.
173
+ *
174
+ * The children of a block are just all the blocks that are defined within.
175
+ * This is used to look up mixins when performing a mixin.
176
+ *
177
+ * Compiling the block involves pushing a fresh environment on the stack,
178
+ * and iterating through the props, compiling each one.
179
+ *
180
+ * See seed_csp4_lessc::compileProp()
181
+ *
182
+ */
183
+ protected function compileBlock($block) {
184
+ switch ($block->type) {
185
+ case "root":
186
+ $this->compileRoot($block);
187
+ break;
188
+ case null:
189
+ $this->compileCSSBlock($block);
190
+ break;
191
+ case "media":
192
+ $this->compileMedia($block);
193
+ break;
194
+ case "directive":
195
+ $name = "@" . $block->name;
196
+ if (!empty($block->value)) {
197
+ $name .= " " . $this->compileValue($this->reduce($block->value));
198
+ }
199
+
200
+ $this->compileNestedBlock($block, array($name));
201
+ break;
202
+ default:
203
+ $this->throwError("unknown block type: $block->type\n");
204
+ }
205
+ }
206
+
207
+ protected function compileCSSBlock($block) {
208
+ $env = $this->pushEnv();
209
+
210
+ $selectors = $this->compileSelectors($block->tags);
211
+ $env->selectors = $this->multiplySelectors($selectors);
212
+ $out = $this->makeOutputBlock(null, $env->selectors);
213
+
214
+ $this->scope->children[] = $out;
215
+ $this->compileProps($block, $out);
216
+
217
+ $block->scope = $env; // mixins carry scope with them!
218
+ $this->popEnv();
219
+ }
220
+
221
+ protected function compileMedia($media) {
222
+ $env = $this->pushEnv($media);
223
+ $parentScope = $this->mediaParent($this->scope);
224
+
225
+ $query = $this->compileMediaQuery($this->multiplyMedia($env));
226
+
227
+ $this->scope = $this->makeOutputBlock($media->type, array($query));
228
+ $parentScope->children[] = $this->scope;
229
+
230
+ $this->compileProps($media, $this->scope);
231
+
232
+ if (count($this->scope->lines) > 0) {
233
+ $orphanSelelectors = $this->findClosestSelectors();
234
+ if (!is_null($orphanSelelectors)) {
235
+ $orphan = $this->makeOutputBlock(null, $orphanSelelectors);
236
+ $orphan->lines = $this->scope->lines;
237
+ array_unshift($this->scope->children, $orphan);
238
+ $this->scope->lines = array();
239
+ }
240
+ }
241
+
242
+ $this->scope = $this->scope->parent;
243
+ $this->popEnv();
244
+ }
245
+
246
+ protected function mediaParent($scope) {
247
+ while (!empty($scope->parent)) {
248
+ if (!empty($scope->type) && $scope->type != "media") {
249
+ break;
250
+ }
251
+ $scope = $scope->parent;
252
+ }
253
+
254
+ return $scope;
255
+ }
256
+
257
+ protected function compileNestedBlock($block, $selectors) {
258
+ $this->pushEnv($block);
259
+ $this->scope = $this->makeOutputBlock($block->type, $selectors);
260
+ $this->scope->parent->children[] = $this->scope;
261
+
262
+ $this->compileProps($block, $this->scope);
263
+
264
+ $this->scope = $this->scope->parent;
265
+ $this->popEnv();
266
+ }
267
+
268
+ protected function compileRoot($root) {
269
+ $this->pushEnv();
270
+ $this->scope = $this->makeOutputBlock($root->type);
271
+ $this->compileProps($root, $this->scope);
272
+ $this->popEnv();
273
+ }
274
+
275
+ protected function compileProps($block, $out) {
276
+ foreach ($this->sortProps($block->props) as $prop) {
277
+ $this->compileProp($prop, $block, $out);
278
+ }
279
+ }
280
+
281
+ protected function sortProps($props, $split = false) {
282
+ $vars = array();
283
+ $imports = array();
284
+ $other = array();
285
+
286
+ foreach ($props as $prop) {
287
+ switch ($prop[0]) {
288
+ case "assign":
289
+ if (isset($prop[1][0]) && $prop[1][0] == $this->vPrefix) {
290
+ $vars[] = $prop;
291
+ } else {
292
+ $other[] = $prop;
293
+ }
294
+ break;
295
+ case "import":
296
+ $id = self::$nextImportId++;
297
+ $prop[] = $id;
298
+ $imports[] = $prop;
299
+ $other[] = array("import_mixin", $id);
300
+ break;
301
+ default:
302
+ $other[] = $prop;
303
+ }
304
+ }
305
+
306
+ if ($split) {
307
+ return array(array_merge($vars, $imports), $other);
308
+ } else {
309
+ return array_merge($vars, $imports, $other);
310
+ }
311
+ }
312
+
313
+ protected function compileMediaQuery($queries) {
314
+ $compiledQueries = array();
315
+ foreach ($queries as $query) {
316
+ $parts = array();
317
+ foreach ($query as $q) {
318
+ switch ($q[0]) {
319
+ case "mediaType":
320
+ $parts[] = implode(" ", array_slice($q, 1));
321
+ break;
322
+ case "mediaExp":
323
+ if (isset($q[2])) {
324
+ $parts[] = "($q[1]: " .
325
+ $this->compileValue($this->reduce($q[2])) . ")";
326
+ } else {
327
+ $parts[] = "($q[1])";
328
+ }
329
+ break;
330
+ }
331
+ }
332
+
333
+ if (count($parts) > 0) {
334
+ $compiledQueries[] = implode(" and ", $parts);
335
+ }
336
+ }
337
+
338
+ $out = "@media";
339
+ if (!empty($parts)) {
340
+ $out .= " " .
341
+ implode($this->formatter->selectorSeparator, $compiledQueries);
342
+ }
343
+ return $out;
344
+ }
345
+
346
+ protected function multiplyMedia($env, $childQueries = null) {
347
+ if (is_null($env) ||
348
+ !empty($env->block->type) && $env->block->type != "media")
349
+ {
350
+ return $childQueries;
351
+ }
352
+
353
+ // plain old block, skip
354
+ if (empty($env->block->type)) {
355
+ return $this->multiplyMedia($env->parent, $childQueries);
356
+ }
357
+
358
+ $out = array();
359
+ $queries = $env->block->queries;
360
+ if (is_null($childQueries)) {
361
+ $out = $queries;
362
+ } else {
363
+ foreach ($queries as $parent) {
364
+ foreach ($childQueries as $child) {
365
+ $out[] = array_merge($parent, $child);
366
+ }
367
+ }
368
+ }
369
+
370
+ return $this->multiplyMedia($env->parent, $out);
371
+ }
372
+
373
+ protected function expandParentSelectors(&$tag, $replace) {
374
+ $parts = explode("$&$", $tag);
375
+ $count = 0;
376
+ foreach ($parts as &$part) {
377
+ $part = str_replace($this->parentSelector, $replace, $part, $c);
378
+ $count += $c;
379
+ }
380
+ $tag = implode($this->parentSelector, $parts);
381
+ return $count;
382
+ }
383
+
384
+ protected function findClosestSelectors() {
385
+ $env = $this->env;
386
+ $selectors = null;
387
+ while ($env !== null) {
388
+ if (isset($env->selectors)) {
389
+ $selectors = $env->selectors;
390
+ break;
391
+ }
392
+ $env = $env->parent;
393
+ }
394
+
395
+ return $selectors;
396
+ }
397
+
398
+
399
+ // multiply $selectors against the nearest selectors in env
400
+ protected function multiplySelectors($selectors) {
401
+ // find parent selectors
402
+
403
+ $parentSelectors = $this->findClosestSelectors();
404
+ if (is_null($parentSelectors)) {
405
+ // kill parent reference in top level selector
406
+ foreach ($selectors as &$s) {
407
+ $this->expandParentSelectors($s, "");
408
+ }
409
+
410
+ return $selectors;
411
+ }
412
+
413
+ $out = array();
414
+ foreach ($parentSelectors as $parent) {
415
+ foreach ($selectors as $child) {
416
+ $count = $this->expandParentSelectors($child, $parent);
417
+
418
+ // don't prepend the parent tag if & was used
419
+ if ($count > 0) {
420
+ $out[] = trim($child);
421
+ } else {
422
+ $out[] = trim($parent . ' ' . $child);
423
+ }
424
+ }
425
+ }
426
+
427
+ return $out;
428
+ }
429
+
430
+ // reduces selector expressions
431
+ protected function compileSelectors($selectors) {
432
+ $out = array();
433
+
434
+ foreach ($selectors as $s) {
435
+ if (is_array($s)) {
436
+ list(, $value) = $s;
437
+ $out[] = $this->compileValue($this->reduce($value));
438
+ } else {
439
+ $out[] = $s;
440
+ }
441
+ }
442
+
443
+ return $out;
444
+ }
445
+
446
+ protected function eq($left, $right) {
447
+ return $left == $right;
448
+ }
449
+
450
+ protected function patternMatch($block, $callingArgs) {
451
+ // match the guards if it has them
452
+ // any one of the groups must have all its guards pass for a match
453
+ if (!empty($block->guards)) {
454
+ $groupPassed = false;
455
+ foreach ($block->guards as $guardGroup) {
456
+ foreach ($guardGroup as $guard) {
457
+ $this->pushEnv();
458
+ $this->zipSetArgs($block->args, $callingArgs);
459
+
460
+ $negate = false;
461
+ if ($guard[0] == "negate") {
462
+ $guard = $guard[1];
463
+ $negate = true;
464
+ }
465
+
466
+ $passed = $this->reduce($guard) == self::$TRUE;
467
+ if ($negate) $passed = !$passed;
468
+
469
+ $this->popEnv();
470
+
471
+ if ($passed) {
472
+ $groupPassed = true;
473
+ } else {
474
+ $groupPassed = false;
475
+ break;
476
+ }
477
+ }
478
+
479
+ if ($groupPassed) break;
480
+ }
481
+
482
+ if (!$groupPassed) {
483
+ return false;
484
+ }
485
+ }
486
+
487
+ $numCalling = count($callingArgs);
488
+
489
+ if (empty($block->args)) {
490
+ return $block->isVararg || $numCalling == 0;
491
+ }
492
+
493
+ $i = -1; // no args
494
+ // try to match by arity or by argument literal
495
+ foreach ($block->args as $i => $arg) {
496
+ switch ($arg[0]) {
497
+ case "lit":
498
+ if (empty($callingArgs[$i]) || !$this->eq($arg[1], $callingArgs[$i])) {
499
+ return false;
500
+ }
501
+ break;
502
+ case "arg":
503
+ // no arg and no default value
504
+ if (!isset($callingArgs[$i]) && !isset($arg[2])) {
505
+ return false;
506
+ }
507
+ break;
508
+ case "rest":
509
+ $i--; // rest can be empty
510
+ break 2;
511
+ }
512
+ }
513
+
514
+ if ($block->isVararg) {
515
+ return true; // not having enough is handled above
516
+ } else {
517
+ $numMatched = $i + 1;
518
+ // greater than becuase default values always match
519
+ return $numMatched >= $numCalling;
520
+ }
521
+ }
522
+
523
+ protected function patternMatchAll($blocks, $callingArgs) {
524
+ $matches = null;
525
+ foreach ($blocks as $block) {
526
+ if ($this->patternMatch($block, $callingArgs)) {
527
+ $matches[] = $block;
528
+ }
529
+ }
530
+
531
+ return $matches;
532
+ }
533
+
534
+ // attempt to find blocks matched by path and args
535
+ protected function findBlocks($searchIn, $path, $args, $seen=array()) {
536
+ if ($searchIn == null) return null;
537
+ if (isset($seen[$searchIn->id])) return null;
538
+ $seen[$searchIn->id] = true;
539
+
540
+ $name = $path[0];
541
+
542
+ if (isset($searchIn->children[$name])) {
543
+ $blocks = $searchIn->children[$name];
544
+ if (count($path) == 1) {
545
+ $matches = $this->patternMatchAll($blocks, $args);
546
+ if (!empty($matches)) {
547
+ // This will return all blocks that match in the closest
548
+ // scope that has any matching block, like lessjs
549
+ return $matches;
550
+ }
551
+ } else {
552
+ $matches = array();
553
+ foreach ($blocks as $subBlock) {
554
+ $subMatches = $this->findBlocks($subBlock,
555
+ array_slice($path, 1), $args, $seen);
556
+
557
+ if (!is_null($subMatches)) {
558
+ foreach ($subMatches as $sm) {
559
+ $matches[] = $sm;
560
+ }
561
+ }
562
+ }
563
+
564
+ return count($matches) > 0 ? $matches : null;
565
+ }
566
+ }
567
+
568
+ if ($searchIn->parent === $searchIn) return null;
569
+ return $this->findBlocks($searchIn->parent, $path, $args, $seen);
570
+ }
571
+
572
+ // sets all argument names in $args to either the default value
573
+ // or the one passed in through $values
574
+ protected function zipSetArgs($args, $values) {
575
+ $i = 0;
576
+ $assignedValues = array();
577
+ foreach ($args as $a) {
578
+ if ($a[0] == "arg") {
579
+ if ($i < count($values) && !is_null($values[$i])) {
580
+ $value = $values[$i];
581
+ } elseif (isset($a[2])) {
582
+ $value = $a[2];
583
+ } else $value = null;
584
+
585
+ $value = $this->reduce($value);
586
+ $this->set($a[1], $value);
587
+ $assignedValues[] = $value;
588
+ }
589
+ $i++;
590
+ }
591
+
592
+ // check for a rest
593
+ $last = end($args);
594
+ if ($last[0] == "rest") {
595
+ $rest = array_slice($values, count($args) - 1);
596
+ $this->set($last[1], $this->reduce(array("list", " ", $rest)));
597
+ }
598
+
599
+ $this->env->arguments = $assignedValues;
600
+ }
601
+
602
+ // compile a prop and update $lines or $blocks appropriately
603
+ protected function compileProp($prop, $block, $out) {
604
+ // set error position context
605
+ $this->sourceLoc = isset($prop[-1]) ? $prop[-1] : -1;
606
+
607
+ switch ($prop[0]) {
608
+ case 'assign':
609
+ list(, $name, $value) = $prop;
610
+ if ($name[0] == $this->vPrefix) {
611
+ $this->set($name, $value);
612
+ } else {
613
+ $out->lines[] = $this->formatter->property($name,
614
+ $this->compileValue($this->reduce($value)));
615
+ }
616
+ break;
617
+ case 'block':
618
+ list(, $child) = $prop;
619
+ $this->compileBlock($child);
620
+ break;
621
+ case 'mixin':
622
+ list(, $path, $args, $suffix) = $prop;
623
+
624
+ $args = array_map(array($this, "reduce"), (array)$args);
625
+ $mixins = $this->findBlocks($block, $path, $args);
626
+
627
+ if ($mixins === null) {
628
+ // fwrite(STDERR,"failed to find block: ".implode(" > ", $path)."\n");
629
+ break; // throw error here??
630
+ }
631
+
632
+ foreach ($mixins as $mixin) {
633
+ $haveScope = false;
634
+ if (isset($mixin->parent->scope)) {
635
+ $haveScope = true;
636
+ $mixinParentEnv = $this->pushEnv();
637
+ $mixinParentEnv->storeParent = $mixin->parent->scope;
638
+ }
639
+
640
+ $haveArgs = false;
641
+ if (isset($mixin->args)) {
642
+ $haveArgs = true;
643
+ $this->pushEnv();
644
+ $this->zipSetArgs($mixin->args, $args);
645
+ }
646
+
647
+ $oldParent = $mixin->parent;
648
+ if ($mixin != $block) $mixin->parent = $block;
649
+
650
+ foreach ($this->sortProps($mixin->props) as $subProp) {
651
+ if ($suffix !== null &&
652
+ $subProp[0] == "assign" &&
653
+ is_string($subProp[1]) &&
654
+ $subProp[1]{0} != $this->vPrefix)
655
+ {
656
+ $subProp[2] = array(
657
+ 'list', ' ',
658
+ array($subProp[2], array('keyword', $suffix))
659
+ );
660
+ }
661
+
662
+ $this->compileProp($subProp, $mixin, $out);
663
+ }
664
+
665
+ $mixin->parent = $oldParent;
666
+
667
+ if ($haveArgs) $this->popEnv();
668
+ if ($haveScope) $this->popEnv();
669
+ }
670
+
671
+ break;
672
+ case 'raw':
673
+ $out->lines[] = $prop[1];
674
+ break;
675
+ case "directive":
676
+ list(, $name, $value) = $prop;
677
+ $out->lines[] = "@$name " . $this->compileValue($this->reduce($value)).';';
678
+ break;
679
+ case "comment":
680
+ $out->lines[] = $prop[1];
681
+ break;
682
+ case "import";
683
+ list(, $importPath, $importId) = $prop;
684
+ $importPath = $this->reduce($importPath);
685
+
686
+ if (!isset($this->env->imports)) {
687
+ $this->env->imports = array();
688
+ }
689
+
690
+ $result = $this->tryImport($importPath, $block, $out);
691
+
692
+ $this->env->imports[$importId] = $result === false ?
693
+ array(false, "@import " . $this->compileValue($importPath).";") :
694
+ $result;
695
+
696
+ break;
697
+ case "import_mixin":
698
+ list(,$importId) = $prop;
699
+ $import = $this->env->imports[$importId];
700
+ if ($import[0] === false) {
701
+ $out->lines[] = $import[1];
702
+ } else {
703
+ list(, $bottom, $parser, $importDir) = $import;
704
+ $this->compileImportedProps($bottom, $block, $out, $parser, $importDir);
705
+ }
706
+
707
+ break;
708
+ default:
709
+ $this->throwError("unknown op: {$prop[0]}\n");
710
+ }
711
+ }
712
+
713
+
714
+ /**
715
+ * Compiles a primitive value into a CSS property value.
716
+ *
717
+ * Values in lessphp are typed by being wrapped in arrays, their format is
718
+ * typically:
719
+ *
720
+ * array(type, contents [, additional_contents]*)
721
+ *
722
+ * The input is expected to be reduced. This function will not work on
723
+ * things like expressions and variables.
724
+ */
725
+ protected function compileValue($value) {
726
+ switch ($value[0]) {
727
+ case 'list':
728
+ // [1] - delimiter
729
+ // [2] - array of values
730
+ return implode($value[1], array_map(array($this, 'compileValue'), $value[2]));
731
+ case 'raw_color':
732
+ if (!empty($this->formatter->compressColors)) {
733
+ return $this->compileValue($this->coerceColor($value));
734
+ }
735
+ return $value[1];
736
+ case 'keyword':
737
+ // [1] - the keyword
738
+ return $value[1];
739
+ case 'number':
740
+ list(, $num, $unit) = $value;
741
+ // [1] - the number
742
+ // [2] - the unit
743
+ if ($this->numberPrecision !== null) {
744
+ $num = round($num, $this->numberPrecision);
745
+ }
746
+ return $num . $unit;
747
+ case 'string':
748
+ // [1] - contents of string (includes quotes)
749
+ list(, $delim, $content) = $value;
750
+ foreach ($content as &$part) {
751
+ if (is_array($part)) {
752
+ $part = $this->compileValue($part);
753
+ }
754
+ }
755
+ return $delim . implode($content) . $delim;
756
+ case 'color':
757
+ // [1] - red component (either number or a %)
758
+ // [2] - green component
759
+ // [3] - blue component
760
+ // [4] - optional alpha component
761
+ list(, $r, $g, $b) = $value;
762
+ $r = round($r);
763
+ $g = round($g);
764
+ $b = round($b);
765
+
766
+ if (count($value) == 5 && $value[4] != 1) { // rgba
767
+ return 'rgba('.$r.','.$g.','.$b.','.$value[4].')';
768
+ }
769
+
770
+ $h = sprintf("#%02x%02x%02x", $r, $g, $b);
771
+
772
+ if (!empty($this->formatter->compressColors)) {
773
+ // Converting hex color to short notation (e.g. #003399 to #039)
774
+ if ($h[1] === $h[2] && $h[3] === $h[4] && $h[5] === $h[6]) {
775
+ $h = '#' . $h[1] . $h[3] . $h[5];
776
+ }
777
+ }
778
+
779
+ return $h;
780
+
781
+ case 'function':
782
+ list(, $name, $args) = $value;
783
+ return $name.'('.$this->compileValue($args).')';
784
+ default: // assumed to be unit
785
+ $this->throwError("unknown value type: $value[0]");
786
+ }
787
+ }
788
+
789
+ protected function lib_isnumber($value) {
790
+ return $this->toBool($value[0] == "number");
791
+ }
792
+
793
+ protected function lib_isstring($value) {
794
+ return $this->toBool($value[0] == "string");
795
+ }
796
+
797
+ protected function lib_iscolor($value) {
798
+ return $this->toBool($this->coerceColor($value));
799
+ }
800
+
801
+ protected function lib_iskeyword($value) {
802
+ return $this->toBool($value[0] == "keyword");
803
+ }
804
+
805
+ protected function lib_ispixel($value) {
806
+ return $this->toBool($value[0] == "number" && $value[2] == "px");
807
+ }
808
+
809
+ protected function lib_ispercentage($value) {
810
+ return $this->toBool($value[0] == "number" && $value[2] == "%");
811
+ }
812
+
813
+ protected function lib_isem($value) {
814
+ return $this->toBool($value[0] == "number" && $value[2] == "em");
815
+ }
816
+
817
+ protected function lib_rgbahex($color) {
818
+ $color = $this->coerceColor($color);
819
+ if (is_null($color))
820
+ $this->throwError("color expected for rgbahex");
821
+
822
+ return sprintf("#%02x%02x%02x%02x",
823
+ isset($color[4]) ? $color[4]*255 : 255,
824
+ $color[1],$color[2], $color[3]);
825
+ }
826
+
827
+ protected function lib_argb($color){
828
+ return $this->lib_rgbahex($color);
829
+ }
830
+
831
+ // utility func to unquote a string
832
+ protected function lib_e($arg) {
833
+ switch ($arg[0]) {
834
+ case "list":
835
+ $items = $arg[2];
836
+ if (isset($items[0])) {
837
+ return $this->lib_e($items[0]);
838
+ }
839
+ return self::$defaultValue;
840
+ case "string":
841
+ $arg[1] = "";
842
+ return $arg;
843
+ case "keyword":
844
+ return $arg;
845
+ default:
846
+ return array("keyword", $this->compileValue($arg));
847
+ }
848
+ }
849
+
850
+ protected function lib__sprintf($args) {
851
+ if ($args[0] != "list") return $args;
852
+ $values = $args[2];
853
+ $string = array_shift($values);
854
+ $template = $this->compileValue($this->lib_e($string));
855
+
856
+ $i = 0;
857
+ if (preg_match_all('/%[dsa]/', $template, $m)) {
858
+ foreach ($m[0] as $match) {
859
+ $val = isset($values[$i]) ?
860
+ $this->reduce($values[$i]) : array('keyword', '');
861
+
862
+ // lessjs compat, renders fully expanded color, not raw color
863
+ if ($color = $this->coerceColor($val)) {
864
+ $val = $color;
865
+ }
866
+
867
+ $i++;
868
+ $rep = $this->compileValue($this->lib_e($val));
869
+ $template = preg_replace('/'.self::preg_quote($match).'/',
870
+ $rep, $template, 1);
871
+ }
872
+ }
873
+
874
+ $d = $string[0] == "string" ? $string[1] : '"';
875
+ return array("string", $d, array($template));
876
+ }
877
+
878
+ protected function lib_floor($arg) {
879
+ $value = $this->assertNumber($arg);
880
+ return array("number", floor($value), $arg[2]);
881
+ }
882
+
883
+ protected function lib_ceil($arg) {
884
+ $value = $this->assertNumber($arg);
885
+ return array("number", ceil($value), $arg[2]);
886
+ }
887
+
888
+ protected function lib_round($arg) {
889
+ $value = $this->assertNumber($arg);
890
+ return array("number", round($value), $arg[2]);
891
+ }
892
+
893
+ /**
894
+ * Helper function to get arguments for color manipulation functions.
895
+ * takes a list that contains a color like thing and a percentage
896
+ */
897
+ protected function colorArgs($args) {
898
+ if ($args[0] != 'list' || count($args[2]) < 2) {
899
+ return array(array('color', 0, 0, 0), 0);
900
+ }
901
+ list($color, $delta) = $args[2];
902
+ $color = $this->assertColor($color);
903
+ $delta = floatval($delta[1]);
904
+
905
+ return array($color, $delta);
906
+ }
907
+
908
+ protected function lib_darken($args) {
909
+ list($color, $delta) = $this->colorArgs($args);
910
+
911
+ $hsl = $this->toHSL($color);
912
+ $hsl[3] = $this->clamp($hsl[3] - $delta, 100);
913
+ return $this->toRGB($hsl);
914
+ }
915
+
916
+ protected function lib_lighten($args) {
917
+ list($color, $delta) = $this->colorArgs($args);
918
+
919
+ $hsl = $this->toHSL($color);
920
+ $hsl[3] = $this->clamp($hsl[3] + $delta, 100);
921
+ return $this->toRGB($hsl);
922
+ }
923
+
924
+ protected function lib_saturate($args) {
925
+ list($color, $delta) = $this->colorArgs($args);
926
+
927
+ $hsl = $this->toHSL($color);
928
+ $hsl[2] = $this->clamp($hsl[2] + $delta, 100);
929
+ return $this->toRGB($hsl);
930
+ }
931
+
932
+ protected function lib_desaturate($args) {
933
+ list($color, $delta) = $this->colorArgs($args);
934
+
935
+ $hsl = $this->toHSL($color);
936
+ $hsl[2] = $this->clamp($hsl[2] - $delta, 100);
937
+ return $this->toRGB($hsl);
938
+ }
939
+
940
+ protected function lib_spin($args) {
941
+ list($color, $delta) = $this->colorArgs($args);
942
+
943
+ $hsl = $this->toHSL($color);
944
+
945
+ $hsl[1] = $hsl[1] + $delta % 360;
946
+ if ($hsl[1] < 0) $hsl[1] += 360;
947
+
948
+ return $this->toRGB($hsl);
949
+ }
950
+
951
+ protected function lib_fadeout($args) {
952
+ list($color, $delta) = $this->colorArgs($args);
953
+ $color[4] = $this->clamp((isset($color[4]) ? $color[4] : 1) - $delta/100);
954
+ return $color;
955
+ }
956
+
957
+ protected function lib_fadein($args) {
958
+ list($color, $delta) = $this->colorArgs($args);
959
+ $color[4] = $this->clamp((isset($color[4]) ? $color[4] : 1) + $delta/100);
960
+ return $color;
961
+ }
962
+
963
+ protected function lib_hue($color) {
964
+ $hsl = $this->toHSL($this->assertColor($color));
965
+ return round($hsl[1]);
966
+ }
967
+
968
+ protected function lib_saturation($color) {
969
+ $hsl = $this->toHSL($this->assertColor($color));
970
+ return round($hsl[2]);
971
+ }
972
+
973
+ protected function lib_lightness($color) {
974
+ $hsl = $this->toHSL($this->assertColor($color));
975
+ return round($hsl[3]);
976
+ }
977
+
978
+ // get the alpha of a color
979
+ // defaults to 1 for non-colors or colors without an alpha
980
+ protected function lib_alpha($value) {
981
+ if (!is_null($color = $this->coerceColor($value))) {
982
+ return isset($color[4]) ? $color[4] : 1;
983
+ }
984
+ }
985
+
986
+ // set the alpha of the color
987
+ protected function lib_fade($args) {
988
+ list($color, $alpha) = $this->colorArgs($args);
989
+ $color[4] = $this->clamp($alpha / 100.0);
990
+ return $color;
991
+ }
992
+
993
+ protected function lib_percentage($arg) {
994
+ $num = $this->assertNumber($arg);
995
+ return array("number", $num*100, "%");
996
+ }
997
+
998
+ // mixes two colors by weight
999
+ // mix(@color1, @color2, @weight);
1000
+ // http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#mix-instance_method
1001
+ protected function lib_mix($args) {
1002
+ if ($args[0] != "list" || count($args[2]) < 3)
1003
+ $this->throwError("mix expects (color1, color2, weight)");
1004
+
1005
+ list($first, $second, $weight) = $args[2];
1006
+ $first = $this->assertColor($first);
1007
+ $second = $this->assertColor($second);
1008
+
1009
+ $first_a = $this->lib_alpha($first);
1010
+ $second_a = $this->lib_alpha($second);
1011
+ $weight = $weight[1] / 100.0;
1012
+
1013
+ $w = $weight * 2 - 1;
1014
+ $a = $first_a - $second_a;
1015
+
1016
+ $w1 = (($w * $a == -1 ? $w : ($w + $a)/(1 + $w * $a)) + 1) / 2.0;
1017
+ $w2 = 1.0 - $w1;
1018
+
1019
+ $new = array('color',
1020
+ $w1 * $first[1] + $w2 * $second[1],
1021
+ $w1 * $first[2] + $w2 * $second[2],
1022
+ $w1 * $first[3] + $w2 * $second[3],
1023
+ );
1024
+
1025
+ if ($first_a != 1.0 || $second_a != 1.0) {
1026
+ $new[] = $first_a * $weight + $second_a * ($weight - 1);
1027
+ }
1028
+
1029
+ return $this->fixColor($new);
1030
+ }
1031
+
1032
+ protected function assertColor($value, $error = "expected color value") {
1033
+ $color = $this->coerceColor($value);
1034
+ if (is_null($color)) $this->throwError($error);
1035
+ return $color;
1036
+ }
1037
+
1038
+ protected function assertNumber($value, $error = "expecting number") {
1039
+ if ($value[0] == "number") return $value[1];
1040
+ $this->throwError($error);
1041
+ }
1042
+
1043
+ protected function toHSL($color) {
1044
+ if ($color[0] == 'hsl') return $color;
1045
+
1046
+ $r = $color[1] / 255;
1047
+ $g = $color[2] / 255;
1048
+ $b = $color[3] / 255;
1049
+
1050
+ $min = min($r, $g, $b);
1051
+ $max = max($r, $g, $b);
1052
+
1053
+ $L = ($min + $max) / 2;
1054
+ if ($min == $max) {
1055
+ $S = $H = 0;
1056
+ } else {
1057
+ if ($L < 0.5)
1058
+ $S = ($max - $min)/($max + $min);
1059
+ else
1060
+ $S = ($max - $min)/(2.0 - $max - $min);
1061
+
1062
+ if ($r == $max) $H = ($g - $b)/($max - $min);
1063
+ elseif ($g == $max) $H = 2.0 + ($b - $r)/($max - $min);
1064
+ elseif ($b == $max) $H = 4.0 + ($r - $g)/($max - $min);
1065
+
1066
+ }
1067
+
1068
+ $out = array('hsl',
1069
+ ($H < 0 ? $H + 6 : $H)*60,
1070
+ $S*100,
1071
+ $L*100,
1072
+ );
1073
+
1074
+ if (count($color) > 4) $out[] = $color[4]; // copy alpha
1075
+ return $out;
1076
+ }
1077
+
1078
+ protected function toRGB_helper($comp, $temp1, $temp2) {
1079
+ if ($comp < 0) $comp += 1.0;
1080
+ elseif ($comp > 1) $comp -= 1.0;
1081
+
1082
+ if (6 * $comp < 1) return $temp1 + ($temp2 - $temp1) * 6 * $comp;
1083
+ if (2 * $comp < 1) return $temp2;
1084
+ if (3 * $comp < 2) return $temp1 + ($temp2 - $temp1)*((2/3) - $comp) * 6;
1085
+
1086
+ return $temp1;
1087
+ }
1088
+
1089
+ /**
1090
+ * Converts a hsl array into a color value in rgb.
1091
+ * Expects H to be in range of 0 to 360, S and L in 0 to 100
1092
+ */
1093
+ protected function toRGB($color) {
1094
+ if ($color == 'color') return $color;
1095
+
1096
+ $H = $color[1] / 360;
1097
+ $S = $color[2] / 100;
1098
+ $L = $color[3] / 100;
1099
+
1100
+ if ($S == 0) {
1101
+ $r = $g = $b = $L;
1102
+ } else {
1103
+ $temp2 = $L < 0.5 ?
1104
+ $L*(1.0 + $S) :
1105
+ $L + $S - $L * $S;
1106
+
1107
+ $temp1 = 2.0 * $L - $temp2;
1108
+
1109
+ $r = $this->toRGB_helper($H + 1/3, $temp1, $temp2);
1110
+ $g = $this->toRGB_helper($H, $temp1, $temp2);
1111
+ $b = $this->toRGB_helper($H - 1/3, $temp1, $temp2);
1112
+ }
1113
+
1114
+ // $out = array('color', round($r*255), round($g*255), round($b*255));
1115
+ $out = array('color', $r*255, $g*255, $b*255);
1116
+ if (count($color) > 4) $out[] = $color[4]; // copy alpha
1117
+ return $out;
1118
+ }
1119
+
1120
+ protected function clamp($v, $max = 1, $min = 0) {
1121
+ return min($max, max($min, $v));
1122
+ }
1123
+
1124
+ /**
1125
+ * Convert the rgb, rgba, hsl color literals of function type
1126
+ * as returned by the parser into values of color type.
1127
+ */
1128
+ protected function funcToColor($func) {
1129
+ $fname = $func[1];
1130
+ if ($func[2][0] != 'list') return false; // need a list of arguments
1131
+ $rawComponents = $func[2][2];
1132
+
1133
+ if ($fname == 'hsl' || $fname == 'hsla') {
1134
+ $hsl = array('hsl');
1135
+ $i = 0;
1136
+ foreach ($rawComponents as $c) {
1137
+ $val = $this->reduce($c);
1138
+ $val = isset($val[1]) ? floatval($val[1]) : 0;
1139
+
1140
+ if ($i == 0) $clamp = 360;
1141
+ elseif ($i < 3) $clamp = 100;
1142
+ else $clamp = 1;
1143
+
1144
+ $hsl[] = $this->clamp($val, $clamp);
1145
+ $i++;
1146
+ }
1147
+
1148
+ while (count($hsl) < 4) $hsl[] = 0;
1149
+ return $this->toRGB($hsl);
1150
+
1151
+ } elseif ($fname == 'rgb' || $fname == 'rgba') {
1152
+ $components = array();
1153
+ $i = 1;
1154
+ foreach ($rawComponents as $c) {
1155
+ $c = $this->reduce($c);
1156
+ if ($i < 4) {
1157
+ if ($c[0] == "number" && $c[2] == "%") {
1158
+ $components[] = 255 * ($c[1] / 100);
1159
+ } else {
1160
+ $components[] = floatval($c[1]);
1161
+ }
1162
+ } elseif ($i == 4) {
1163
+ if ($c[0] == "number" && $c[2] == "%") {
1164
+ $components[] = 1.0 * ($c[1] / 100);
1165
+ } else {
1166
+ $components[] = floatval($c[1]);
1167
+ }
1168
+ } else break;
1169
+
1170
+ $i++;
1171
+ }
1172
+ while (count($components) < 3) $components[] = 0;
1173
+ array_unshift($components, 'color');
1174
+ return $this->fixColor($components);
1175
+ }
1176
+
1177
+ return false;
1178
+ }
1179
+
1180
+ protected function reduce($value, $forExpression = false) {
1181
+ switch ($value[0]) {
1182
+ case "variable":
1183
+ $key = $value[1];
1184
+ if (is_array($key)) {
1185
+ $key = $this->reduce($key);
1186
+ $key = $this->vPrefix . $this->compileValue($this->lib_e($key));
1187
+ }
1188
+
1189
+ $seen =& $this->env->seenNames;
1190
+
1191
+ if (!empty($seen[$key])) {
1192
+ $this->throwError("infinite loop detected: $key");
1193
+ }
1194
+
1195
+ $seen[$key] = true;
1196
+ $out = $this->reduce($this->get($key, self::$defaultValue));
1197
+ $seen[$key] = false;
1198
+ return $out;
1199
+ case "list":
1200
+ foreach ($value[2] as &$item) {
1201
+ $item = $this->reduce($item, $forExpression);
1202
+ }
1203
+ return $value;
1204
+ case "expression":
1205
+ return $this->evaluate($value);
1206
+ case "string":
1207
+ foreach ($value[2] as &$part) {
1208
+ if (is_array($part)) {
1209
+ $strip = $part[0] == "variable";
1210
+ $part = $this->reduce($part);
1211
+ if ($strip) $part = $this->lib_e($part);
1212
+ }
1213
+ }
1214
+ return $value;
1215
+ case "escape":
1216
+ list(,$inner) = $value;
1217
+ return $this->lib_e($this->reduce($inner));
1218
+ case "function":
1219
+ $color = $this->funcToColor($value);
1220
+ if ($color) return $color;
1221
+
1222
+ list(, $name, $args) = $value;
1223
+ if ($name == "%") $name = "_sprintf";
1224
+ $f = isset($this->libFunctions[$name]) ?
1225
+ $this->libFunctions[$name] : array($this, 'lib_'.$name);
1226
+
1227
+ if (is_callable($f)) {
1228
+ if ($args[0] == 'list')
1229
+ $args = self::compressList($args[2], $args[1]);
1230
+
1231
+ $ret = call_user_func($f, $this->reduce($args, true), $this);
1232
+
1233
+ if (is_null($ret)) {
1234
+ return array("string", "", array(
1235
+ $name, "(", $args, ")"
1236
+ ));
1237
+ }
1238
+
1239
+ // convert to a typed value if the result is a php primitive
1240
+ if (is_numeric($ret)) $ret = array('number', $ret, "");
1241
+ elseif (!is_array($ret)) $ret = array('keyword', $ret);
1242
+
1243
+ return $ret;
1244
+ }
1245
+
1246
+ // plain function, reduce args
1247
+ $value[2] = $this->reduce($value[2]);
1248
+ return $value;
1249
+ case "unary":
1250
+ list(, $op, $exp) = $value;
1251
+ $exp = $this->reduce($exp);
1252
+
1253
+ if ($exp[0] == "number") {
1254
+ switch ($op) {
1255
+ case "+":
1256
+ return $exp;
1257
+ case "-":
1258
+ $exp[1] *= -1;
1259
+ return $exp;
1260
+ }
1261
+ }
1262
+ return array("string", "", array($op, $exp));
1263
+ }
1264
+
1265
+ if ($forExpression) {
1266
+ switch ($value[0]) {
1267
+ case "keyword":
1268
+ if ($color = $this->coerceColor($value)) {
1269
+ return $color;
1270
+ }
1271
+ break;
1272
+ case "raw_color":
1273
+ return $this->coerceColor($value);
1274
+ }
1275
+ }
1276
+
1277
+ return $value;
1278
+ }
1279
+
1280
+
1281
+ // coerce a value for use in color operation
1282
+ protected function coerceColor($value) {
1283
+ switch($value[0]) {
1284
+ case 'color': return $value;
1285
+ case 'raw_color':
1286
+ $c = array("color", 0, 0, 0);
1287
+ $colorStr = substr($value[1], 1);
1288
+ $num = hexdec($colorStr);
1289
+ $width = strlen($colorStr) == 3 ? 16 : 256;
1290
+
1291
+ for ($i = 3; $i > 0; $i--) { // 3 2 1
1292
+ $t = $num % $width;
1293
+ $num /= $width;
1294
+
1295
+ $c[$i] = $t * (256/$width) + $t * floor(16/$width);
1296
+ }
1297
+
1298
+ return $c;
1299
+ case 'keyword':
1300
+ $name = $value[1];
1301
+ if (isset(self::$cssColors[$name])) {
1302
+ list($r, $g, $b) = explode(',', self::$cssColors[$name]);
1303
+ return array('color', $r, $g, $b);
1304
+ }
1305
+ return null;
1306
+ }
1307
+ }
1308
+
1309
+ // make something string like into a string
1310
+ protected function coerceString($value) {
1311
+ switch ($value[0]) {
1312
+ case "string":
1313
+ return $value;
1314
+ case "keyword":
1315
+ return array("string", "", array($value[1]));
1316
+ }
1317
+ return null;
1318
+ }
1319
+
1320
+ // turn list of length 1 into value type
1321
+ protected function flattenList($value) {
1322
+ if ($value[0] == "list" && count($value[2]) == 1) {
1323
+ return $this->flattenList($value[2][0]);
1324
+ }
1325
+ return $value;
1326
+ }
1327
+
1328
+ protected function toBool($a) {
1329
+ if ($a) return self::$TRUE;
1330
+ else return self::$FALSE;
1331
+ }
1332
+
1333
+ // evaluate an expression
1334
+ protected function evaluate($exp) {
1335
+ list(, $op, $left, $right, $whiteBefore, $whiteAfter) = $exp;
1336
+
1337
+ $left = $this->reduce($left, true);
1338
+ $right = $this->reduce($right, true);
1339
+
1340
+ if ($leftColor = $this->coerceColor($left)) {
1341
+ $left = $leftColor;
1342
+ }
1343
+
1344
+ if ($rightColor = $this->coerceColor($right)) {
1345
+ $right = $rightColor;
1346
+ }
1347
+
1348
+ $ltype = $left[0];
1349
+ $rtype = $right[0];
1350
+
1351
+ // operators that work on all types
1352
+ if ($op == "and") {
1353
+ return $this->toBool($left == self::$TRUE && $right == self::$TRUE);
1354
+ }
1355
+
1356
+ if ($op == "=") {
1357
+ return $this->toBool($this->eq($left, $right) );
1358
+ }
1359
+
1360
+ if ($op == "+" && !is_null($str = $this->stringConcatenate($left, $right))) {
1361
+ return $str;
1362
+ }
1363
+
1364
+ // type based operators
1365
+ $fname = "op_${ltype}_${rtype}";
1366
+ if (is_callable(array($this, $fname))) {
1367
+ $out = $this->$fname($op, $left, $right);
1368
+ if (!is_null($out)) return $out;
1369
+ }
1370
+
1371
+ // make the expression look it did before being parsed
1372
+ $paddedOp = $op;
1373
+ if ($whiteBefore) $paddedOp = " " . $paddedOp;
1374
+ if ($whiteAfter) $paddedOp .= " ";
1375
+
1376
+ return array("string", "", array($left, $paddedOp, $right));
1377
+ }
1378
+
1379
+ protected function stringConcatenate($left, $right) {
1380
+ if ($strLeft = $this->coerceString($left)) {
1381
+ if ($right[0] == "string") {
1382
+ $right[1] = "";
1383
+ }
1384
+ $strLeft[2][] = $right;
1385
+ return $strLeft;
1386
+ }
1387
+
1388
+ if ($strRight = $this->coerceString($right)) {
1389
+ array_unshift($strRight[2], $left);
1390
+ return $strRight;
1391
+ }
1392
+ }
1393
+
1394
+
1395
+ // make sure a color's components don't go out of bounds
1396
+ protected function fixColor($c) {
1397
+ foreach (range(1, 3) as $i) {
1398
+ if ($c[$i] < 0) $c[$i] = 0;
1399
+ if ($c[$i] > 255) $c[$i] = 255;
1400
+ }
1401
+
1402
+ return $c;
1403
+ }
1404
+
1405
+ protected function op_number_color($op, $lft, $rgt) {
1406
+ if ($op == '+' || $op == '*') {
1407
+ return $this->op_color_number($op, $rgt, $lft);
1408
+ }
1409
+ }
1410
+
1411
+ protected function op_color_number($op, $lft, $rgt) {
1412
+ if ($rgt[0] == '%') $rgt[1] /= 100;
1413
+
1414
+ return $this->op_color_color($op, $lft,
1415
+ array_fill(1, count($lft) - 1, $rgt[1]));
1416
+ }
1417
+
1418
+ protected function op_color_color($op, $left, $right) {
1419
+ $out = array('color');
1420
+ $max = count($left) > count($right) ? count($left) : count($right);
1421
+ foreach (range(1, $max - 1) as $i) {
1422
+ $lval = isset($left[$i]) ? $left[$i] : 0;
1423
+ $rval = isset($right[$i]) ? $right[$i] : 0;
1424
+ switch ($op) {
1425
+ case '+':
1426
+ $out[] = $lval + $rval;
1427
+ break;
1428
+ case '-':
1429
+ $out[] = $lval - $rval;
1430
+ break;
1431
+ case '*':
1432
+ $out[] = $lval * $rval;
1433
+ break;
1434
+ case '%':
1435
+ $out[] = $lval % $rval;
1436
+ break;
1437
+ case '/':
1438
+ if ($rval == 0) $this->throwError("evaluate error: can't divide by zero");
1439
+ $out[] = $lval / $rval;
1440
+ break;
1441
+ default:
1442
+ $this->throwError('evaluate error: color op number failed on op '.$op);
1443
+ }
1444
+ }
1445
+ return $this->fixColor($out);
1446
+ }
1447
+
1448
+ // operator on two numbers
1449
+ protected function op_number_number($op, $left, $right) {
1450
+ $unit = empty($left[2]) ? $right[2] : $left[2];
1451
+
1452
+ $value = 0;
1453
+ switch ($op) {
1454
+ case '+':
1455
+ $value = $left[1] + $right[1];
1456
+ break;
1457
+ case '*':
1458
+ $value = $left[1] * $right[1];
1459
+ break;
1460
+ case '-':
1461
+ $value = $left[1] - $right[1];
1462
+ break;
1463
+ case '%':
1464
+ $value = $left[1] % $right[1];
1465
+ break;
1466
+ case '/':
1467
+ if ($right[1] == 0) $this->throwError('parse error: divide by zero');
1468
+ $value = $left[1] / $right[1];
1469
+ break;
1470
+ case '<':
1471
+ return $this->toBool($left[1] < $right[1]);
1472
+ case '>':
1473
+ return $this->toBool($left[1] > $right[1]);
1474
+ case '>=':
1475
+ return $this->toBool($left[1] >= $right[1]);
1476
+ case '=<':
1477
+ return $this->toBool($left[1] <= $right[1]);
1478
+ default:
1479
+ $this->throwError('parse error: unknown number operator: '.$op);
1480
+ }
1481
+
1482
+ return array("number", $value, $unit);
1483
+ }
1484
+
1485
+
1486
+ /* environment functions */
1487
+
1488
+ protected function makeOutputBlock($type, $selectors = null) {
1489
+ $b = new stdclass;
1490
+ $b->lines = array();
1491
+ $b->children = array();
1492
+ $b->selectors = $selectors;
1493
+ $b->type = $type;
1494
+ $b->parent = $this->scope;
1495
+ return $b;
1496
+ }
1497
+
1498
+ // the state of execution
1499
+ protected function pushEnv($block = null) {
1500
+ $e = new stdclass;
1501
+ $e->parent = $this->env;
1502
+ $e->store = array();
1503
+ $e->block = $block;
1504
+
1505
+ $this->env = $e;
1506
+ return $e;
1507
+ }
1508
+
1509
+ // pop something off the stack
1510
+ protected function popEnv() {
1511
+ $old = $this->env;
1512
+ $this->env = $this->env->parent;
1513
+ return $old;
1514
+ }
1515
+
1516
+ // set something in the current env
1517
+ protected function set($name, $value) {
1518
+ $this->env->store[$name] = $value;
1519
+ }
1520
+
1521
+
1522
+ // get the highest occurrence entry for a name
1523
+ protected function get($name, $default=null) {
1524
+ $current = $this->env;
1525
+
1526
+ $isArguments = $name == $this->vPrefix . 'arguments';
1527
+ while ($current) {
1528
+ if ($isArguments && isset($current->arguments)) {
1529
+ return array('list', ' ', $current->arguments);
1530
+ }
1531
+
1532
+ if (isset($current->store[$name]))
1533
+ return $current->store[$name];
1534
+ else {
1535
+ $current = isset($current->storeParent) ?
1536
+ $current->storeParent : $current->parent;
1537
+ }
1538
+ }
1539
+
1540
+ return $default;
1541
+ }
1542
+
1543
+ // inject array of unparsed strings into environment as variables
1544
+ protected function injectVariables($args) {
1545
+ $this->pushEnv();
1546
+ $parser = new seed_csp4_lessc_parser($this, __METHOD__);
1547
+ foreach ($args as $name => $strValue) {
1548
+ if ($name{0} != '@') $name = '@'.$name;
1549
+ $parser->count = 0;
1550
+ $parser->buffer = (string)$strValue;
1551
+ if (!$parser->propertyValue($value)) {
1552
+ throw new Exception("failed to parse passed in variable $name: $strValue");
1553
+ }
1554
+
1555
+ $this->set($name, $value);
1556
+ }
1557
+ }
1558
+
1559
+ /**
1560
+ * Initialize any static state, can initialize parser for a file
1561
+ * $opts isn't used yet
1562
+ */
1563
+ public function __construct($fname = null) {
1564
+ if ($fname !== null) {
1565
+ // used for deprecated parse method
1566
+ $this->_parseFile = $fname;
1567
+ }
1568
+ }
1569
+
1570
+ public function compile($string, $name = null) {
1571
+ $locale = setlocale(LC_NUMERIC, 0);
1572
+ setlocale(LC_NUMERIC, "C");
1573
+
1574
+ $this->parser = $this->makeParser($name);
1575
+ $root = $this->parser->parse($string);
1576
+
1577
+ $this->env = null;
1578
+ $this->scope = null;
1579
+
1580
+ $this->formatter = $this->newFormatter();
1581
+
1582
+ if (!empty($this->registeredVars)) {
1583
+ $this->injectVariables($this->registeredVars);
1584
+ }
1585
+
1586
+ $this->sourceParser = $this->parser; // used for error messages
1587
+ $this->compileBlock($root);
1588
+
1589
+ ob_start();
1590
+ $this->formatter->block($this->scope);
1591
+ $out = ob_get_clean();
1592
+ setlocale(LC_NUMERIC, $locale);
1593
+ return $out;
1594
+ }
1595
+
1596
+ public function compileFile($fname, $outFname = null) {
1597
+ if (!is_readable($fname)) {
1598
+ throw new Exception('load error: failed to find '.$fname);
1599
+ }
1600
+
1601
+ $pi = pathinfo($fname);
1602
+
1603
+ $oldImport = $this->importDir;
1604
+
1605
+ $this->importDir = (array)$this->importDir;
1606
+ $this->importDir[] = $pi['dirname'].'/';
1607
+
1608
+ $this->allParsedFiles = array();
1609
+ $this->addParsedFile($fname);
1610
+
1611
+ $out = $this->compile(file_get_contents($fname), $fname);
1612
+
1613
+ $this->importDir = $oldImport;
1614
+
1615
+ if ($outFname !== null) {
1616
+ return file_put_contents($outFname, $out);
1617
+ }
1618
+
1619
+ return $out;
1620
+ }
1621
+
1622
+ // compile only if changed input has changed or output doesn't exist
1623
+ public function checkedCompile($in, $out) {
1624
+ if (!is_file($out) || filemtime($in) > filemtime($out)) {
1625
+ $this->compileFile($in, $out);
1626
+ return true;
1627
+ }
1628
+ return false;
1629
+ }
1630
+
1631
+ /**
1632
+ * Execute lessphp on a .less file or a lessphp cache structure
1633
+ *
1634
+ * The lessphp cache structure contains information about a specific
1635
+ * less file having been parsed. It can be used as a hint for future
1636
+ * calls to determine whether or not a rebuild is required.
1637
+ *
1638
+ * The cache structure contains two important keys that may be used
1639
+ * externally:
1640
+ *
1641
+ * compiled: The final compiled CSS
1642
+ * updated: The time (in seconds) the CSS was last compiled
1643
+ *
1644
+ * The cache structure is a plain-ol' PHP associative array and can
1645
+ * be serialized and unserialized without a hitch.
1646
+ *
1647
+ * @param mixed $in Input
1648
+ * @param bool $force Force rebuild?
1649
+ * @return array lessphp cache structure
1650
+ */
1651
+ public function cachedCompile($in, $force = false) {
1652
+ // assume no root
1653
+ $root = null;
1654
+
1655
+ if (is_string($in)) {
1656
+ $root = $in;
1657
+ } elseif (is_array($in) and isset($in['root'])) {
1658
+ if ($force or ! isset($in['files'])) {
1659
+ // If we are forcing a recompile or if for some reason the
1660
+ // structure does not contain any file information we should
1661
+ // specify the root to trigger a rebuild.
1662
+ $root = $in['root'];
1663
+ } elseif (isset($in['files']) and is_array($in['files'])) {
1664
+ foreach ($in['files'] as $fname => $ftime ) {
1665
+ if (!file_exists($fname) or filemtime($fname) > $ftime) {
1666
+ // One of the files we knew about previously has changed
1667
+ // so we should look at our incoming root again.
1668
+ $root = $in['root'];
1669
+ break;
1670
+ }
1671
+ }
1672
+ }
1673
+ } else {
1674
+ // TODO: Throw an exception? We got neither a string nor something
1675
+ // that looks like a compatible lessphp cache structure.
1676
+ return null;
1677
+ }
1678
+
1679
+ if ($root !== null) {
1680
+ // If we have a root value which means we should rebuild.
1681
+ $out = array();
1682
+ $out['root'] = $root;
1683
+ $out['compiled'] = $this->compileFile($root);
1684
+ $out['files'] = $this->allParsedFiles();
1685
+ $out['updated'] = time();
1686
+ return $out;
1687
+ } else {
1688
+ // No changes, pass back the structure
1689
+ // we were given initially.
1690
+ return $in;
1691
+ }
1692
+
1693
+ }
1694
+
1695
+ // parse and compile buffer
1696
+ // This is deprecated
1697
+ public function parse($str = null, $initialVariables = null) {
1698
+ if (is_array($str)) {
1699
+ $initialVariables = $str;
1700
+ $str = null;
1701
+ }
1702
+
1703
+ $oldVars = $this->registeredVars;
1704
+ if ($initialVariables !== null) {
1705
+ $this->setVariables($initialVariables);
1706
+ }
1707
+
1708
+ if ($str == null) {
1709
+ if (empty($this->_parseFile)) {
1710
+ throw new exception("nothing to parse");
1711
+ }
1712
+
1713
+ $out = $this->compileFile($this->_parseFile);
1714
+ } else {
1715
+ $out = $this->compile($str);
1716
+ }
1717
+
1718
+ $this->registeredVars = $oldVars;
1719
+ return $out;
1720
+ }
1721
+
1722
+ protected function makeParser($name) {
1723
+ $parser = new seed_csp4_lessc_parser($this, $name);
1724
+ $parser->writeComments = $this->preserveComments;
1725
+
1726
+ return $parser;
1727
+ }
1728
+
1729
+ public function setFormatter($name) {
1730
+ $this->formatterName = $name;
1731
+ }
1732
+
1733
+ protected function newFormatter() {
1734
+ $className = "seed_csp4_lessc_formatter_lessjs";
1735
+ if (!empty($this->formatterName)) {
1736
+ if (!is_string($this->formatterName))
1737
+ return $this->formatterName;
1738
+ $className = "seed_csp4_lessc_formatter_$this->formatterName";
1739
+ }
1740
+
1741
+ return new $className;
1742
+ }
1743
+
1744
+ public function setPreserveComments($preserve) {
1745
+ $this->preserveComments = $preserve;
1746
+ }
1747
+
1748
+ public function registerFunction($name, $func) {
1749
+ $this->libFunctions[$name] = $func;
1750
+ }
1751
+
1752
+ public function unregisterFunction($name) {
1753
+ unset($this->libFunctions[$name]);
1754
+ }
1755
+
1756
+ public function setVariables($variables) {
1757
+ $this->registeredVars = array_merge($this->registeredVars, $variables);
1758
+ }
1759
+
1760
+ public function unsetVariable($name) {
1761
+ unset($this->registeredVars[$name]);
1762
+ }
1763
+
1764
+ public function setImportDir($dirs) {
1765
+ $this->importDir = (array)$dirs;
1766
+ }
1767
+
1768
+ public function addImportDir($dir) {
1769
+ $this->importDir = (array)$this->importDir;
1770
+ $this->importDir[] = $dir;
1771
+ }
1772
+
1773
+ public function allParsedFiles() {
1774
+ return $this->allParsedFiles;
1775
+ }
1776
+
1777
+ protected function addParsedFile($file) {
1778
+ $this->allParsedFiles[realpath($file)] = filemtime($file);
1779
+ }
1780
+
1781
+ /**
1782
+ * Uses the current value of $this->count to show line and line number
1783
+ */
1784
+ protected function throwError($msg = null) {
1785
+ if ($this->sourceLoc >= 0) {
1786
+ $this->sourceParser->throwError($msg, $this->sourceLoc);
1787
+ }
1788
+ throw new exception($msg);
1789
+ }
1790
+
1791
+ // compile file $in to file $out if $in is newer than $out
1792
+ // returns true when it compiles, false otherwise
1793
+ public static function ccompile($in, $out, $less = null) {
1794
+ if ($less === null) {
1795
+ $less = new self;
1796
+ }
1797
+ return $less->checkedCompile($in, $out);
1798
+ }
1799
+
1800
+ public static function cexecute($in, $force = false, $less = null) {
1801
+ if ($less === null) {
1802
+ $less = new self;
1803
+ }
1804
+ return $less->cachedCompile($in, $force);
1805
+ }
1806
+
1807
+ static protected $cssColors = array(
1808
+ 'aliceblue' => '240,248,255',
1809
+ 'antiquewhite' => '250,235,215',
1810
+ 'aqua' => '0,255,255',
1811
+ 'aquamarine' => '127,255,212',
1812
+ 'azure' => '240,255,255',
1813
+ 'beige' => '245,245,220',
1814
+ 'bisque' => '255,228,196',
1815
+ 'black' => '0,0,0',
1816
+ 'blanchedalmond' => '255,235,205',
1817
+ 'blue' => '0,0,255',
1818
+ 'blueviolet' => '138,43,226',
1819
+ 'brown' => '165,42,42',
1820
+ 'burlywood' => '222,184,135',
1821
+ 'cadetblue' => '95,158,160',
1822
+ 'chartreuse' => '127,255,0',
1823
+ 'chocolate' => '210,105,30',
1824
+ 'coral' => '255,127,80',
1825
+ 'cornflowerblue' => '100,149,237',
1826
+ 'cornsilk' => '255,248,220',
1827
+ 'crimson' => '220,20,60',
1828
+ 'cyan' => '0,255,255',
1829
+ 'darkblue' => '0,0,139',
1830
+ 'darkcyan' => '0,139,139',
1831
+ 'darkgoldenrod' => '184,134,11',
1832
+ 'darkgray' => '169,169,169',
1833
+ 'darkgreen' => '0,100,0',
1834
+ 'darkgrey' => '169,169,169',
1835
+ 'darkkhaki' => '189,183,107',
1836
+ 'darkmagenta' => '139,0,139',
1837
+ 'darkolivegreen' => '85,107,47',
1838
+ 'darkorange' => '255,140,0',
1839
+ 'darkorchid' => '153,50,204',
1840
+ 'darkred' => '139,0,0',
1841
+ 'darksalmon' => '233,150,122',
1842
+ 'darkseagreen' => '143,188,143',
1843
+ 'darkslateblue' => '72,61,139',
1844
+ 'darkslategray' => '47,79,79',
1845
+ 'darkslategrey' => '47,79,79',
1846
+ 'darkturquoise' => '0,206,209',
1847
+ 'darkviolet' => '148,0,211',
1848
+ 'deeppink' => '255,20,147',
1849
+ 'deepskyblue' => '0,191,255',
1850
+ 'dimgray' => '105,105,105',
1851
+ 'dimgrey' => '105,105,105',
1852
+ 'dodgerblue' => '30,144,255',
1853
+ 'firebrick' => '178,34,34',
1854
+ 'floralwhite' => '255,250,240',
1855
+ 'forestgreen' => '34,139,34',
1856
+ 'fuchsia' => '255,0,255',
1857
+ 'gainsboro' => '220,220,220',
1858
+ 'ghostwhite' => '248,248,255',
1859
+ 'gold' => '255,215,0',
1860
+ 'goldenrod' => '218,165,32',
1861
+ 'gray' => '128,128,128',
1862
+ 'green' => '0,128,0',
1863
+ 'greenyellow' => '173,255,47',
1864
+ 'grey' => '128,128,128',
1865
+ 'honeydew' => '240,255,240',
1866
+ 'hotpink' => '255,105,180',
1867
+ 'indianred' => '205,92,92',
1868
+ 'indigo' => '75,0,130',
1869
+ 'ivory' => '255,255,240',
1870
+ 'khaki' => '240,230,140',
1871
+ 'lavender' => '230,230,250',
1872
+ 'lavenderblush' => '255,240,245',
1873
+ 'lawngreen' => '124,252,0',
1874
+ 'lemonchiffon' => '255,250,205',
1875
+ 'lightblue' => '173,216,230',
1876
+ 'lightcoral' => '240,128,128',
1877
+ 'lightcyan' => '224,255,255',
1878
+ 'lightgoldenrodyellow' => '250,250,210',
1879
+ 'lightgray' => '211,211,211',
1880
+ 'lightgreen' => '144,238,144',
1881
+ 'lightgrey' => '211,211,211',
1882
+ 'lightpink' => '255,182,193',
1883
+ 'lightsalmon' => '255,160,122',
1884
+ 'lightseagreen' => '32,178,170',
1885
+ 'lightskyblue' => '135,206,250',
1886
+ 'lightslategray' => '119,136,153',
1887
+ 'lightslategrey' => '119,136,153',
1888
+ 'lightsteelblue' => '176,196,222',
1889
+ 'lightyellow' => '255,255,224',
1890
+ 'lime' => '0,255,0',
1891
+ 'limegreen' => '50,205,50',
1892
+ 'linen' => '250,240,230',
1893
+ 'magenta' => '255,0,255',
1894
+ 'maroon' => '128,0,0',
1895
+ 'mediumaquamarine' => '102,205,170',
1896
+ 'mediumblue' => '0,0,205',
1897
+ 'mediumorchid' => '186,85,211',
1898
+ 'mediumpurple' => '147,112,219',
1899
+ 'mediumseagreen' => '60,179,113',
1900
+ 'mediumslateblue' => '123,104,238',
1901
+ 'mediumspringgreen' => '0,250,154',
1902
+ 'mediumturquoise' => '72,209,204',
1903
+ 'mediumvioletred' => '199,21,133',
1904
+ 'midnightblue' => '25,25,112',
1905
+ 'mintcream' => '245,255,250',
1906
+ 'mistyrose' => '255,228,225',
1907
+ 'moccasin' => '255,228,181',
1908
+ 'navajowhite' => '255,222,173',
1909
+ 'navy' => '0,0,128',
1910
+ 'oldlace' => '253,245,230',
1911
+ 'olive' => '128,128,0',
1912
+ 'olivedrab' => '107,142,35',
1913
+ 'orange' => '255,165,0',
1914
+ 'orangered' => '255,69,0',
1915
+ 'orchid' => '218,112,214',
1916
+ 'palegoldenrod' => '238,232,170',
1917
+ 'palegreen' => '152,251,152',
1918
+ 'paleturquoise' => '175,238,238',
1919
+ 'palevioletred' => '219,112,147',
1920
+ 'papayawhip' => '255,239,213',
1921
+ 'peachpuff' => '255,218,185',
1922
+ 'peru' => '205,133,63',
1923
+ 'pink' => '255,192,203',
1924
+ 'plum' => '221,160,221',
1925
+ 'powderblue' => '176,224,230',
1926
+ 'purple' => '128,0,128',
1927
+ 'red' => '255,0,0',
1928
+ 'rosybrown' => '188,143,143',
1929
+ 'royalblue' => '65,105,225',
1930
+ 'saddlebrown' => '139,69,19',
1931
+ 'salmon' => '250,128,114',
1932
+ 'sandybrown' => '244,164,96',
1933
+ 'seagreen' => '46,139,87',
1934
+ 'seashell' => '255,245,238',
1935
+ 'sienna' => '160,82,45',
1936
+ 'silver' => '192,192,192',
1937
+ 'skyblue' => '135,206,235',
1938
+ 'slateblue' => '106,90,205',
1939
+ 'slategray' => '112,128,144',
1940
+ 'slategrey' => '112,128,144',
1941
+ 'snow' => '255,250,250',
1942
+ 'springgreen' => '0,255,127',
1943
+ 'steelblue' => '70,130,180',
1944
+ 'tan' => '210,180,140',
1945
+ 'teal' => '0,128,128',
1946
+ 'thistle' => '216,191,216',
1947
+ 'tomato' => '255,99,71',
1948
+ 'turquoise' => '64,224,208',
1949
+ 'violet' => '238,130,238',
1950
+ 'wheat' => '245,222,179',
1951
+ 'white' => '255,255,255',
1952
+ 'whitesmoke' => '245,245,245',
1953
+ 'yellow' => '255,255,0',
1954
+ 'yellowgreen' => '154,205,50'
1955
+ );
1956
+ }
1957
+
1958
+ // responsible for taking a string of LESS code and converting it into a
1959
+ // syntax tree
1960
+ class seed_csp4_lessc_parser {
1961
+ static protected $nextBlockId = 0; // used to uniquely identify blocks
1962
+
1963
+ static protected $precedence = array(
1964
+ '=<' => 0,
1965
+ '>=' => 0,
1966
+ '=' => 0,
1967
+ '<' => 0,
1968
+ '>' => 0,
1969
+
1970
+ '+' => 1,
1971
+ '-' => 1,
1972
+ '*' => 2,
1973
+ '/' => 2,
1974
+ '%' => 2,
1975
+ );
1976
+
1977
+ static protected $whitePattern;
1978
+ static protected $commentMulti;
1979
+
1980
+ static protected $commentSingle = "//";
1981
+ static protected $commentMultiLeft = "/*";
1982
+ static protected $commentMultiRight = "*/";
1983
+
1984
+ // regex string to match any of the operators
1985
+ static protected $operatorString;
1986
+
1987
+ // these properties will supress division unless it's inside parenthases
1988
+ static protected $supressDivisionProps =
1989
+ array('/border-radius$/i', '/^font$/i');
1990
+
1991
+ protected $blockDirectives = array("font-face", "keyframes", "page", "-moz-document");
1992
+ protected $lineDirectives = array("charset");
1993
+
1994
+ /**
1995
+ * if we are in parens we can be more liberal with whitespace around
1996
+ * operators because it must evaluate to a single value and thus is less
1997
+ * ambiguous.
1998
+ *
1999
+ * Consider:
2000
+ * property1: 10 -5; // is two numbers, 10 and -5
2001
+ * property2: (10 -5); // should evaluate to 5
2002
+ */
2003
+ protected $inParens = false;
2004
+
2005
+ // caches preg escaped literals
2006
+ static protected $literalCache = array();
2007
+
2008
+ public function __construct($seed_csp4_lessc, $sourceName = null) {
2009
+ $this->eatWhiteDefault = true;
2010
+ // reference to less needed for vPrefix, mPrefix, and parentSelector
2011
+ $this->seed_csp4_lessc = $seed_csp4_lessc;
2012
+
2013
+ $this->sourceName = $sourceName; // name used for error messages
2014
+
2015
+ $this->writeComments = false;
2016
+
2017
+ if (!self::$operatorString) {
2018
+ self::$operatorString =
2019
+ '('.implode('|', array_map(array('seed_csp4_lessc', 'preg_quote'),
2020
+ array_keys(self::$precedence))).')';
2021
+
2022
+ $commentSingle = seed_csp4_lessc::preg_quote(self::$commentSingle);
2023
+ $commentMultiLeft = seed_csp4_lessc::preg_quote(self::$commentMultiLeft);
2024
+ $commentMultiRight = seed_csp4_lessc::preg_quote(self::$commentMultiRight);
2025
+
2026
+ self::$commentMulti = $commentMultiLeft.'.*?'.$commentMultiRight;
2027
+ self::$whitePattern = '/'.$commentSingle.'[^\n]*\s*|('.self::$commentMulti.')\s*|\s+/Ais';
2028
+ }
2029
+ }
2030
+
2031
+ public function parse($buffer) {
2032
+ $this->count = 0;
2033
+ $this->line = 1;
2034
+
2035
+ $this->env = null; // block stack
2036
+ $this->buffer = $this->writeComments ? $buffer : $this->removeComments($buffer);
2037
+ $this->pushSpecialBlock("root");
2038
+ $this->eatWhiteDefault = true;
2039
+ $this->seenComments = array();
2040
+
2041
+ // trim whitespace on head
2042
+ // if (preg_match('/^\s+/', $this->buffer, $m)) {
2043
+ // $this->line += substr_count($m[0], "\n");
2044
+ // $this->buffer = ltrim($this->buffer);
2045
+ // }
2046
+ $this->whitespace();
2047
+
2048
+ // parse the entire file
2049
+ $lastCount = $this->count;
2050
+ while (false !== $this->parseChunk());
2051
+
2052
+ if ($this->count != strlen($this->buffer))
2053
+ $this->throwError();
2054
+
2055
+ // TODO report where the block was opened
2056
+ if (!is_null($this->env->parent))
2057
+ throw new exception('parse error: unclosed block');
2058
+
2059
+ return $this->env;
2060
+ }
2061
+
2062
+ /**
2063
+ * Parse a single chunk off the head of the buffer and append it to the
2064
+ * current parse environment.
2065
+ * Returns false when the buffer is empty, or when there is an error.
2066
+ *
2067
+ * This function is called repeatedly until the entire document is
2068
+ * parsed.
2069
+ *
2070
+ * This parser is most similar to a recursive descent parser. Single
2071
+ * functions represent discrete grammatical rules for the language, and
2072
+ * they are able to capture the text that represents those rules.
2073
+ *
2074
+ * Consider the function seed_csp4_lessc::keyword(). (all parse functions are
2075
+ * structured the same)
2076
+ *
2077
+ * The function takes a single reference argument. When calling the
2078
+ * function it will attempt to match a keyword on the head of the buffer.
2079
+ * If it is successful, it will place the keyword in the referenced
2080
+ * argument, advance the position in the buffer, and return true. If it
2081
+ * fails then it won't advance the buffer and it will return false.
2082
+ *
2083
+ * All of these parse functions are powered by seed_csp4_lessc::match(), which behaves
2084
+ * the same way, but takes a literal regular expression. Sometimes it is
2085
+ * more convenient to use match instead of creating a new function.
2086
+ *
2087
+ * Because of the format of the functions, to parse an entire string of
2088
+ * grammatical rules, you can chain them together using &&.
2089
+ *
2090
+ * But, if some of the rules in the chain succeed before one fails, then
2091
+ * the buffer position will be left at an invalid state. In order to
2092
+ * avoid this, seed_csp4_lessc::seek() is used to remember and set buffer positions.
2093
+ *
2094
+ * Before parsing a chain, use $s = $this->seek() to remember the current
2095
+ * position into $s. Then if a chain fails, use $this->seek($s) to
2096
+ * go back where we started.
2097
+ */
2098
+ protected function parseChunk() {
2099
+ if (empty($this->buffer)) return false;
2100
+ $s = $this->seek();
2101
+
2102
+ // setting a property
2103
+ if ($this->keyword($key) && $this->assign() &&
2104
+ $this->propertyValue($value, $key) && $this->end())
2105
+ {
2106
+ $this->append(array('assign', $key, $value), $s);
2107
+ return true;
2108
+ } else {
2109
+ $this->seek($s);
2110
+ }
2111
+
2112
+
2113
+ // look for special css blocks
2114
+ if ($this->literal('@', false)) {
2115
+ $this->count--;
2116
+
2117
+ // media
2118
+ if ($this->literal('@media')) {
2119
+ if (($this->mediaQueryList($mediaQueries) || true)
2120
+ && $this->literal('{'))
2121
+ {
2122
+ $media = $this->pushSpecialBlock("media");
2123
+ $media->queries = is_null($mediaQueries) ? array() : $mediaQueries;
2124
+ return true;
2125
+ } else {
2126
+ $this->seek($s);
2127
+ return false;
2128
+ }
2129
+ }
2130
+
2131
+ if ($this->literal("@", false) && $this->keyword($dirName)) {
2132
+ if ($this->isDirective($dirName, $this->blockDirectives)) {
2133
+ if (($this->openString("{", $dirValue, null, array(";")) || true) &&
2134
+ $this->literal("{"))
2135
+ {
2136
+ $dir = $this->pushSpecialBlock("directive");
2137
+ $dir->name = $dirName;
2138
+ if (isset($dirValue)) $dir->value = $dirValue;
2139
+ return true;
2140
+ }
2141
+ } elseif ($this->isDirective($dirName, $this->lineDirectives)) {
2142
+ if ($this->propertyValue($dirValue) && $this->end()) {
2143
+ $this->append(array("directive", $dirName, $dirValue));
2144
+ return true;
2145
+ }
2146
+ }
2147
+ }
2148
+
2149
+ $this->seek($s);
2150
+ }
2151
+
2152
+ // setting a variable
2153
+ if ($this->variable($var) && $this->assign() &&
2154
+ $this->propertyValue($value) && $this->end())
2155
+ {
2156
+ $this->append(array('assign', $var, $value), $s);
2157
+ return true;
2158
+ } else {
2159
+ $this->seek($s);
2160
+ }
2161
+
2162
+ if ($this->import($importValue)) {
2163
+ $this->append($importValue, $s);
2164
+ return true;
2165
+ }
2166
+
2167
+ // opening parametric mixin
2168
+ if ($this->tag($tag, true) && $this->argumentDef($args, $isVararg) &&
2169
+ ($this->guards($guards) || true) &&
2170
+ $this->literal('{'))
2171
+ {
2172
+ $block = $this->pushBlock($this->fixTags(array($tag)));
2173
+ $block->args = $args;
2174
+ $block->isVararg = $isVararg;
2175
+ if (!empty($guards)) $block->guards = $guards;
2176
+ return true;
2177
+ } else {
2178
+ $this->seek($s);
2179
+ }
2180
+
2181
+ // opening a simple block
2182
+ if ($this->tags($tags) && $this->literal('{')) {
2183
+ $tags = $this->fixTags($tags);
2184
+ $this->pushBlock($tags);
2185
+ return true;
2186
+ } else {
2187
+ $this->seek($s);
2188
+ }
2189
+
2190
+ // closing a block
2191
+ if ($this->literal('}', false)) {
2192
+ try {
2193
+ $block = $this->pop();
2194
+ } catch (exception $e) {
2195
+ $this->seek($s);
2196
+ $this->throwError($e->getMessage());
2197
+ }
2198
+
2199
+ $hidden = false;
2200
+ if (is_null($block->type)) {
2201
+ $hidden = true;
2202
+ if (!isset($block->args)) {
2203
+ foreach ($block->tags as $tag) {
2204
+ if (!is_string($tag) || $tag{0} != $this->seed_csp4_lessc->mPrefix) {
2205
+ $hidden = false;
2206
+ break;
2207
+ }
2208
+ }
2209
+ }
2210
+
2211
+ foreach ($block->tags as $tag) {
2212
+ if (is_string($tag)) {
2213
+ $this->env->children[$tag][] = $block;
2214
+ }
2215
+ }
2216
+ }
2217
+
2218
+ if (!$hidden) {
2219
+ $this->append(array('block', $block), $s);
2220
+ }
2221
+
2222
+ // this is done here so comments aren't bundled into he block that
2223
+ // was just closed
2224
+ $this->whitespace();
2225
+ return true;
2226
+ }
2227
+
2228
+ // mixin
2229
+ if ($this->mixinTags($tags) &&
2230
+ ($this->argumentValues($argv) || true) &&
2231
+ ($this->keyword($suffix) || true) && $this->end())
2232
+ {
2233
+ $tags = $this->fixTags($tags);
2234
+ $this->append(array('mixin', $tags, $argv, $suffix), $s);
2235
+ return true;
2236
+ } else {
2237
+ $this->seek($s);
2238
+ }
2239
+
2240
+ // spare ;
2241
+ if ($this->literal(';')) return true;
2242
+
2243
+ return false; // got nothing, throw error
2244
+ }
2245
+
2246
+ protected function isDirective($dirname, $directives) {
2247
+ // TODO: cache pattern in parser
2248
+ $pattern = implode("|",
2249
+ array_map(array("seed_csp4_lessc", "preg_quote"), $directives));
2250
+ $pattern = '/^(-[a-z-]+-)?(' . $pattern . ')$/i';
2251
+
2252
+ return preg_match($pattern, $dirname);
2253
+ }
2254
+
2255
+ protected function fixTags($tags) {
2256
+ // move @ tags out of variable namespace
2257
+ foreach ($tags as &$tag) {
2258
+ if ($tag{0} == $this->seed_csp4_lessc->vPrefix)
2259
+ $tag[0] = $this->seed_csp4_lessc->mPrefix;
2260
+ }
2261
+ return $tags;
2262
+ }
2263
+
2264
+ // a list of expressions
2265
+ protected function expressionList(&$exps) {
2266
+ $values = array();
2267
+
2268
+ while ($this->expression($exp)) {
2269
+ $values[] = $exp;
2270
+ }
2271
+
2272
+ if (count($values) == 0) return false;
2273
+
2274
+ $exps = seed_csp4_lessc::compressList($values, ' ');
2275
+ return true;
2276
+ }
2277
+
2278
+ /**
2279
+ * Attempt to consume an expression.
2280
+ * @link http://en.wikipedia.org/wiki/Operator-precedence_parser#Pseudo-code
2281
+ */
2282
+ protected function expression(&$out) {
2283
+ if ($this->value($lhs)) {
2284
+ $out = $this->expHelper($lhs, 0);
2285
+
2286
+ // look for / shorthand
2287
+ if (!empty($this->env->supressedDivision)) {
2288
+ unset($this->env->supressedDivision);
2289
+ $s = $this->seek();
2290
+ if ($this->literal("/") && $this->value($rhs)) {
2291
+ $out = array("list", "",
2292
+ array($out, array("keyword", "/"), $rhs));
2293
+ } else {
2294
+ $this->seek($s);
2295
+ }
2296
+ }
2297
+
2298
+ return true;
2299
+ }
2300
+ return false;
2301
+ }
2302
+
2303
+ /**
2304
+ * recursively parse infix equation with $lhs at precedence $minP
2305
+ */
2306
+ protected function expHelper($lhs, $minP) {
2307
+ $this->inExp = true;
2308
+ $ss = $this->seek();
2309
+
2310
+ while (true) {
2311
+ $whiteBefore = isset($this->buffer[$this->count - 1]) &&
2312
+ ctype_space($this->buffer[$this->count - 1]);
2313
+
2314
+ // If there is whitespace before the operator, then we require
2315
+ // whitespace after the operator for it to be an expression
2316
+ $needWhite = $whiteBefore && !$this->inParens;
2317
+
2318
+ if ($this->match(self::$operatorString.($needWhite ? '\s' : ''), $m) && self::$precedence[$m[1]] >= $minP) {
2319
+ if (!$this->inParens && isset($this->env->currentProperty) && $m[1] == "/" && empty($this->env->supressedDivision)) {
2320
+ foreach (self::$supressDivisionProps as $pattern) {
2321
+ if (preg_match($pattern, $this->env->currentProperty)) {
2322
+ $this->env->supressedDivision = true;
2323
+ break 2;
2324
+ }
2325
+ }
2326
+ }
2327
+
2328
+
2329
+ $whiteAfter = isset($this->buffer[$this->count - 1]) &&
2330
+ ctype_space($this->buffer[$this->count - 1]);
2331
+
2332
+ if (!$this->value($rhs)) break;
2333
+
2334
+ // peek for next operator to see what to do with rhs
2335
+ if ($this->peek(self::$operatorString, $next) && self::$precedence[$next[1]] > self::$precedence[$m[1]]) {
2336
+ $rhs = $this->expHelper($rhs, self::$precedence[$next[1]]);
2337
+ }
2338
+
2339
+ $lhs = array('expression', $m[1], $lhs, $rhs, $whiteBefore, $whiteAfter);
2340
+ $ss = $this->seek();
2341
+
2342
+ continue;
2343
+ }
2344
+
2345
+ break;
2346
+ }
2347
+
2348
+ $this->seek($ss);
2349
+
2350
+ return $lhs;
2351
+ }
2352
+
2353
+ // consume a list of values for a property
2354
+ public function propertyValue(&$value, $keyName = null) {
2355
+ $values = array();
2356
+
2357
+ if ($keyName !== null) $this->env->currentProperty = $keyName;
2358
+
2359
+ $s = null;
2360
+ while ($this->expressionList($v)) {
2361
+ $values[] = $v;
2362
+ $s = $this->seek();
2363
+ if (!$this->literal(',')) break;
2364
+ }
2365
+
2366
+ if ($s) $this->seek($s);
2367
+
2368
+ if ($keyName !== null) unset($this->env->currentProperty);
2369
+
2370
+ if (count($values) == 0) return false;
2371
+
2372
+ $value = seed_csp4_lessc::compressList($values, ', ');
2373
+ return true;
2374
+ }
2375
+
2376
+ protected function parenValue(&$out) {
2377
+ $s = $this->seek();
2378
+
2379
+ // speed shortcut
2380
+ if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "(") {
2381
+ return false;
2382
+ }
2383
+
2384
+ $inParens = $this->inParens;
2385
+ if ($this->literal("(") &&
2386
+ ($this->inParens = true) && $this->expression($exp) &&
2387
+ $this->literal(")"))
2388
+ {
2389
+ $out = $exp;
2390
+ $this->inParens = $inParens;
2391
+ return true;
2392
+ } else {
2393
+ $this->inParens = $inParens;
2394
+ $this->seek($s);
2395
+ }
2396
+
2397
+ return false;
2398
+ }
2399
+
2400
+ // a single value
2401
+ protected function value(&$value) {
2402
+ $s = $this->seek();
2403
+
2404
+ // speed shortcut
2405
+ if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] == "-") {
2406
+ // negation
2407
+ if ($this->literal("-", false) &&
2408
+ (($this->variable($inner) && $inner = array("variable", $inner)) ||
2409
+ $this->unit($inner) ||
2410
+ $this->parenValue($inner)))
2411
+ {
2412
+ $value = array("unary", "-", $inner);
2413
+ return true;
2414
+ } else {
2415
+ $this->seek($s);
2416
+ }
2417
+ }
2418
+
2419
+ if ($this->parenValue($value)) return true;
2420
+ if ($this->unit($value)) return true;
2421
+ if ($this->color($value)) return true;
2422
+ if ($this->func($value)) return true;
2423
+ if ($this->string($value)) return true;
2424
+
2425
+ if ($this->keyword($word)) {
2426
+ $value = array('keyword', $word);
2427
+ return true;
2428
+ }
2429
+
2430
+ // try a variable
2431
+ if ($this->variable($var)) {
2432
+ $value = array('variable', $var);
2433
+ return true;
2434
+ }
2435
+
2436
+ // unquote string (should this work on any type?
2437
+ if ($this->literal("~") && $this->string($str)) {
2438
+ $value = array("escape", $str);
2439
+ return true;
2440
+ } else {
2441
+ $this->seek($s);
2442
+ }
2443
+
2444
+ // css hack: \0
2445
+ if ($this->literal('\\') && $this->match('([0-9]+)', $m)) {
2446
+ $value = array('keyword', '\\'.$m[1]);
2447
+ return true;
2448
+ } else {
2449
+ $this->seek($s);
2450
+ }
2451
+
2452
+ return false;
2453
+ }
2454
+
2455
+ // an import statement
2456
+ protected function import(&$out) {
2457
+ $s = $this->seek();
2458
+ if (!$this->literal('@import')) return false;
2459
+
2460
+ // @import "something.css" media;
2461
+ // @import url("something.css") media;
2462
+ // @import url(something.css) media;
2463
+
2464
+ if ($this->propertyValue($value)) {
2465
+ $out = array("import", $value);
2466
+ return true;
2467
+ }
2468
+ }
2469
+
2470
+ protected function mediaQueryList(&$out) {
2471
+ if ($this->genericList($list, "mediaQuery", ",", false)) {
2472
+ $out = $list[2];
2473
+ return true;
2474
+ }
2475
+ return false;
2476
+ }
2477
+
2478
+ protected function mediaQuery(&$out) {
2479
+ $s = $this->seek();
2480
+
2481
+ $expressions = null;
2482
+ $parts = array();
2483
+
2484
+ if (($this->literal("only") && ($only = true) || $this->literal("not") && ($not = true) || true) && $this->keyword($mediaType)) {
2485
+ $prop = array("mediaType");
2486
+ if (isset($only)) $prop[] = "only";
2487
+ if (isset($not)) $prop[] = "not";
2488
+ $prop[] = $mediaType;
2489
+ $parts[] = $prop;
2490
+ } else {
2491
+ $this->seek($s);
2492
+ }
2493
+
2494
+
2495
+ if (!empty($mediaType) && !$this->literal("and")) {
2496
+ // ~
2497
+ } else {
2498
+ $this->genericList($expressions, "mediaExpression", "and", false);
2499
+ if (is_array($expressions)) $parts = array_merge($parts, $expressions[2]);
2500
+ }
2501
+
2502
+ if (count($parts) == 0) {
2503
+ $this->seek($s);
2504
+ return false;
2505
+ }
2506
+
2507
+ $out = $parts;
2508
+ return true;
2509
+ }
2510
+
2511
+ protected function mediaExpression(&$out) {
2512
+ $s = $this->seek();
2513
+ $value = null;
2514
+ if ($this->literal("(") &&
2515
+ $this->keyword($feature) &&
2516
+ ($this->literal(":") && $this->expression($value) || true) &&
2517
+ $this->literal(")"))
2518
+ {
2519
+ $out = array("mediaExp", $feature);
2520
+ if ($value) $out[] = $value;
2521
+ return true;
2522
+ }
2523
+
2524
+ $this->seek($s);
2525
+ return false;
2526
+ }
2527
+
2528
+ // an unbounded string stopped by $end
2529
+ protected function openString($end, &$out, $nestingOpen=null, $rejectStrs = null) {
2530
+ $oldWhite = $this->eatWhiteDefault;
2531
+ $this->eatWhiteDefault = false;
2532
+
2533
+ $stop = array("'", '"', "@{", $end);
2534
+ $stop = array_map(array("seed_csp4_lessc", "preg_quote"), $stop);
2535
+ // $stop[] = self::$commentMulti;
2536
+
2537
+ if (!is_null($rejectStrs)) {
2538
+ $stop = array_merge($stop, $rejectStrs);
2539
+ }
2540
+
2541
+ $patt = '(.*?)('.implode("|", $stop).')';
2542
+
2543
+ $nestingLevel = 0;
2544
+
2545
+ $content = array();
2546
+ while ($this->match($patt, $m, false)) {
2547
+ if (!empty($m[1])) {
2548
+ $content[] = $m[1];
2549
+ if ($nestingOpen) {
2550
+ $nestingLevel += substr_count($m[1], $nestingOpen);
2551
+ }
2552
+ }
2553
+
2554
+ $tok = $m[2];
2555
+
2556
+ $this->count-= strlen($tok);
2557
+ if ($tok == $end) {
2558
+ if ($nestingLevel == 0) {
2559
+ break;
2560
+ } else {
2561
+ $nestingLevel--;
2562
+ }
2563
+ }
2564
+
2565
+ if (($tok == "'" || $tok == '"') && $this->string($str)) {
2566
+ $content[] = $str;
2567
+ continue;
2568
+ }
2569
+
2570
+ if ($tok == "@{" && $this->interpolation($inter)) {
2571
+ $content[] = $inter;
2572
+ continue;
2573
+ }
2574
+
2575
+ if (in_array($tok, $rejectStrs)) {
2576
+ $count = null;
2577
+ break;
2578
+ }
2579
+
2580
+
2581
+ $content[] = $tok;
2582
+ $this->count+= strlen($tok);
2583
+ }
2584
+
2585
+ $this->eatWhiteDefault = $oldWhite;
2586
+
2587
+ if (count($content) == 0) return false;
2588
+
2589
+ // trim the end
2590
+ if (is_string(end($content))) {
2591
+ $content[count($content) - 1] = rtrim(end($content));
2592
+ }
2593
+
2594
+ $out = array("string", "", $content);
2595
+ return true;
2596
+ }
2597
+
2598
+ protected function string(&$out) {
2599
+ $s = $this->seek();
2600
+ if ($this->literal('"', false)) {
2601
+ $delim = '"';
2602
+ } elseif ($this->literal("'", false)) {
2603
+ $delim = "'";
2604
+ } else {
2605
+ return false;
2606
+ }
2607
+
2608
+ $content = array();
2609
+
2610
+ // look for either ending delim , escape, or string interpolation
2611
+ $patt = '([^\n]*?)(@\{|\\\\|' .
2612
+ seed_csp4_lessc::preg_quote($delim).')';
2613
+
2614
+ $oldWhite = $this->eatWhiteDefault;
2615
+ $this->eatWhiteDefault = false;
2616
+
2617
+ while ($this->match($patt, $m, false)) {
2618
+ $content[] = $m[1];
2619
+ if ($m[2] == "@{") {
2620
+ $this->count -= strlen($m[2]);
2621
+ if ($this->interpolation($inter, false)) {
2622
+ $content[] = $inter;
2623
+ } else {
2624
+ $this->count += strlen($m[2]);
2625
+ $content[] = "@{"; // ignore it
2626
+ }
2627
+ } elseif ($m[2] == '\\') {
2628
+ $content[] = $m[2];
2629
+ if ($this->literal($delim, false)) {
2630
+ $content[] = $delim;
2631
+ }
2632
+ } else {
2633
+ $this->count -= strlen($delim);
2634
+ break; // delim
2635
+ }
2636
+ }
2637
+
2638
+ $this->eatWhiteDefault = $oldWhite;
2639
+
2640
+ if ($this->literal($delim)) {
2641
+ $out = array("string", $delim, $content);
2642
+ return true;
2643
+ }
2644
+
2645
+ $this->seek($s);
2646
+ return false;
2647
+ }
2648
+
2649
+ protected function interpolation(&$out) {
2650
+ $oldWhite = $this->eatWhiteDefault;
2651
+ $this->eatWhiteDefault = true;
2652
+
2653
+ $s = $this->seek();
2654
+ if ($this->literal("@{") &&
2655
+ $this->keyword($var) &&
2656
+ $this->literal("}", false))
2657
+ {
2658
+ $out = array("variable", $this->seed_csp4_lessc->vPrefix . $var);
2659
+ $this->eatWhiteDefault = $oldWhite;
2660
+ if ($this->eatWhiteDefault) $this->whitespace();
2661
+ return true;
2662
+ }
2663
+
2664
+ $this->eatWhiteDefault = $oldWhite;
2665
+ $this->seek($s);
2666
+ return false;
2667
+ }
2668
+
2669
+ protected function unit(&$unit) {
2670
+ // speed shortcut
2671
+ if (isset($this->buffer[$this->count])) {
2672
+ $char = $this->buffer[$this->count];
2673
+ if (!ctype_digit($char) && $char != ".") return false;
2674
+ }
2675
+
2676
+ if ($this->match('([0-9]+(?:\.[0-9]*)?|\.[0-9]+)([%a-zA-Z]+)?', $m)) {
2677
+ $unit = array("number", $m[1], empty($m[2]) ? "" : $m[2]);
2678
+ return true;
2679
+ }
2680
+ return false;
2681
+ }
2682
+
2683
+ // a # color
2684
+ protected function color(&$out) {
2685
+ if ($this->match('(#(?:[0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{3}))', $m)) {
2686
+ if (strlen($m[1]) > 7) {
2687
+ $out = array("string", "", array($m[1]));
2688
+ } else {
2689
+ $out = array("raw_color", $m[1]);
2690
+ }
2691
+ return true;
2692
+ }
2693
+
2694
+ return false;
2695
+ }
2696
+
2697
+ // consume a list of property values delimited by ; and wrapped in ()
2698
+ protected function argumentValues(&$args, $delim = ',') {
2699
+ $s = $this->seek();
2700
+ if (!$this->literal('(')) return false;
2701
+
2702
+ $values = array();
2703
+ while (true) {
2704
+ if ($this->expressionList($value)) $values[] = $value;
2705
+ if (!$this->literal($delim)) break;
2706
+ else {
2707
+ if ($value == null) $values[] = null;
2708
+ $value = null;
2709
+ }
2710
+ }
2711
+
2712
+ if (!$this->literal(')')) {
2713
+ $this->seek($s);
2714
+ return false;
2715
+ }
2716
+
2717
+ $args = $values;
2718
+ return true;
2719
+ }
2720
+
2721
+ // consume an argument definition list surrounded by ()
2722
+ // each argument is a variable name with optional value
2723
+ // or at the end a ... or a variable named followed by ...
2724
+ protected function argumentDef(&$args, &$isVararg, $delim = ',') {
2725
+ $s = $this->seek();
2726
+ if (!$this->literal('(')) return false;
2727
+
2728
+ $values = array();
2729
+
2730
+ $isVararg = false;
2731
+ while (true) {
2732
+ if ($this->literal("...")) {
2733
+ $isVararg = true;
2734
+ break;
2735
+ }
2736
+
2737
+ if ($this->variable($vname)) {
2738
+ $arg = array("arg", $vname);
2739
+ $ss = $this->seek();
2740
+ if ($this->assign() && $this->expressionList($value)) {
2741
+ $arg[] = $value;
2742
+ } else {
2743
+ $this->seek($ss);
2744
+ if ($this->literal("...")) {
2745
+ $arg[0] = "rest";
2746
+ $isVararg = true;
2747
+ }
2748
+ }
2749
+ $values[] = $arg;
2750
+ if ($isVararg) break;
2751
+ continue;
2752
+ }
2753
+
2754
+ if ($this->value($literal)) {
2755
+ $values[] = array("lit", $literal);
2756
+ }
2757
+
2758
+ if (!$this->literal($delim)) break;
2759
+ }
2760
+
2761
+ if (!$this->literal(')')) {
2762
+ $this->seek($s);
2763
+ return false;
2764
+ }
2765
+
2766
+ $args = $values;
2767
+
2768
+ return true;
2769
+ }
2770
+
2771
+ // consume a list of tags
2772
+ // this accepts a hanging delimiter
2773
+ protected function tags(&$tags, $simple = false, $delim = ',') {
2774
+ $tags = array();
2775
+ while ($this->tag($tt, $simple)) {
2776
+ $tags[] = $tt;
2777
+ if (!$this->literal($delim)) break;
2778
+ }
2779
+ if (count($tags) == 0) return false;
2780
+
2781
+ return true;
2782
+ }
2783
+
2784
+ // list of tags of specifying mixin path
2785
+ // optionally separated by > (lazy, accepts extra >)
2786
+ protected function mixinTags(&$tags) {
2787
+ $s = $this->seek();
2788
+ $tags = array();
2789
+ while ($this->tag($tt, true)) {
2790
+ $tags[] = $tt;
2791
+ $this->literal(">");
2792
+ }
2793
+
2794
+ if (count($tags) == 0) return false;
2795
+
2796
+ return true;
2797
+ }
2798
+
2799
+ // a bracketed value (contained within in a tag definition)
2800
+ protected function tagBracket(&$value) {
2801
+ // speed shortcut
2802
+ if (isset($this->buffer[$this->count]) && $this->buffer[$this->count] != "[") {
2803
+ return false;
2804
+ }
2805
+
2806
+ $s = $this->seek();
2807
+ if ($this->literal('[') && $this->to(']', $c, true) && $this->literal(']', false)) {
2808
+ $value = '['.$c.']';
2809
+ // whitespace?
2810
+ if ($this->whitespace()) $value .= " ";
2811
+
2812
+ // escape parent selector, (yuck)
2813
+ $value = str_replace($this->seed_csp4_lessc->parentSelector, "$&$", $value);
2814
+ return true;
2815
+ }
2816
+
2817
+ $this->seek($s);
2818
+ return false;
2819
+ }
2820
+
2821
+ protected function tagExpression(&$value) {
2822
+ $s = $this->seek();
2823
+ if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) {
2824
+ $value = array('exp', $exp);
2825
+ return true;
2826
+ }
2827
+
2828
+ $this->seek($s);
2829
+ return false;
2830
+ }
2831
+
2832
+ // a single tag
2833
+ protected function tag(&$tag, $simple = false) {
2834
+ if ($simple)
2835
+ $chars = '^,:;{}\][>\(\) "\'';
2836
+ else
2837
+ $chars = '^,;{}["\'';
2838
+
2839
+ if (!$simple && $this->tagExpression($tag)) {
2840
+ return true;
2841
+ }
2842
+
2843
+ $tag = '';
2844
+ while ($this->tagBracket($first)) $tag .= $first;
2845
+
2846
+ while (true) {
2847
+ if ($this->match('(['.$chars.'0-9]['.$chars.']*)', $m)) {
2848
+ $tag .= $m[1];
2849
+ if ($simple) break;
2850
+
2851
+ while ($this->tagBracket($brack)) $tag .= $brack;
2852
+ continue;
2853
+ } elseif ($this->unit($unit)) { // for keyframes
2854
+ $tag .= $unit[1] . $unit[2];
2855
+ continue;
2856
+ }
2857
+ break;
2858
+ }
2859
+
2860
+
2861
+ $tag = trim($tag);
2862
+ if ($tag == '') return false;
2863
+
2864
+ return true;
2865
+ }
2866
+
2867
+ // a css function
2868
+ protected function func(&$func) {
2869
+ $s = $this->seek();
2870
+
2871
+ if ($this->match('(%|[\w\-_][\w\-_:\.]+|[\w_])', $m) && $this->literal('(')) {
2872
+ $fname = $m[1];
2873
+
2874
+ $sPreArgs = $this->seek();
2875
+
2876
+ $args = array();
2877
+ while (true) {
2878
+ $ss = $this->seek();
2879
+ // this ugly nonsense is for ie filter properties
2880
+ if ($this->keyword($name) && $this->literal('=') && $this->expressionList($value)) {
2881
+ $args[] = array("string", "", array($name, "=", $value));
2882
+ } else {
2883
+ $this->seek($ss);
2884
+ if ($this->expressionList($value)) {
2885
+ $args[] = $value;
2886
+ }
2887
+ }
2888
+
2889
+ if (!$this->literal(',')) break;
2890
+ }
2891
+ $args = array('list', ',', $args);
2892
+
2893
+ if ($this->literal(')')) {
2894
+ $func = array('function', $fname, $args);
2895
+ return true;
2896
+ } elseif ($fname == 'url') {
2897
+ // couldn't parse and in url? treat as string
2898
+ $this->seek($sPreArgs);
2899
+ if ($this->openString(")", $string) && $this->literal(")")) {
2900
+ $func = array('function', $fname, $string);
2901
+ return true;
2902
+ }
2903
+ }
2904
+ }
2905
+
2906
+ $this->seek($s);
2907
+ return false;
2908
+ }
2909
+
2910
+ // consume a less variable
2911
+ protected function variable(&$name) {
2912
+ $s = $this->seek();
2913
+ if ($this->literal($this->seed_csp4_lessc->vPrefix, false) &&
2914
+ ($this->variable($sub) || $this->keyword($name)))
2915
+ {
2916
+ if (!empty($sub)) {
2917
+ $name = array('variable', $sub);
2918
+ } else {
2919
+ $name = $this->seed_csp4_lessc->vPrefix.$name;
2920
+ }
2921
+ return true;
2922
+ }
2923
+
2924
+ $name = null;
2925
+ $this->seek($s);
2926
+ return false;
2927
+ }
2928
+
2929
+ /**
2930
+ * Consume an assignment operator
2931
+ * Can optionally take a name that will be set to the current property name
2932
+ */
2933
+ protected function assign($name = null) {
2934
+ if ($name) $this->currentProperty = $name;
2935
+ return $this->literal(':') || $this->literal('=');
2936
+ }
2937
+
2938
+ // consume a keyword
2939
+ protected function keyword(&$word) {
2940
+ if ($this->match('([\w_\-\*!"][\w\-_"]*)', $m)) {
2941
+ $word = $m[1];
2942
+ return true;
2943
+ }
2944
+ return false;
2945
+ }
2946
+
2947
+ // consume an end of statement delimiter
2948
+ protected function end() {
2949
+ if ($this->literal(';')) {
2950
+ return true;
2951
+ } elseif ($this->count == strlen($this->buffer) || $this->buffer{$this->count} == '}') {
2952
+ // if there is end of file or a closing block next then we don't need a ;
2953
+ return true;
2954
+ }
2955
+ return false;
2956
+ }
2957
+
2958
+ protected function guards(&$guards) {
2959
+ $s = $this->seek();
2960
+
2961
+ if (!$this->literal("when")) {
2962
+ $this->seek($s);
2963
+ return false;
2964
+ }
2965
+
2966
+ $guards = array();
2967
+
2968
+ while ($this->guardGroup($g)) {
2969
+ $guards[] = $g;
2970
+ if (!$this->literal(",")) break;
2971
+ }
2972
+
2973
+ if (count($guards) == 0) {
2974
+ $guards = null;
2975
+ $this->seek($s);
2976
+ return false;
2977
+ }
2978
+
2979
+ return true;
2980
+ }
2981
+
2982
+ // a bunch of guards that are and'd together
2983
+ // TODO rename to guardGroup
2984
+ protected function guardGroup(&$guardGroup) {
2985
+ $s = $this->seek();
2986
+ $guardGroup = array();
2987
+ while ($this->guard($guard)) {
2988
+ $guardGroup[] = $guard;
2989
+ if (!$this->literal("and")) break;
2990
+ }
2991
+
2992
+ if (count($guardGroup) == 0) {
2993
+ $guardGroup = null;
2994
+ $this->seek($s);
2995
+ return false;
2996
+ }
2997
+
2998
+ return true;
2999
+ }
3000
+
3001
+ protected function guard(&$guard) {
3002
+ $s = $this->seek();
3003
+ $negate = $this->literal("not");
3004
+
3005
+ if ($this->literal("(") && $this->expression($exp) && $this->literal(")")) {
3006
+ $guard = $exp;
3007
+ if ($negate) $guard = array("negate", $guard);
3008
+ return true;
3009
+ }
3010
+
3011
+ $this->seek($s);
3012
+ return false;
3013
+ }
3014
+
3015
+ /* raw parsing functions */
3016
+
3017
+ protected function literal($what, $eatWhitespace = null) {
3018
+ if ($eatWhitespace === null) $eatWhitespace = $this->eatWhiteDefault;
3019
+
3020
+ // shortcut on single letter
3021
+ if (!isset($what[1]) && isset($this->buffer[$this->count])) {
3022
+ if ($this->buffer[$this->count] == $what) {
3023
+ if (!$eatWhitespace) {
3024
+ $this->count++;
3025
+ return true;
3026
+ }
3027
+ // goes below...
3028
+ } else {
3029
+ return false;
3030
+ }
3031
+ }
3032
+
3033
+ if (!isset(self::$literalCache[$what])) {
3034
+ self::$literalCache[$what] = seed_csp4_lessc::preg_quote($what);
3035
+ }
3036
+
3037
+ return $this->match(self::$literalCache[$what], $m, $eatWhitespace);
3038
+ }
3039
+
3040
+ protected function genericList(&$out, $parseItem, $delim="", $flatten=true) {
3041
+ $s = $this->seek();
3042
+ $items = array();
3043
+ while ($this->$parseItem($value)) {
3044
+ $items[] = $value;
3045
+ if ($delim) {
3046
+ if (!$this->literal($delim)) break;
3047
+ }
3048
+ }
3049
+
3050
+ if (count($items) == 0) {
3051
+ $this->seek($s);
3052
+ return false;
3053
+ }
3054
+
3055
+ if ($flatten && count($items) == 1) {
3056
+ $out = $items[0];
3057
+ } else {
3058
+ $out = array("list", $delim, $items);
3059
+ }
3060
+
3061
+ return true;
3062
+ }
3063
+
3064
+
3065
+ // advance counter to next occurrence of $what
3066
+ // $until - don't include $what in advance
3067
+ // $allowNewline, if string, will be used as valid char set
3068
+ protected function to($what, &$out, $until = false, $allowNewline = false) {
3069
+ if (is_string($allowNewline)) {
3070
+ $validChars = $allowNewline;
3071
+ } else {
3072
+ $validChars = $allowNewline ? "." : "[^\n]";
3073
+ }
3074
+ if (!$this->match('('.$validChars.'*?)'.seed_csp4_lessc::preg_quote($what), $m, !$until)) return false;
3075
+ if ($until) $this->count -= strlen($what); // give back $what
3076
+ $out = $m[1];
3077
+ return true;
3078
+ }
3079
+
3080
+ // try to match something on head of buffer
3081
+ protected function match($regex, &$out, $eatWhitespace = null) {
3082
+ if ($eatWhitespace === null) $eatWhitespace = $this->eatWhiteDefault;
3083
+
3084
+ $r = '/'.$regex.($eatWhitespace && !$this->writeComments ? '\s*' : '').'/Ais';
3085
+ if (preg_match($r, $this->buffer, $out, null, $this->count)) {
3086
+ $this->count += strlen($out[0]);
3087
+ if ($eatWhitespace && $this->writeComments) $this->whitespace();
3088
+ return true;
3089
+ }
3090
+ return false;
3091
+ }
3092
+
3093
+ // match some whitespace
3094
+ protected function whitespace() {
3095
+ if ($this->writeComments) {
3096
+ $gotWhite = false;
3097
+ while (preg_match(self::$whitePattern, $this->buffer, $m, null, $this->count)) {
3098
+ if (isset($m[1]) && empty($this->commentsSeen[$this->count])) {
3099
+ $this->append(array("comment", $m[1]));
3100
+ $this->commentsSeen[$this->count] = true;
3101
+ }
3102
+ $this->count += strlen($m[0]);
3103
+ $gotWhite = true;
3104
+ }
3105
+ return $gotWhite;
3106
+ } else {
3107
+ $this->match("", $m);
3108
+ return strlen($m[0]) > 0;
3109
+ }
3110
+ }
3111
+
3112
+ // match something without consuming it
3113
+ protected function peek($regex, &$out = null, $from=null) {
3114
+ if (is_null($from)) $from = $this->count;
3115
+ $r = '/'.$regex.'/Ais';
3116
+ $result = preg_match($r, $this->buffer, $out, null, $from);
3117
+
3118
+ return $result;
3119
+ }
3120
+
3121
+ // seek to a spot in the buffer or return where we are on no argument
3122
+ protected function seek($where = null) {
3123
+ if ($where === null) return $this->count;
3124
+ else $this->count = $where;
3125
+ return true;
3126
+ }
3127
+
3128
+ /* misc functions */
3129
+
3130
+ public function throwError($msg = "parse error", $count = null) {
3131
+ $count = is_null($count) ? $this->count : $count;
3132
+
3133
+ $line = $this->line +
3134
+ substr_count(substr($this->buffer, 0, $count), "\n");
3135
+
3136
+ if (!empty($this->sourceName)) {
3137
+ $loc = "$this->sourceName on line $line";
3138
+ } else {
3139
+ $loc = "line: $line";
3140
+ }
3141
+
3142
+ // TODO this depends on $this->count
3143
+ if ($this->peek("(.*?)(\n|$)", $m, $count)) {
3144
+ throw new exception("$msg: failed at `$m[1]` $loc");
3145
+ } else {
3146
+ throw new exception("$msg: $loc");
3147
+ }
3148
+ }
3149
+
3150
+ protected function pushBlock($selectors=null, $type=null) {
3151
+ $b = new stdclass;
3152
+ $b->parent = $this->env;
3153
+
3154
+ $b->type = $type;
3155
+ $b->id = self::$nextBlockId++;
3156
+
3157
+ $b->isVararg = false; // TODO: kill me from here
3158
+ $b->tags = $selectors;
3159
+
3160
+ $b->props = array();
3161
+ $b->children = array();
3162
+
3163
+ $this->env = $b;
3164
+ return $b;
3165
+ }
3166
+
3167
+ // push a block that doesn't multiply tags
3168
+ protected function pushSpecialBlock($type) {
3169
+ return $this->pushBlock(null, $type);
3170
+ }
3171
+
3172
+ // append a property to the current block
3173
+ protected function append($prop, $pos = null) {
3174
+ if ($pos !== null) $prop[-1] = $pos;
3175
+ $this->env->props[] = $prop;
3176
+ }
3177
+
3178
+ // pop something off the stack
3179
+ protected function pop() {
3180
+ $old = $this->env;
3181
+ $this->env = $this->env->parent;
3182
+ return $old;
3183
+ }
3184
+
3185
+ // remove comments from $text
3186
+ // todo: make it work for all functions, not just url
3187
+ protected function removeComments($text) {
3188
+ $look = array(
3189
+ 'url(', '//', '/*', '"', "'"
3190
+ );
3191
+
3192
+ $out = '';
3193
+ $min = null;
3194
+ while (true) {
3195
+ // find the next item
3196
+ foreach ($look as $token) {
3197
+ $pos = strpos($text, $token);
3198
+ if ($pos !== false) {
3199
+ if (!isset($min) || $pos < $min[1]) $min = array($token, $pos);
3200
+ }
3201
+ }
3202
+
3203
+ if (is_null($min)) break;
3204
+
3205
+ $count = $min[1];
3206
+ $skip = 0;
3207
+ $newlines = 0;
3208
+ switch ($min[0]) {
3209
+ case 'url(':
3210
+ if (preg_match('/url\(.*?\)/', $text, $m, 0, $count))
3211
+ $count += strlen($m[0]) - strlen($min[0]);
3212
+ break;
3213
+ case '"':
3214
+ case "'":
3215
+ if (preg_match('/'.$min[0].'.*?'.$min[0].'/', $text, $m, 0, $count))
3216
+ $count += strlen($m[0]) - 1;
3217
+ break;
3218
+ case '//':
3219
+ $skip = strpos($text, "\n", $count);
3220
+ if ($skip === false) $skip = strlen($text) - $count;
3221
+ else $skip -= $count;
3222
+ break;
3223
+ case '/*':
3224
+ if (preg_match('/\/\*.*?\*\//s', $text, $m, 0, $count)) {
3225
+ $skip = strlen($m[0]);
3226
+ $newlines = substr_count($m[0], "\n");
3227
+ }
3228
+ break;
3229
+ }
3230
+
3231
+ if ($skip == 0) $count += strlen($min[0]);
3232
+
3233
+ $out .= substr($text, 0, $count).str_repeat("\n", $newlines);
3234
+ $text = substr($text, $count + $skip);
3235
+
3236
+ $min = null;
3237
+ }
3238
+
3239
+ return $out.$text;
3240
+ }
3241
+
3242
+ }
3243
+
3244
+ class seed_csp4_lessc_formatter_classic {
3245
+ public $indentChar = " ";
3246
+
3247
+ public $break = "\n";
3248
+ public $open = " {";
3249
+ public $close = "}";
3250
+ public $selectorSeparator = ", ";
3251
+ public $assignSeparator = ":";
3252
+
3253
+ public $openSingle = " { ";
3254
+ public $closeSingle = " }";
3255
+
3256
+ public $disableSingle = false;
3257
+ public $breakSelectors = false;
3258
+
3259
+ public $compressColors = false;
3260
+
3261
+ public function __construct() {
3262
+ $this->indentLevel = 0;
3263
+ }
3264
+
3265
+ public function indentStr($n = 0) {
3266
+ return str_repeat($this->indentChar, max($this->indentLevel + $n, 0));
3267
+ }
3268
+
3269
+ public function property($name, $value) {
3270
+ return $name . $this->assignSeparator . $value . ";";
3271
+ }
3272
+
3273
+ protected function isEmpty($block) {
3274
+ if (empty($block->lines)) {
3275
+ foreach ($block->children as $child) {
3276
+ if (!$this->isEmpty($child)) return false;
3277
+ }
3278
+
3279
+ return true;
3280
+ }
3281
+ return false;
3282
+ }
3283
+
3284
+ public function block($block) {
3285
+ if ($this->isEmpty($block)) return;
3286
+
3287
+ $inner = $pre = $this->indentStr();
3288
+
3289
+ $isSingle = !$this->disableSingle &&
3290
+ is_null($block->type) && count($block->lines) == 1;
3291
+
3292
+ if (!empty($block->selectors)) {
3293
+ $this->indentLevel++;
3294
+
3295
+ if ($this->breakSelectors) {
3296
+ $selectorSeparator = $this->selectorSeparator . $this->break . $pre;
3297
+ } else {
3298
+ $selectorSeparator = $this->selectorSeparator;
3299
+ }
3300
+
3301
+ echo $pre .
3302
+ implode($selectorSeparator, $block->selectors);
3303
+ if ($isSingle) {
3304
+ echo $this->openSingle;
3305
+ $inner = "";
3306
+ } else {
3307
+ echo $this->open . $this->break;
3308
+ $inner = $this->indentStr();
3309
+ }
3310
+
3311
+ }
3312
+
3313
+ if (!empty($block->lines)) {
3314
+ $glue = $this->break.$inner;
3315
+ echo $inner . implode($glue, $block->lines);
3316
+ if (!$isSingle && !empty($block->children)) {
3317
+ echo $this->break;
3318
+ }
3319
+ }
3320
+
3321
+ foreach ($block->children as $child) {
3322
+ $this->block($child);
3323
+ }
3324
+
3325
+ if (!empty($block->selectors)) {
3326
+ if (!$isSingle && empty($block->children)) echo $this->break;
3327
+
3328
+ if ($isSingle) {
3329
+ echo $this->closeSingle . $this->break;
3330
+ } else {
3331
+ echo $pre . $this->close . $this->break;
3332
+ }
3333
+
3334
+ $this->indentLevel--;
3335
+ }
3336
+ }
3337
+ }
3338
+
3339
+ class seed_csp4_lessc_formatter_compressed extends seed_csp4_lessc_formatter_classic {
3340
+ public $disableSingle = true;
3341
+ public $open = "{";
3342
+ public $selectorSeparator = ",";
3343
+ public $assignSeparator = ":";
3344
+ public $break = "";
3345
+ public $compressColors = true;
3346
+
3347
+ public function indentStr($n = 0) {
3348
+ return "";
3349
+ }
3350
+ }
3351
+
3352
+ class seed_csp4_lessc_formatter_lessjs extends seed_csp4_lessc_formatter_classic {
3353
+ public $disableSingle = true;
3354
+ public $breakSelectors = true;
3355
+ public $assignSeparator = ": ";
3356
+ public $selectorSeparator = ",";
3357
+ }
3358
+
3359
+
themes/default/bootstrap/css/bootstrap.css ADDED
@@ -0,0 +1,5958 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .seed-csp4 {
2
+ /*! normalize.css v2.1.3 | MIT License | git.io/normalize */
3
+ }
4
+ .seed-csp4 article,
5
+ .seed-csp4 aside,
6
+ .seed-csp4 details,
7
+ .seed-csp4 figcaption,
8
+ .seed-csp4 figure,
9
+ .seed-csp4 footer,
10
+ .seed-csp4 header,
11
+ .seed-csp4 hgroup,
12
+ .seed-csp4 main,
13
+ .seed-csp4 nav,
14
+ .seed-csp4 section,
15
+ .seed-csp4 summary {
16
+ display: block;
17
+ }
18
+ .seed-csp4 audio,
19
+ .seed-csp4 canvas,
20
+ .seed-csp4 video {
21
+ display: inline-block;
22
+ }
23
+ .seed-csp4 audio:not([controls]) {
24
+ display: none;
25
+ height: 0;
26
+ }
27
+ .seed-csp4 [hidden],
28
+ .seed-csp4 template {
29
+ display: none;
30
+ }
31
+ .seed-csp4 html {
32
+ font-family: sans-serif;
33
+ -ms-text-size-adjust: 100%;
34
+ -webkit-text-size-adjust: 100%;
35
+ }
36
+ .seed-csp4 body {
37
+ margin: 0;
38
+ }
39
+ .seed-csp4 a {
40
+ background: transparent;
41
+ }
42
+ .seed-csp4 a:focus {
43
+ outline: thin dotted;
44
+ }
45
+ .seed-csp4 a:active,
46
+ .seed-csp4 a:hover {
47
+ outline: 0;
48
+ }
49
+ .seed-csp4 h1 {
50
+ font-size: 2em;
51
+ margin: 0.67em 0;
52
+ }
53
+ .seed-csp4 abbr[title] {
54
+ border-bottom: 1px dotted;
55
+ }
56
+ .seed-csp4 b,
57
+ .seed-csp4 strong {
58
+ font-weight: bold;
59
+ }
60
+ .seed-csp4 dfn {
61
+ font-style: italic;
62
+ }
63
+ .seed-csp4 hr {
64
+ -moz-box-sizing: content-box;
65
+ box-sizing: content-box;
66
+ height: 0;
67
+ }
68
+ .seed-csp4 mark {
69
+ background: #ff0;
70
+ color: #000;
71
+ }
72
+ .seed-csp4 code,
73
+ .seed-csp4 kbd,
74
+ .seed-csp4 pre,
75
+ .seed-csp4 samp {
76
+ font-family: monospace, serif;
77
+ font-size: 1em;
78
+ }
79
+ .seed-csp4 pre {
80
+ white-space: pre-wrap;
81
+ }
82
+ .seed-csp4 q {
83
+ quotes: "\201C" "\201D" "\2018" "\2019";
84
+ }
85
+ .seed-csp4 small {
86
+ font-size: 80%;
87
+ }
88
+ .seed-csp4 sub,
89
+ .seed-csp4 sup {
90
+ font-size: 75%;
91
+ line-height: 0;
92
+ position: relative;
93
+ vertical-align: baseline;
94
+ }
95
+ .seed-csp4 sup {
96
+ top: -0.5em;
97
+ }
98
+ .seed-csp4 sub {
99
+ bottom: -0.25em;
100
+ }
101
+ .seed-csp4 img {
102
+ border: 0;
103
+ }
104
+ .seed-csp4 svg:not(:root) {
105
+ overflow: hidden;
106
+ }
107
+ .seed-csp4 figure {
108
+ margin: 0;
109
+ }
110
+ .seed-csp4 fieldset {
111
+ border: 1px solid #c0c0c0;
112
+ margin: 0 2px;
113
+ padding: 0.35em 0.625em 0.75em;
114
+ }
115
+ .seed-csp4 legend {
116
+ border: 0;
117
+ padding: 0;
118
+ }
119
+ .seed-csp4 button,
120
+ .seed-csp4 input,
121
+ .seed-csp4 select,
122
+ .seed-csp4 textarea {
123
+ font-family: inherit;
124
+ font-size: 100%;
125
+ margin: 0;
126
+ }
127
+ .seed-csp4 button,
128
+ .seed-csp4 input {
129
+ line-height: normal;
130
+ }
131
+ .seed-csp4 button,
132
+ .seed-csp4 select {
133
+ text-transform: none;
134
+ }
135
+ .seed-csp4 button,
136
+ .seed-csp4 html input[type="button"],
137
+ .seed-csp4 input[type="reset"],
138
+ .seed-csp4 input[type="submit"] {
139
+ -webkit-appearance: button;
140
+ cursor: pointer;
141
+ }
142
+ .seed-csp4 button[disabled],
143
+ .seed-csp4 html input[disabled] {
144
+ cursor: default;
145
+ }
146
+ .seed-csp4 input[type="checkbox"],
147
+ .seed-csp4 input[type="radio"] {
148
+ box-sizing: border-box;
149
+ padding: 0;
150
+ }
151
+ .seed-csp4 input[type="search"] {
152
+ -webkit-appearance: textfield;
153
+ -moz-box-sizing: content-box;
154
+ -webkit-box-sizing: content-box;
155
+ box-sizing: content-box;
156
+ }
157
+ .seed-csp4 input[type="search"]::-webkit-search-cancel-button,
158
+ .seed-csp4 input[type="search"]::-webkit-search-decoration {
159
+ -webkit-appearance: none;
160
+ }
161
+ .seed-csp4 button::-moz-focus-inner,
162
+ .seed-csp4 input::-moz-focus-inner {
163
+ border: 0;
164
+ padding: 0;
165
+ }
166
+ .seed-csp4 textarea {
167
+ overflow: auto;
168
+ vertical-align: top;
169
+ }
170
+ .seed-csp4 table {
171
+ border-collapse: collapse;
172
+ border-spacing: 0;
173
+ }
174
+ @media print {
175
+ .seed-csp4 * {
176
+ text-shadow: none !important;
177
+ color: #000 !important;
178
+ background: transparent !important;
179
+ box-shadow: none !important;
180
+ }
181
+ .seed-csp4 a,
182
+ .seed-csp4 a:visited {
183
+ text-decoration: underline;
184
+ }
185
+ .seed-csp4 a[href]:after {
186
+ content: " (" attr(href) ")";
187
+ }
188
+ .seed-csp4 abbr[title]:after {
189
+ content: " (" attr(title) ")";
190
+ }
191
+ .seed-csp4 a[href^="javascript:"]:after,
192
+ .seed-csp4 a[href^="#"]:after {
193
+ content: "";
194
+ }
195
+ .seed-csp4 pre,
196
+ .seed-csp4 blockquote {
197
+ border: 1px solid #999;
198
+ page-break-inside: avoid;
199
+ }
200
+ .seed-csp4 thead {
201
+ display: table-header-group;
202
+ }
203
+ .seed-csp4 tr,
204
+ .seed-csp4 img {
205
+ page-break-inside: avoid;
206
+ }
207
+ .seed-csp4 img {
208
+ max-width: 100% !important;
209
+ }
210
+ @page {
211
+ margin: 2cm .5cm;
212
+ }
213
+ .seed-csp4 p,
214
+ .seed-csp4 h2,
215
+ .seed-csp4 h3 {
216
+ orphans: 3;
217
+ widows: 3;
218
+ }
219
+ .seed-csp4 h2,
220
+ .seed-csp4 h3 {
221
+ page-break-after: avoid;
222
+ }
223
+ .seed-csp4 select {
224
+ background: #fff !important;
225
+ }
226
+ .seed-csp4 .navbar {
227
+ display: none;
228
+ }
229
+ .seed-csp4 .table td,
230
+ .seed-csp4 .table th {
231
+ background-color: #fff !important;
232
+ }
233
+ .seed-csp4 .btn > .caret,
234
+ .seed-csp4 .dropup > .btn > .caret {
235
+ border-top-color: #000 !important;
236
+ }
237
+ .seed-csp4 .label {
238
+ border: 1px solid #000;
239
+ }
240
+ .seed-csp4 .table {
241
+ border-collapse: collapse !important;
242
+ }
243
+ .seed-csp4 .table-bordered th,
244
+ .seed-csp4 .table-bordered td {
245
+ border: 1px solid #ddd !important;
246
+ }
247
+ }
248
+ .seed-csp4 *,
249
+ .seed-csp4 *:before,
250
+ .seed-csp4 *:after {
251
+ -webkit-box-sizing: border-box;
252
+ -moz-box-sizing: border-box;
253
+ box-sizing: border-box;
254
+ }
255
+ .seed-csp4 html {
256
+ font-size: 62.5%;
257
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
258
+ }
259
+ .seed-csp4 body {
260
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
261
+ font-size: 14px;
262
+ line-height: 1.428571429;
263
+ color: #333333;
264
+ background-color: #ffffff;
265
+ }
266
+ .seed-csp4 input,
267
+ .seed-csp4 button,
268
+ .seed-csp4 select,
269
+ .seed-csp4 textarea {
270
+ font-family: inherit;
271
+ font-size: inherit;
272
+ line-height: inherit;
273
+ }
274
+ .seed-csp4 a {
275
+ color: #428bca;
276
+ text-decoration: none;
277
+ }
278
+ .seed-csp4 a:hover,
279
+ .seed-csp4 a:focus {
280
+ color: #2a6496;
281
+ text-decoration: underline;
282
+ }
283
+ .seed-csp4 a:focus {
284
+ outline: thin dotted;
285
+ outline: 5px auto -webkit-focus-ring-color;
286
+ outline-offset: -2px;
287
+ }
288
+ .seed-csp4 img {
289
+ vertical-align: middle;
290
+ }
291
+ .seed-csp4 .img-responsive {
292
+ display: block;
293
+ max-width: 100%;
294
+ height: auto;
295
+ }
296
+ .seed-csp4 .img-rounded {
297
+ border-radius: 6px;
298
+ }
299
+ .seed-csp4 .img-thumbnail {
300
+ padding: 4px;
301
+ line-height: 1.428571429;
302
+ background-color: #ffffff;
303
+ border: 1px solid #dddddd;
304
+ border-radius: 4px;
305
+ -webkit-transition: all 0.2s ease-in-out;
306
+ transition: all 0.2s ease-in-out;
307
+ display: inline-block;
308
+ max-width: 100%;
309
+ height: auto;
310
+ }
311
+ .seed-csp4 .img-circle {
312
+ border-radius: 50%;
313
+ }
314
+ .seed-csp4 hr {
315
+ margin-top: 20px;
316
+ margin-bottom: 20px;
317
+ border: 0;
318
+ border-top: 1px solid #eeeeee;
319
+ }
320
+ .seed-csp4 .sr-only {
321
+ position: absolute;
322
+ width: 1px;
323
+ height: 1px;
324
+ margin: -1px;
325
+ padding: 0;
326
+ overflow: hidden;
327
+ clip: rect(0, 0, 0, 0);
328
+ border: 0;
329
+ }
330
+ .seed-csp4 h1,
331
+ .seed-csp4 h2,
332
+ .seed-csp4 h3,
333
+ .seed-csp4 h4,
334
+ .seed-csp4 h5,
335
+ .seed-csp4 h6,
336
+ .seed-csp4 .h1,
337
+ .seed-csp4 .h2,
338
+ .seed-csp4 .h3,
339
+ .seed-csp4 .h4,
340
+ .seed-csp4 .h5,
341
+ .seed-csp4 .h6 {
342
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
343
+ font-weight: 500;
344
+ line-height: 1.1;
345
+ color: inherit;
346
+ }
347
+ .seed-csp4 h1 small,
348
+ .seed-csp4 h2 small,
349
+ .seed-csp4 h3 small,
350
+ .seed-csp4 h4 small,
351
+ .seed-csp4 h5 small,
352
+ .seed-csp4 h6 small,
353
+ .seed-csp4 .h1 small,
354
+ .seed-csp4 .h2 small,
355
+ .seed-csp4 .h3 small,
356
+ .seed-csp4 .h4 small,
357
+ .seed-csp4 .h5 small,
358
+ .seed-csp4 .h6 small,
359
+ .seed-csp4 h1 .small,
360
+ .seed-csp4 h2 .small,
361
+ .seed-csp4 h3 .small,
362
+ .seed-csp4 h4 .small,
363
+ .seed-csp4 h5 .small,
364
+ .seed-csp4 h6 .small,
365
+ .seed-csp4 .h1 .small,
366
+ .seed-csp4 .h2 .small,
367
+ .seed-csp4 .h3 .small,
368
+ .seed-csp4 .h4 .small,
369
+ .seed-csp4 .h5 .small,
370
+ .seed-csp4 .h6 .small {
371
+ font-weight: normal;
372
+ line-height: 1;
373
+ color: #999999;
374
+ }
375
+ .seed-csp4 h1,
376
+ .seed-csp4 h2,
377
+ .seed-csp4 h3 {
378
+ margin-top: 20px;
379
+ margin-bottom: 10px;
380
+ }
381
+ .seed-csp4 h1 small,
382
+ .seed-csp4 h2 small,
383
+ .seed-csp4 h3 small,
384
+ .seed-csp4 h1 .small,
385
+ .seed-csp4 h2 .small,
386
+ .seed-csp4 h3 .small {
387
+ font-size: 65%;
388
+ }
389
+ .seed-csp4 h4,
390
+ .seed-csp4 h5,
391
+ .seed-csp4 h6 {
392
+ margin-top: 10px;
393
+ margin-bottom: 10px;
394
+ }
395
+ .seed-csp4 h4 small,
396
+ .seed-csp4 h5 small,
397
+ .seed-csp4 h6 small,
398
+ .seed-csp4 h4 .small,
399
+ .seed-csp4 h5 .small,
400
+ .seed-csp4 h6 .small {
401
+ font-size: 75%;
402
+ }
403
+ .seed-csp4 h1,
404
+ .seed-csp4 .h1 {
405
+ font-size: 36px;
406
+ }
407
+ .seed-csp4 h2,
408
+ .seed-csp4 .h2 {
409
+ font-size: 30px;
410
+ }
411
+ .seed-csp4 h3,
412
+ .seed-csp4 .h3 {
413
+ font-size: 24px;
414
+ }
415
+ .seed-csp4 h4,
416
+ .seed-csp4 .h4 {
417
+ font-size: 18px;
418
+ }
419
+ .seed-csp4 h5,
420
+ .seed-csp4 .h5 {
421
+ font-size: 14px;
422
+ }
423
+ .seed-csp4 h6,
424
+ .seed-csp4 .h6 {
425
+ font-size: 12px;
426
+ }
427
+ .seed-csp4 p {
428
+ margin: 0 0 10px;
429
+ }
430
+ .seed-csp4 .lead {
431
+ margin-bottom: 20px;
432
+ font-size: 16px;
433
+ font-weight: 200;
434
+ line-height: 1.4;
435
+ }
436
+ @media (min-width: 768px) {
437
+ .seed-csp4 .lead {
438
+ font-size: 21px;
439
+ }
440
+ }
441
+ .seed-csp4 small,
442
+ .seed-csp4 .small {
443
+ font-size: 85%;
444
+ }
445
+ .seed-csp4 cite {
446
+ font-style: normal;
447
+ }
448
+ .seed-csp4 .text-muted {
449
+ color: #999999;
450
+ }
451
+ .seed-csp4 .text-primary {
452
+ color: #428bca;
453
+ }
454
+ .seed-csp4 .text-primary:hover {
455
+ color: #3071a9;
456
+ }
457
+ .seed-csp4 .text-warning {
458
+ color: #8a6d3b;
459
+ }
460
+ .seed-csp4 .text-warning:hover {
461
+ color: #66512c;
462
+ }
463
+ .seed-csp4 .text-danger {
464
+ color: #a94442;
465
+ }
466
+ .seed-csp4 .text-danger:hover {
467
+ color: #843534;
468
+ }
469
+ .seed-csp4 .text-success {
470
+ color: #3c763d;
471
+ }
472
+ .seed-csp4 .text-success:hover {
473
+ color: #2b542c;
474
+ }
475
+ .seed-csp4 .text-info {
476
+ color: #31708f;
477
+ }
478
+ .seed-csp4 .text-info:hover {
479
+ color: #245269;
480
+ }
481
+ .seed-csp4 .text-left {
482
+ text-align: left;
483
+ }
484
+ .seed-csp4 .text-right {
485
+ text-align: right;
486
+ }
487
+ .seed-csp4 .text-center {
488
+ text-align: center;
489
+ }
490
+ .seed-csp4 .page-header {
491
+ padding-bottom: 9px;
492
+ margin: 40px 0 20px;
493
+ border-bottom: 1px solid #eeeeee;
494
+ }
495
+ .seed-csp4 ul,
496
+ .seed-csp4 ol {
497
+ margin-top: 0;
498
+ margin-bottom: 10px;
499
+ }
500
+ .seed-csp4 ul ul,
501
+ .seed-csp4 ol ul,
502
+ .seed-csp4 ul ol,
503
+ .seed-csp4 ol ol {
504
+ margin-bottom: 0;
505
+ }
506
+ .seed-csp4 .list-unstyled {
507
+ padding-left: 0;
508
+ list-style: none;
509
+ }
510
+ .seed-csp4 .list-inline {
511
+ padding-left: 0;
512
+ list-style: none;
513
+ }
514
+ .seed-csp4 .list-inline > li {
515
+ display: inline-block;
516
+ padding-left: 5px;
517
+ padding-right: 5px;
518
+ }
519
+ .seed-csp4 .list-inline > li:first-child {
520
+ padding-left: 0;
521
+ }
522
+ .seed-csp4 dl {
523
+ margin-top: 0;
524
+ margin-bottom: 20px;
525
+ }
526
+ .seed-csp4 dt,
527
+ .seed-csp4 dd {
528
+ line-height: 1.428571429;
529
+ }
530
+ .seed-csp4 dt {
531
+ font-weight: bold;
532
+ }
533
+ .seed-csp4 dd {
534
+ margin-left: 0;
535
+ }
536
+ @media (min-width: 768px) {
537
+ .seed-csp4 .dl-horizontal dt {
538
+ float: left;
539
+ width: 160px;
540
+ clear: left;
541
+ text-align: right;
542
+ overflow: hidden;
543
+ text-overflow: ellipsis;
544
+ white-space: nowrap;
545
+ }
546
+ .seed-csp4 .dl-horizontal dd {
547
+ margin-left: 180px;
548
+ }
549
+ .seed-csp4 .dl-horizontal dd:before,
550
+ .seed-csp4 .dl-horizontal dd:after {
551
+ content: " ";
552
+ display: table;
553
+ }
554
+ .seed-csp4 .dl-horizontal dd:after {
555
+ clear: both;
556
+ }
557
+ .seed-csp4 .dl-horizontal dd:before,
558
+ .seed-csp4 .dl-horizontal dd:after {
559
+ content: " ";
560
+ display: table;
561
+ }
562
+ .seed-csp4 .dl-horizontal dd:after {
563
+ clear: both;
564
+ }
565
+ }
566
+ .seed-csp4 abbr[title],
567
+ .seed-csp4 abbr[data-original-title] {
568
+ cursor: help;
569
+ border-bottom: 1px dotted #999999;
570
+ }
571
+ .seed-csp4 .initialism {
572
+ font-size: 90%;
573
+ text-transform: uppercase;
574
+ }
575
+ .seed-csp4 blockquote {
576
+ padding: 10px 20px;
577
+ margin: 0 0 20px;
578
+ border-left: 5px solid #eeeeee;
579
+ }
580
+ .seed-csp4 blockquote p {
581
+ font-size: 17.5px;
582
+ font-weight: 300;
583
+ line-height: 1.25;
584
+ }
585
+ .seed-csp4 blockquote p:last-child {
586
+ margin-bottom: 0;
587
+ }
588
+ .seed-csp4 blockquote small,
589
+ .seed-csp4 blockquote .small {
590
+ display: block;
591
+ line-height: 1.428571429;
592
+ color: #999999;
593
+ }
594
+ .seed-csp4 blockquote small:before,
595
+ .seed-csp4 blockquote .small:before {
596
+ content: '\2014 \00A0';
597
+ }
598
+ .seed-csp4 blockquote.pull-right {
599
+ padding-right: 15px;
600
+ padding-left: 0;
601
+ border-right: 5px solid #eeeeee;
602
+ border-left: 0;
603
+ }
604
+ .seed-csp4 blockquote.pull-right p,
605
+ .seed-csp4 blockquote.pull-right small,
606
+ .seed-csp4 blockquote.pull-right .small {
607
+ text-align: right;
608
+ }
609
+ .seed-csp4 blockquote.pull-right small:before,
610
+ .seed-csp4 blockquote.pull-right .small:before {
611
+ content: '';
612
+ }
613
+ .seed-csp4 blockquote.pull-right small:after,
614
+ .seed-csp4 blockquote.pull-right .small:after {
615
+ content: '\00A0 \2014';
616
+ }
617
+ .seed-csp4 blockquote:before,
618
+ .seed-csp4 blockquote:after {
619
+ content: "";
620
+ }
621
+ .seed-csp4 address {
622
+ margin-bottom: 20px;
623
+ font-style: normal;
624
+ line-height: 1.428571429;
625
+ }
626
+ .seed-csp4 code,
627
+ .seed-csp4 kbd,
628
+ .seed-csp4 pre,
629
+ .seed-csp4 samp {
630
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
631
+ }
632
+ .seed-csp4 code {
633
+ padding: 2px 4px;
634
+ font-size: 90%;
635
+ color: #c7254e;
636
+ background-color: #f9f2f4;
637
+ white-space: nowrap;
638
+ border-radius: 4px;
639
+ }
640
+ .seed-csp4 pre {
641
+ display: block;
642
+ padding: 9.5px;
643
+ margin: 0 0 10px;
644
+ font-size: 13px;
645
+ line-height: 1.428571429;
646
+ word-break: break-all;
647
+ word-wrap: break-word;
648
+ color: #333333;
649
+ background-color: #f5f5f5;
650
+ border: 1px solid #cccccc;
651
+ border-radius: 4px;
652
+ }
653
+ .seed-csp4 pre code {
654
+ padding: 0;
655
+ font-size: inherit;
656
+ color: inherit;
657
+ white-space: pre-wrap;
658
+ background-color: transparent;
659
+ border-radius: 0;
660
+ }
661
+ .seed-csp4 .pre-scrollable {
662
+ max-height: 340px;
663
+ overflow-y: scroll;
664
+ }
665
+ .seed-csp4 .container {
666
+ margin-right: auto;
667
+ margin-left: auto;
668
+ padding-left: 15px;
669
+ padding-right: 15px;
670
+ }
671
+ .seed-csp4 .container:before,
672
+ .seed-csp4 .container:after {
673
+ content: " ";
674
+ display: table;
675
+ }
676
+ .seed-csp4 .container:after {
677
+ clear: both;
678
+ }
679
+ .seed-csp4 .container:before,
680
+ .seed-csp4 .container:after {
681
+ content: " ";
682
+ display: table;
683
+ }
684
+ .seed-csp4 .container:after {
685
+ clear: both;
686
+ }
687
+ @media (min-width: 768px) {
688
+ .seed-csp4 .container {
689
+ width: 750px;
690
+ }
691
+ }
692
+ @media (min-width: 992px) {
693
+ .seed-csp4 .container {
694
+ width: 970px;
695
+ }
696
+ }
697
+ @media (min-width: 1200px) {
698
+ .seed-csp4 .container {
699
+ width: 1170px;
700
+ }
701
+ }
702
+ .seed-csp4 .row {
703
+ margin-left: -15px;
704
+ margin-right: -15px;
705
+ }
706
+ .seed-csp4 .row:before,
707
+ .seed-csp4 .row:after {
708
+ content: " ";
709
+ display: table;
710
+ }
711
+ .seed-csp4 .row:after {
712
+ clear: both;
713
+ }
714
+ .seed-csp4 .row:before,
715
+ .seed-csp4 .row:after {
716
+ content: " ";
717
+ display: table;
718
+ }
719
+ .seed-csp4 .row:after {
720
+ clear: both;
721
+ }
722
+ .seed-csp4 .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
723
+ position: relative;
724
+ min-height: 1px;
725
+ padding-left: 15px;
726
+ padding-right: 15px;
727
+ }
728
+ .seed-csp4 .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
729
+ float: left;
730
+ }
731
+ .seed-csp4 .col-xs-12 {
732
+ width: 100%;
733
+ }
734
+ .seed-csp4 .col-xs-11 {
735
+ width: 91.66666666666666%;
736
+ }
737
+ .seed-csp4 .col-xs-10 {
738
+ width: 83.33333333333334%;
739
+ }
740
+ .seed-csp4 .col-xs-9 {
741
+ width: 75%;
742
+ }
743
+ .seed-csp4 .col-xs-8 {
744
+ width: 66.66666666666666%;
745
+ }
746
+ .seed-csp4 .col-xs-7 {
747
+ width: 58.333333333333336%;
748
+ }
749
+ .seed-csp4 .col-xs-6 {
750
+ width: 50%;
751
+ }
752
+ .seed-csp4 .col-xs-5 {
753
+ width: 41.66666666666667%;
754
+ }
755
+ .seed-csp4 .col-xs-4 {
756
+ width: 33.33333333333333%;
757
+ }
758
+ .seed-csp4 .col-xs-3 {
759
+ width: 25%;
760
+ }
761
+ .seed-csp4 .col-xs-2 {
762
+ width: 16.666666666666664%;
763
+ }
764
+ .seed-csp4 .col-xs-1 {
765
+ width: 8.333333333333332%;
766
+ }
767
+ .seed-csp4 .col-xs-pull-12 {
768
+ right: 100%;
769
+ }
770
+ .seed-csp4 .col-xs-pull-11 {
771
+ right: 91.66666666666666%;
772
+ }
773
+ .seed-csp4 .col-xs-pull-10 {
774
+ right: 83.33333333333334%;
775
+ }
776
+ .seed-csp4 .col-xs-pull-9 {
777
+ right: 75%;
778
+ }
779
+ .seed-csp4 .col-xs-pull-8 {
780
+ right: 66.66666666666666%;
781
+ }
782
+ .seed-csp4 .col-xs-pull-7 {
783
+ right: 58.333333333333336%;
784
+ }
785
+ .seed-csp4 .col-xs-pull-6 {
786
+ right: 50%;
787
+ }
788
+ .seed-csp4 .col-xs-pull-5 {
789
+ right: 41.66666666666667%;
790
+ }
791
+ .seed-csp4 .col-xs-pull-4 {
792
+ right: 33.33333333333333%;
793
+ }
794
+ .seed-csp4 .col-xs-pull-3 {
795
+ right: 25%;
796
+ }
797
+ .seed-csp4 .col-xs-pull-2 {
798
+ right: 16.666666666666664%;
799
+ }
800
+ .seed-csp4 .col-xs-pull-1 {
801
+ right: 8.333333333333332%;
802
+ }
803
+ .seed-csp4 .col-xs-pull-0 {
804
+ right: 0%;
805
+ }
806
+ .seed-csp4 .col-xs-push-12 {
807
+ left: 100%;
808
+ }
809
+ .seed-csp4 .col-xs-push-11 {
810
+ left: 91.66666666666666%;
811
+ }
812
+ .seed-csp4 .col-xs-push-10 {
813
+ left: 83.33333333333334%;
814
+ }
815
+ .seed-csp4 .col-xs-push-9 {
816
+ left: 75%;
817
+ }
818
+ .seed-csp4 .col-xs-push-8 {
819
+ left: 66.66666666666666%;
820
+ }
821
+ .seed-csp4 .col-xs-push-7 {
822
+ left: 58.333333333333336%;
823
+ }
824
+ .seed-csp4 .col-xs-push-6 {
825
+ left: 50%;
826
+ }
827
+ .seed-csp4 .col-xs-push-5 {
828
+ left: 41.66666666666667%;
829
+ }
830
+ .seed-csp4 .col-xs-push-4 {
831
+ left: 33.33333333333333%;
832
+ }
833
+ .seed-csp4 .col-xs-push-3 {
834
+ left: 25%;
835
+ }
836
+ .seed-csp4 .col-xs-push-2 {
837
+ left: 16.666666666666664%;
838
+ }
839
+ .seed-csp4 .col-xs-push-1 {
840
+ left: 8.333333333333332%;
841
+ }
842
+ .seed-csp4 .col-xs-push-0 {
843
+ left: 0%;
844
+ }
845
+ .seed-csp4 .col-xs-offset-12 {
846
+ margin-left: 100%;
847
+ }
848
+ .seed-csp4 .col-xs-offset-11 {
849
+ margin-left: 91.66666666666666%;
850
+ }
851
+ .seed-csp4 .col-xs-offset-10 {
852
+ margin-left: 83.33333333333334%;
853
+ }
854
+ .seed-csp4 .col-xs-offset-9 {
855
+ margin-left: 75%;
856
+ }
857
+ .seed-csp4 .col-xs-offset-8 {
858
+ margin-left: 66.66666666666666%;
859
+ }
860
+ .seed-csp4 .col-xs-offset-7 {
861
+ margin-left: 58.333333333333336%;
862
+ }
863
+ .seed-csp4 .col-xs-offset-6 {
864
+ margin-left: 50%;
865
+ }
866
+ .seed-csp4 .col-xs-offset-5 {
867
+ margin-left: 41.66666666666667%;
868
+ }
869
+ .seed-csp4 .col-xs-offset-4 {
870
+ margin-left: 33.33333333333333%;
871
+ }
872
+ .seed-csp4 .col-xs-offset-3 {
873
+ margin-left: 25%;
874
+ }
875
+ .seed-csp4 .col-xs-offset-2 {
876
+ margin-left: 16.666666666666664%;
877
+ }
878
+ .seed-csp4 .col-xs-offset-1 {
879
+ margin-left: 8.333333333333332%;
880
+ }
881
+ .seed-csp4 .col-xs-offset-0 {
882
+ margin-left: 0%;
883
+ }
884
+ @media (min-width: 768px) {
885
+ .seed-csp4 .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
886
+ float: left;
887
+ }
888
+ .seed-csp4 .col-sm-12 {
889
+ width: 100%;
890
+ }
891
+ .seed-csp4 .col-sm-11 {
892
+ width: 91.66666666666666%;
893
+ }
894
+ .seed-csp4 .col-sm-10 {
895
+ width: 83.33333333333334%;
896
+ }
897
+ .seed-csp4 .col-sm-9 {
898
+ width: 75%;
899
+ }
900
+ .seed-csp4 .col-sm-8 {
901
+ width: 66.66666666666666%;
902
+ }
903
+ .seed-csp4 .col-sm-7 {
904
+ width: 58.333333333333336%;
905
+ }
906
+ .seed-csp4 .col-sm-6 {
907
+ width: 50%;
908
+ }
909
+ .seed-csp4 .col-sm-5 {
910
+ width: 41.66666666666667%;
911
+ }
912
+ .seed-csp4 .col-sm-4 {
913
+ width: 33.33333333333333%;
914
+ }
915
+ .seed-csp4 .col-sm-3 {
916
+ width: 25%;
917
+ }
918
+ .seed-csp4 .col-sm-2 {
919
+ width: 16.666666666666664%;
920
+ }
921
+ .seed-csp4 .col-sm-1 {
922
+ width: 8.333333333333332%;
923
+ }
924
+ .seed-csp4 .col-sm-pull-12 {
925
+ right: 100%;
926
+ }
927
+ .seed-csp4 .col-sm-pull-11 {
928
+ right: 91.66666666666666%;
929
+ }
930
+ .seed-csp4 .col-sm-pull-10 {
931
+ right: 83.33333333333334%;
932
+ }
933
+ .seed-csp4 .col-sm-pull-9 {
934
+ right: 75%;
935
+ }
936
+ .seed-csp4 .col-sm-pull-8 {
937
+ right: 66.66666666666666%;
938
+ }
939
+ .seed-csp4 .col-sm-pull-7 {
940
+ right: 58.333333333333336%;
941
+ }
942
+ .seed-csp4 .col-sm-pull-6 {
943
+ right: 50%;
944
+ }
945
+ .seed-csp4 .col-sm-pull-5 {
946
+ right: 41.66666666666667%;
947
+ }
948
+ .seed-csp4 .col-sm-pull-4 {
949
+ right: 33.33333333333333%;
950
+ }
951
+ .seed-csp4 .col-sm-pull-3 {
952
+ right: 25%;
953
+ }
954
+ .seed-csp4 .col-sm-pull-2 {
955
+ right: 16.666666666666664%;
956
+ }
957
+ .seed-csp4 .col-sm-pull-1 {
958
+ right: 8.333333333333332%;
959
+ }
960
+ .seed-csp4 .col-sm-pull-0 {
961
+ right: 0%;
962
+ }
963
+ .seed-csp4 .col-sm-push-12 {
964
+ left: 100%;
965
+ }
966
+ .seed-csp4 .col-sm-push-11 {
967
+ left: 91.66666666666666%;
968
+ }
969
+ .seed-csp4 .col-sm-push-10 {
970
+ left: 83.33333333333334%;
971
+ }
972
+ .seed-csp4 .col-sm-push-9 {
973
+ left: 75%;
974
+ }
975
+ .seed-csp4 .col-sm-push-8 {
976
+ left: 66.66666666666666%;
977
+ }
978
+ .seed-csp4 .col-sm-push-7 {
979
+ left: 58.333333333333336%;
980
+ }
981
+ .seed-csp4 .col-sm-push-6 {
982
+ left: 50%;
983
+ }
984
+ .seed-csp4 .col-sm-push-5 {
985
+ left: 41.66666666666667%;
986
+ }
987
+ .seed-csp4 .col-sm-push-4 {
988
+ left: 33.33333333333333%;
989
+ }
990
+ .seed-csp4 .col-sm-push-3 {
991
+ left: 25%;
992
+ }
993
+ .seed-csp4 .col-sm-push-2 {
994
+ left: 16.666666666666664%;
995
+ }
996
+ .seed-csp4 .col-sm-push-1 {
997
+ left: 8.333333333333332%;
998
+ }
999
+ .seed-csp4 .col-sm-push-0 {
1000
+ left: 0%;
1001
+ }
1002
+ .seed-csp4 .col-sm-offset-12 {
1003
+ margin-left: 100%;
1004
+ }
1005
+ .seed-csp4 .col-sm-offset-11 {
1006
+ margin-left: 91.66666666666666%;
1007
+ }
1008
+ .seed-csp4 .col-sm-offset-10 {
1009
+ margin-left: 83.33333333333334%;
1010
+ }
1011
+ .seed-csp4 .col-sm-offset-9 {
1012
+ margin-left: 75%;
1013
+ }
1014
+ .seed-csp4 .col-sm-offset-8 {
1015
+ margin-left: 66.66666666666666%;
1016
+ }
1017
+ .seed-csp4 .col-sm-offset-7 {
1018
+ margin-left: 58.333333333333336%;
1019
+ }
1020
+ .seed-csp4 .col-sm-offset-6 {
1021
+ margin-left: 50%;
1022
+ }
1023
+ .seed-csp4 .col-sm-offset-5 {
1024
+ margin-left: 41.66666666666667%;
1025
+ }
1026
+ .seed-csp4 .col-sm-offset-4 {
1027
+ margin-left: 33.33333333333333%;
1028
+ }
1029
+ .seed-csp4 .col-sm-offset-3 {
1030
+ margin-left: 25%;
1031
+ }
1032
+ .seed-csp4 .col-sm-offset-2 {
1033
+ margin-left: 16.666666666666664%;
1034
+ }
1035
+ .seed-csp4 .col-sm-offset-1 {
1036
+ margin-left: 8.333333333333332%;
1037
+ }
1038
+ .seed-csp4 .col-sm-offset-0 {
1039
+ margin-left: 0%;
1040
+ }
1041
+ }
1042
+ @media (min-width: 992px) {
1043
+ .seed-csp4 .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
1044
+ float: left;
1045
+ }
1046
+ .seed-csp4 .col-md-12 {
1047
+ width: 100%;
1048
+ }
1049
+ .seed-csp4 .col-md-11 {
1050
+ width: 91.66666666666666%;
1051
+ }
1052
+ .seed-csp4 .col-md-10 {
1053
+ width: 83.33333333333334%;
1054
+ }
1055
+ .seed-csp4 .col-md-9 {
1056
+ width: 75%;
1057
+ }
1058
+ .seed-csp4 .col-md-8 {
1059
+ width: 66.66666666666666%;
1060
+ }
1061
+ .seed-csp4 .col-md-7 {
1062
+ width: 58.333333333333336%;
1063
+ }
1064
+ .seed-csp4 .col-md-6 {
1065
+ width: 50%;
1066
+ }
1067
+ .seed-csp4 .col-md-5 {
1068
+ width: 41.66666666666667%;
1069
+ }
1070
+ .seed-csp4 .col-md-4 {
1071
+ width: 33.33333333333333%;
1072
+ }
1073
+ .seed-csp4 .col-md-3 {
1074
+ width: 25%;
1075
+ }
1076
+ .seed-csp4 .col-md-2 {
1077
+ width: 16.666666666666664%;
1078
+ }
1079
+ .seed-csp4 .col-md-1 {
1080
+ width: 8.333333333333332%;
1081
+ }
1082
+ .seed-csp4 .col-md-pull-12 {
1083
+ right: 100%;
1084
+ }
1085
+ .seed-csp4 .col-md-pull-11 {
1086
+ right: 91.66666666666666%;
1087
+ }
1088
+ .seed-csp4 .col-md-pull-10 {
1089
+ right: 83.33333333333334%;
1090
+ }
1091
+ .seed-csp4 .col-md-pull-9 {
1092
+ right: 75%;
1093
+ }
1094
+ .seed-csp4 .col-md-pull-8 {
1095
+ right: 66.66666666666666%;
1096
+ }
1097
+ .seed-csp4 .col-md-pull-7 {
1098
+ right: 58.333333333333336%;
1099
+ }
1100
+ .seed-csp4 .col-md-pull-6 {
1101
+ right: 50%;
1102
+ }
1103
+ .seed-csp4 .col-md-pull-5 {
1104
+ right: 41.66666666666667%;
1105
+ }
1106
+ .seed-csp4 .col-md-pull-4 {
1107
+ right: 33.33333333333333%;
1108
+ }
1109
+ .seed-csp4 .col-md-pull-3 {
1110
+ right: 25%;
1111
+ }
1112
+ .seed-csp4 .col-md-pull-2 {
1113
+ right: 16.666666666666664%;
1114
+ }
1115
+ .seed-csp4 .col-md-pull-1 {
1116
+ right: 8.333333333333332%;
1117
+ }
1118
+ .seed-csp4 .col-md-pull-0 {
1119
+ right: 0%;
1120
+ }
1121
+ .seed-csp4 .col-md-push-12 {
1122
+ left: 100%;
1123
+ }
1124
+ .seed-csp4 .col-md-push-11 {
1125
+ left: 91.66666666666666%;
1126
+ }
1127
+ .seed-csp4 .col-md-push-10 {
1128
+ left: 83.33333333333334%;
1129
+ }
1130
+ .seed-csp4 .col-md-push-9 {
1131
+ left: 75%;
1132
+ }
1133
+ .seed-csp4 .col-md-push-8 {
1134
+ left: 66.66666666666666%;
1135
+ }
1136
+ .seed-csp4 .col-md-push-7 {
1137
+ left: 58.333333333333336%;
1138
+ }
1139
+ .seed-csp4 .col-md-push-6 {
1140
+ left: 50%;
1141
+ }
1142
+ .seed-csp4 .col-md-push-5 {
1143
+ left: 41.66666666666667%;
1144
+ }
1145
+ .seed-csp4 .col-md-push-4 {
1146
+ left: 33.33333333333333%;
1147
+ }
1148
+ .seed-csp4 .col-md-push-3 {
1149
+ left: 25%;
1150
+ }
1151
+ .seed-csp4 .col-md-push-2 {
1152
+ left: 16.666666666666664%;
1153
+ }
1154
+ .seed-csp4 .col-md-push-1 {
1155
+ left: 8.333333333333332%;
1156
+ }
1157
+ .seed-csp4 .col-md-push-0 {
1158
+ left: 0%;
1159
+ }
1160
+ .seed-csp4 .col-md-offset-12 {
1161
+ margin-left: 100%;
1162
+ }
1163
+ .seed-csp4 .col-md-offset-11 {
1164
+ margin-left: 91.66666666666666%;
1165
+ }
1166
+ .seed-csp4 .col-md-offset-10 {
1167
+ margin-left: 83.33333333333334%;
1168
+ }
1169
+ .seed-csp4 .col-md-offset-9 {
1170
+ margin-left: 75%;
1171
+ }
1172
+ .seed-csp4 .col-md-offset-8 {
1173
+ margin-left: 66.66666666666666%;
1174
+ }
1175
+ .seed-csp4 .col-md-offset-7 {
1176
+ margin-left: 58.333333333333336%;
1177
+ }
1178
+ .seed-csp4 .col-md-offset-6 {
1179
+ margin-left: 50%;
1180
+ }
1181
+ .seed-csp4 .col-md-offset-5 {
1182
+ margin-left: 41.66666666666667%;
1183
+ }
1184
+ .seed-csp4 .col-md-offset-4 {
1185
+ margin-left: 33.33333333333333%;
1186
+ }
1187
+ .seed-csp4 .col-md-offset-3 {
1188
+ margin-left: 25%;
1189
+ }
1190
+ .seed-csp4 .col-md-offset-2 {
1191
+ margin-left: 16.666666666666664%;
1192
+ }
1193
+ .seed-csp4 .col-md-offset-1 {
1194
+ margin-left: 8.333333333333332%;
1195
+ }
1196
+ .seed-csp4 .col-md-offset-0 {
1197
+ margin-left: 0%;
1198
+ }
1199
+ }
1200
+ @media (min-width: 1200px) {
1201
+ .seed-csp4 .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
1202
+ float: left;
1203
+ }
1204
+ .seed-csp4 .col-lg-12 {
1205
+ width: 100%;
1206
+ }
1207
+ .seed-csp4 .col-lg-11 {
1208
+ width: 91.66666666666666%;
1209
+ }
1210
+ .seed-csp4 .col-lg-10 {
1211
+ width: 83.33333333333334%;
1212
+ }
1213
+ .seed-csp4 .col-lg-9 {
1214
+ width: 75%;
1215
+ }
1216
+ .seed-csp4 .col-lg-8 {
1217
+ width: 66.66666666666666%;
1218
+ }
1219
+ .seed-csp4 .col-lg-7 {
1220
+ width: 58.333333333333336%;
1221
+ }
1222
+ .seed-csp4 .col-lg-6 {
1223
+ width: 50%;
1224
+ }
1225
+ .seed-csp4 .col-lg-5 {
1226
+ width: 41.66666666666667%;
1227
+ }
1228
+ .seed-csp4 .col-lg-4 {
1229
+ width: 33.33333333333333%;
1230
+ }
1231
+ .seed-csp4 .col-lg-3 {
1232
+ width: 25%;
1233
+ }
1234
+ .seed-csp4 .col-lg-2 {
1235
+ width: 16.666666666666664%;
1236
+ }
1237
+ .seed-csp4 .col-lg-1 {
1238
+ width: 8.333333333333332%;
1239
+ }
1240
+ .seed-csp4 .col-lg-pull-12 {
1241
+ right: 100%;
1242
+ }
1243
+ .seed-csp4 .col-lg-pull-11 {
1244
+ right: 91.66666666666666%;
1245
+ }
1246
+ .seed-csp4 .col-lg-pull-10 {
1247
+ right: 83.33333333333334%;
1248
+ }
1249
+ .seed-csp4 .col-lg-pull-9 {
1250
+ right: 75%;
1251
+ }
1252
+ .seed-csp4 .col-lg-pull-8 {
1253
+ right: 66.66666666666666%;
1254
+ }
1255
+ .seed-csp4 .col-lg-pull-7 {
1256
+ right: 58.333333333333336%;
1257
+ }
1258
+ .seed-csp4 .col-lg-pull-6 {
1259
+ right: 50%;
1260
+ }
1261
+ .seed-csp4 .col-lg-pull-5 {
1262
+ right: 41.66666666666667%;
1263
+ }
1264
+ .seed-csp4 .col-lg-pull-4 {
1265
+ right: 33.33333333333333%;
1266
+ }
1267
+ .seed-csp4 .col-lg-pull-3 {
1268
+ right: 25%;
1269
+ }
1270
+ .seed-csp4 .col-lg-pull-2 {
1271
+ right: 16.666666666666664%;
1272
+ }
1273
+ .seed-csp4 .col-lg-pull-1 {
1274
+ right: 8.333333333333332%;
1275
+ }
1276
+ .seed-csp4 .col-lg-pull-0 {
1277
+ right: 0%;
1278
+ }
1279
+ .seed-csp4 .col-lg-push-12 {
1280
+ left: 100%;
1281
+ }
1282
+ .seed-csp4 .col-lg-push-11 {
1283
+ left: 91.66666666666666%;
1284
+ }
1285
+ .seed-csp4 .col-lg-push-10 {
1286
+ left: 83.33333333333334%;
1287
+ }
1288
+ .seed-csp4 .col-lg-push-9 {
1289
+ left: 75%;
1290
+ }
1291
+ .seed-csp4 .col-lg-push-8 {
1292
+ left: 66.66666666666666%;
1293
+ }
1294
+ .seed-csp4 .col-lg-push-7 {
1295
+ left: 58.333333333333336%;
1296
+ }
1297
+ .seed-csp4 .col-lg-push-6 {
1298
+ left: 50%;
1299
+ }
1300
+ .seed-csp4 .col-lg-push-5 {
1301
+ left: 41.66666666666667%;
1302
+ }
1303
+ .seed-csp4 .col-lg-push-4 {
1304
+ left: 33.33333333333333%;
1305
+ }
1306
+ .seed-csp4 .col-lg-push-3 {
1307
+ left: 25%;
1308
+ }
1309
+ .seed-csp4 .col-lg-push-2 {
1310
+ left: 16.666666666666664%;
1311
+ }
1312
+ .seed-csp4 .col-lg-push-1 {
1313
+ left: 8.333333333333332%;
1314
+ }
1315
+ .seed-csp4 .col-lg-push-0 {
1316
+ left: 0%;
1317
+ }
1318
+ .seed-csp4 .col-lg-offset-12 {
1319
+ margin-left: 100%;
1320
+ }
1321
+ .seed-csp4 .col-lg-offset-11 {
1322
+ margin-left: 91.66666666666666%;
1323
+ }
1324
+ .seed-csp4 .col-lg-offset-10 {
1325
+ margin-left: 83.33333333333334%;
1326
+ }
1327
+ .seed-csp4 .col-lg-offset-9 {
1328
+ margin-left: 75%;
1329
+ }
1330
+ .seed-csp4 .col-lg-offset-8 {
1331
+ margin-left: 66.66666666666666%;
1332
+ }
1333
+ .seed-csp4 .col-lg-offset-7 {
1334
+ margin-left: 58.333333333333336%;
1335
+ }
1336
+ .seed-csp4 .col-lg-offset-6 {
1337
+ margin-left: 50%;
1338
+ }
1339
+ .seed-csp4 .col-lg-offset-5 {
1340
+ margin-left: 41.66666666666667%;
1341
+ }
1342
+ .seed-csp4 .col-lg-offset-4 {
1343
+ margin-left: 33.33333333333333%;
1344
+ }
1345
+ .seed-csp4 .col-lg-offset-3 {
1346
+ margin-left: 25%;
1347
+ }
1348
+ .seed-csp4 .col-lg-offset-2 {
1349
+ margin-left: 16.666666666666664%;
1350
+ }
1351
+ .seed-csp4 .col-lg-offset-1 {
1352
+ margin-left: 8.333333333333332%;
1353
+ }
1354
+ .seed-csp4 .col-lg-offset-0 {
1355
+ margin-left: 0%;
1356
+ }
1357
+ }
1358
+ .seed-csp4 table {
1359
+ max-width: 100%;
1360
+ background-color: transparent;
1361
+ }
1362
+ .seed-csp4 th {
1363
+ text-align: left;
1364
+ }
1365
+ .seed-csp4 .table {
1366
+ width: 100%;
1367
+ margin-bottom: 20px;
1368
+ }
1369
+ .seed-csp4 .table > thead > tr > th,
1370
+ .seed-csp4 .table > tbody > tr > th,
1371
+ .seed-csp4 .table > tfoot > tr > th,
1372
+ .seed-csp4 .table > thead > tr > td,
1373
+ .seed-csp4 .table > tbody > tr > td,
1374
+ .seed-csp4 .table > tfoot > tr > td {
1375
+ padding: 8px;
1376
+ line-height: 1.428571429;
1377
+ vertical-align: top;
1378
+ border-top: 1px solid #dddddd;
1379
+ }
1380
+ .seed-csp4 .table > thead > tr > th {
1381
+ vertical-align: bottom;
1382
+ border-bottom: 2px solid #dddddd;
1383
+ }
1384
+ .seed-csp4 .table > caption + thead > tr:first-child > th,
1385
+ .seed-csp4 .table > colgroup + thead > tr:first-child > th,
1386
+ .seed-csp4 .table > thead:first-child > tr:first-child > th,
1387
+ .seed-csp4 .table > caption + thead > tr:first-child > td,
1388
+ .seed-csp4 .table > colgroup + thead > tr:first-child > td,
1389
+ .seed-csp4 .table > thead:first-child > tr:first-child > td {
1390
+ border-top: 0;
1391
+ }
1392
+ .seed-csp4 .table > tbody + tbody {
1393
+ border-top: 2px solid #dddddd;
1394
+ }
1395
+ .seed-csp4 .table .table {
1396
+ background-color: #ffffff;
1397
+ }
1398
+ .seed-csp4 .table-condensed > thead > tr > th,
1399
+ .seed-csp4 .table-condensed > tbody > tr > th,
1400
+ .seed-csp4 .table-condensed > tfoot > tr > th,
1401
+ .seed-csp4 .table-condensed > thead > tr > td,
1402
+ .seed-csp4 .table-condensed > tbody > tr > td,
1403
+ .seed-csp4 .table-condensed > tfoot > tr > td {
1404
+ padding: 5px;
1405
+ }
1406
+ .seed-csp4 .table-bordered {
1407
+ border: 1px solid #dddddd;
1408
+ }
1409
+ .seed-csp4 .table-bordered > thead > tr > th,
1410
+ .seed-csp4 .table-bordered > tbody > tr > th,
1411
+ .seed-csp4 .table-bordered > tfoot > tr > th,
1412
+ .seed-csp4 .table-bordered > thead > tr > td,
1413
+ .seed-csp4 .table-bordered > tbody > tr > td,
1414
+ .seed-csp4 .table-bordered > tfoot > tr > td {
1415
+ border: 1px solid #dddddd;
1416
+ }
1417
+ .seed-csp4 .table-bordered > thead > tr > th,
1418
+ .seed-csp4 .table-bordered > thead > tr > td {
1419
+ border-bottom-width: 2px;
1420
+ }
1421
+ .seed-csp4 .table-striped > tbody > tr:nth-child(odd) > td,
1422
+ .seed-csp4 .table-striped > tbody > tr:nth-child(odd) > th {
1423
+ background-color: #f9f9f9;
1424
+ }
1425
+ .seed-csp4 .table-hover > tbody > tr:hover > td,
1426
+ .seed-csp4 .table-hover > tbody > tr:hover > th {
1427
+ background-color: #f5f5f5;
1428
+ }
1429
+ .seed-csp4 table col[class*="col-"] {
1430
+ position: static;
1431
+ float: none;
1432
+ display: table-column;
1433
+ }
1434
+ .seed-csp4 table td[class*="col-"],
1435
+ .seed-csp4 table th[class*="col-"] {
1436
+ float: none;
1437
+ display: table-cell;
1438
+ }
1439
+ .seed-csp4 .table > thead > tr > .active,
1440
+ .seed-csp4 .table > tbody > tr > .active,
1441
+ .seed-csp4 .table > tfoot > tr > .active,
1442
+ .seed-csp4 .table > thead > .active > td,
1443
+ .seed-csp4 .table > tbody > .active > td,
1444
+ .seed-csp4 .table > tfoot > .active > td,
1445
+ .seed-csp4 .table > thead > .active > th,
1446
+ .seed-csp4 .table > tbody > .active > th,
1447
+ .seed-csp4 .table > tfoot > .active > th {
1448
+ background-color: #f5f5f5;
1449
+ }
1450
+ .seed-csp4 .table-hover > tbody > tr > .active:hover,
1451
+ .seed-csp4 .table-hover > tbody > .active:hover > td,
1452
+ .seed-csp4 .table-hover > tbody > .active:hover > th {
1453
+ background-color: #e8e8e8;
1454
+ }
1455
+ .seed-csp4 .table > thead > tr > .success,
1456
+ .seed-csp4 .table > tbody > tr > .success,
1457
+ .seed-csp4 .table > tfoot > tr > .success,
1458
+ .seed-csp4 .table > thead > .success > td,
1459
+ .seed-csp4 .table > tbody > .success > td,
1460
+ .seed-csp4 .table > tfoot > .success > td,
1461
+ .seed-csp4 .table > thead > .success > th,
1462
+ .seed-csp4 .table > tbody > .success > th,
1463
+ .seed-csp4 .table > tfoot > .success > th {
1464
+ background-color: #dff0d8;
1465
+ }
1466
+ .seed-csp4 .table-hover > tbody > tr > .success:hover,
1467
+ .seed-csp4 .table-hover > tbody > .success:hover > td,
1468
+ .seed-csp4 .table-hover > tbody > .success:hover > th {
1469
+ background-color: #d0e9c6;
1470
+ }
1471
+ .seed-csp4 .table > thead > tr > .danger,
1472
+ .seed-csp4 .table > tbody > tr > .danger,
1473
+ .seed-csp4 .table > tfoot > tr > .danger,
1474
+ .seed-csp4 .table > thead > .danger > td,
1475
+ .seed-csp4 .table > tbody > .danger > td,
1476
+ .seed-csp4 .table > tfoot > .danger > td,
1477
+ .seed-csp4 .table > thead > .danger > th,
1478
+ .seed-csp4 .table > tbody > .danger > th,
1479
+ .seed-csp4 .table > tfoot > .danger > th {
1480
+ background-color: #f2dede;
1481
+ }
1482
+ .seed-csp4 .table-hover > tbody > tr > .danger:hover,
1483
+ .seed-csp4 .table-hover > tbody > .danger:hover > td,
1484
+ .seed-csp4 .table-hover > tbody > .danger:hover > th {
1485
+ background-color: #ebcccc;
1486
+ }
1487
+ .seed-csp4 .table > thead > tr > .warning,
1488
+ .seed-csp4 .table > tbody > tr > .warning,
1489
+ .seed-csp4 .table > tfoot > tr > .warning,
1490
+ .seed-csp4 .table > thead > .warning > td,
1491
+ .seed-csp4 .table > tbody > .warning > td,
1492
+ .seed-csp4 .table > tfoot > .warning > td,
1493
+ .seed-csp4 .table > thead > .warning > th,
1494
+ .seed-csp4 .table > tbody > .warning > th,
1495
+ .seed-csp4 .table > tfoot > .warning > th {
1496
+ background-color: #fcf8e3;
1497
+ }
1498
+ .seed-csp4 .table-hover > tbody > tr > .warning:hover,
1499
+ .seed-csp4 .table-hover > tbody > .warning:hover > td,
1500
+ .seed-csp4 .table-hover > tbody > .warning:hover > th {
1501
+ background-color: #faf2cc;
1502
+ }
1503
+ @media (max-width: 767px) {
1504
+ .seed-csp4 .table-responsive {
1505
+ width: 100%;
1506
+ margin-bottom: 15px;
1507
+ overflow-y: hidden;
1508
+ overflow-x: scroll;
1509
+ -ms-overflow-style: -ms-autohiding-scrollbar;
1510
+ border: 1px solid #dddddd;
1511
+ -webkit-overflow-scrolling: touch;
1512
+ }
1513
+ .seed-csp4 .table-responsive > .table {
1514
+ margin-bottom: 0;
1515
+ }
1516
+ .seed-csp4 .table-responsive > .table > thead > tr > th,
1517
+ .seed-csp4 .table-responsive > .table > tbody > tr > th,
1518
+ .seed-csp4 .table-responsive > .table > tfoot > tr > th,
1519
+ .seed-csp4 .table-responsive > .table > thead > tr > td,
1520
+ .seed-csp4 .table-responsive > .table > tbody > tr > td,
1521
+ .seed-csp4 .table-responsive > .table > tfoot > tr > td {
1522
+ white-space: nowrap;
1523
+ }
1524
+ .seed-csp4 .table-responsive > .table-bordered {
1525
+ border: 0;
1526
+ }
1527
+ .seed-csp4 .table-responsive > .table-bordered > thead > tr > th:first-child,
1528
+ .seed-csp4 .table-responsive > .table-bordered > tbody > tr > th:first-child,
1529
+ .seed-csp4 .table-responsive > .table-bordered > tfoot > tr > th:first-child,
1530
+ .seed-csp4 .table-responsive > .table-bordered > thead > tr > td:first-child,
1531
+ .seed-csp4 .table-responsive > .table-bordered > tbody > tr > td:first-child,
1532
+ .seed-csp4 .table-responsive > .table-bordered > tfoot > tr > td:first-child {
1533
+ border-left: 0;
1534
+ }
1535
+ .seed-csp4 .table-responsive > .table-bordered > thead > tr > th:last-child,
1536
+ .seed-csp4 .table-responsive > .table-bordered > tbody > tr > th:last-child,
1537
+ .seed-csp4 .table-responsive > .table-bordered > tfoot > tr > th:last-child,
1538
+ .seed-csp4 .table-responsive > .table-bordered > thead > tr > td:last-child,
1539
+ .seed-csp4 .table-responsive > .table-bordered > tbody > tr > td:last-child,
1540
+ .seed-csp4 .table-responsive > .table-bordered > tfoot > tr > td:last-child {
1541
+ border-right: 0;
1542
+ }
1543
+ .seed-csp4 .table-responsive > .table-bordered > tbody > tr:last-child > th,
1544
+ .seed-csp4 .table-responsive > .table-bordered > tfoot > tr:last-child > th,
1545
+ .seed-csp4 .table-responsive > .table-bordered > tbody > tr:last-child > td,
1546
+ .seed-csp4 .table-responsive > .table-bordered > tfoot > tr:last-child > td {
1547
+ border-bottom: 0;
1548
+ }
1549
+ }
1550
+ .seed-csp4 fieldset {
1551
+ padding: 0;
1552
+ margin: 0;
1553
+ border: 0;
1554
+ }
1555
+ .seed-csp4 legend {
1556
+ display: block;
1557
+ width: 100%;
1558
+ padding: 0;
1559
+ margin-bottom: 20px;
1560
+ font-size: 21px;
1561
+ line-height: inherit;
1562
+ color: #333333;
1563
+ border: 0;
1564
+ border-bottom: 1px solid #e5e5e5;
1565
+ }
1566
+ .seed-csp4 label {
1567
+ display: inline-block;
1568
+ margin-bottom: 5px;
1569
+ font-weight: bold;
1570
+ }
1571
+ .seed-csp4 input[type="search"] {
1572
+ -webkit-box-sizing: border-box;
1573
+ -moz-box-sizing: border-box;
1574
+ box-sizing: border-box;
1575
+ }
1576
+ .seed-csp4 input[type="radio"],
1577
+ .seed-csp4 input[type="checkbox"] {
1578
+ margin: 4px 0 0;
1579
+ margin-top: 1px \9;
1580
+ /* IE8-9 */
1581
+ line-height: normal;
1582
+ }
1583
+ .seed-csp4 input[type="file"] {
1584
+ display: block;
1585
+ }
1586
+ .seed-csp4 select[multiple],
1587
+ .seed-csp4 select[size] {
1588
+ height: auto;
1589
+ }
1590
+ .seed-csp4 select optgroup {
1591
+ font-size: inherit;
1592
+ font-style: inherit;
1593
+ font-family: inherit;
1594
+ }
1595
+ .seed-csp4 input[type="file"]:focus,
1596
+ .seed-csp4 input[type="radio"]:focus,
1597
+ .seed-csp4 input[type="checkbox"]:focus {
1598
+ outline: thin dotted;
1599
+ outline: 5px auto -webkit-focus-ring-color;
1600
+ outline-offset: -2px;
1601
+ }
1602
+ .seed-csp4 input[type="number"]::-webkit-outer-spin-button,
1603
+ .seed-csp4 input[type="number"]::-webkit-inner-spin-button {
1604
+ height: auto;
1605
+ }
1606
+ .seed-csp4 output {
1607
+ display: block;
1608
+ padding-top: 7px;
1609
+ font-size: 14px;
1610
+ line-height: 1.428571429;
1611
+ color: #555555;
1612
+ vertical-align: middle;
1613
+ }
1614
+ .seed-csp4 .form-control {
1615
+ display: block;
1616
+ width: 100%;
1617
+ height: 34px;
1618
+ padding: 6px 12px;
1619
+ font-size: 14px;
1620
+ line-height: 1.428571429;
1621
+ color: #555555;
1622
+ vertical-align: middle;
1623
+ background-color: #ffffff;
1624
+ background-image: none;
1625
+ border: 1px solid #cccccc;
1626
+ border-radius: 4px;
1627
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1628
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1629
+ -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1630
+ transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
1631
+ }
1632
+ .seed-csp4 .form-control:focus {
1633
+ border-color: #66afe9;
1634
+ outline: 0;
1635
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
1636
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
1637
+ }
1638
+ .seed-csp4 .form-control:-moz-placeholder {
1639
+ color: #999999;
1640
+ }
1641
+ .seed-csp4 .form-control::-moz-placeholder {
1642
+ color: #999999;
1643
+ opacity: 1;
1644
+ }
1645
+ .seed-csp4 .form-control:-ms-input-placeholder {
1646
+ color: #999999;
1647
+ }
1648
+ .seed-csp4 .form-control::-webkit-input-placeholder {
1649
+ color: #999999;
1650
+ }
1651
+ .seed-csp4 .form-control[disabled],
1652
+ .seed-csp4 .form-control[readonly],
1653
+ fieldset[disabled] .seed-csp4 .form-control {
1654
+ cursor: not-allowed;
1655
+ background-color: #eeeeee;
1656
+ }
1657
+ textarea.seed-csp4 .form-control {
1658
+ height: auto;
1659
+ }
1660
+ .seed-csp4 .form-group {
1661
+ margin-bottom: 15px;
1662
+ }
1663
+ .seed-csp4 .radio,
1664
+ .seed-csp4 .checkbox {
1665
+ display: block;
1666
+ min-height: 20px;
1667
+ margin-top: 10px;
1668
+ margin-bottom: 10px;
1669
+ padding-left: 20px;
1670
+ vertical-align: middle;
1671
+ }
1672
+ .seed-csp4 .radio label,
1673
+ .seed-csp4 .checkbox label {
1674
+ display: inline;
1675
+ margin-bottom: 0;
1676
+ font-weight: normal;
1677
+ cursor: pointer;
1678
+ }
1679
+ .seed-csp4 .radio input[type="radio"],
1680
+ .seed-csp4 .radio-inline input[type="radio"],
1681
+ .seed-csp4 .checkbox input[type="checkbox"],
1682
+ .seed-csp4 .checkbox-inline input[type="checkbox"] {
1683
+ float: left;
1684
+ margin-left: -20px;
1685
+ }
1686
+ .seed-csp4 .radio + .radio,
1687
+ .seed-csp4 .checkbox + .checkbox {
1688
+ margin-top: -5px;
1689
+ }
1690
+ .seed-csp4 .radio-inline,
1691
+ .seed-csp4 .checkbox-inline {
1692
+ display: inline-block;
1693
+ padding-left: 20px;
1694
+ margin-bottom: 0;
1695
+ vertical-align: middle;
1696
+ font-weight: normal;
1697
+ cursor: pointer;
1698
+ }
1699
+ .seed-csp4 .radio-inline + .radio-inline,
1700
+ .seed-csp4 .checkbox-inline + .checkbox-inline {
1701
+ margin-top: 0;
1702
+ margin-left: 10px;
1703
+ }
1704
+ .seed-csp4 input[type="radio"][disabled],
1705
+ .seed-csp4 input[type="checkbox"][disabled],
1706
+ .seed-csp4 .radio[disabled],
1707
+ .seed-csp4 .radio-inline[disabled],
1708
+ .seed-csp4 .checkbox[disabled],
1709
+ .seed-csp4 .checkbox-inline[disabled],
1710
+ fieldset[disabled] .seed-csp4 input[type="radio"],
1711
+ fieldset[disabled] .seed-csp4 input[type="checkbox"],
1712
+ fieldset[disabled] .seed-csp4 .radio,
1713
+ fieldset[disabled] .seed-csp4 .radio-inline,
1714
+ fieldset[disabled] .seed-csp4 .checkbox,
1715
+ fieldset[disabled] .seed-csp4 .checkbox-inline {
1716
+ cursor: not-allowed;
1717
+ }
1718
+ .seed-csp4 .input-sm {
1719
+ height: 30px;
1720
+ padding: 5px 10px;
1721
+ font-size: 12px;
1722
+ line-height: 1.5;
1723
+ border-radius: 3px;
1724
+ }
1725
+ select.seed-csp4 .input-sm {
1726
+ height: 30px;
1727
+ line-height: 30px;
1728
+ }
1729
+ textarea.seed-csp4 .input-sm {
1730
+ height: auto;
1731
+ }
1732
+ .seed-csp4 .input-lg {
1733
+ height: 46px;
1734
+ padding: 10px 16px;
1735
+ font-size: 18px;
1736
+ line-height: 1.33;
1737
+ border-radius: 6px;
1738
+ }
1739
+ select.seed-csp4 .input-lg {
1740
+ height: 46px;
1741
+ line-height: 46px;
1742
+ }
1743
+ textarea.seed-csp4 .input-lg {
1744
+ height: auto;
1745
+ }
1746
+ .seed-csp4 .has-warning .help-block,
1747
+ .seed-csp4 .has-warning .control-label,
1748
+ .seed-csp4 .has-warning .radio,
1749
+ .seed-csp4 .has-warning .checkbox,
1750
+ .seed-csp4 .has-warning .radio-inline,
1751
+ .seed-csp4 .has-warning .checkbox-inline {
1752
+ color: #8a6d3b;
1753
+ }
1754
+ .seed-csp4 .has-warning .form-control {
1755
+ border-color: #8a6d3b;
1756
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1757
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1758
+ }
1759
+ .seed-csp4 .has-warning .form-control:focus {
1760
+ border-color: #66512c;
1761
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1762
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1763
+ }
1764
+ .seed-csp4 .has-warning .input-group-addon {
1765
+ color: #8a6d3b;
1766
+ border-color: #8a6d3b;
1767
+ background-color: #fcf8e3;
1768
+ }
1769
+ .seed-csp4 .has-error .help-block,
1770
+ .seed-csp4 .has-error .control-label,
1771
+ .seed-csp4 .has-error .radio,
1772
+ .seed-csp4 .has-error .checkbox,
1773
+ .seed-csp4 .has-error .radio-inline,
1774
+ .seed-csp4 .has-error .checkbox-inline {
1775
+ color: #a94442;
1776
+ }
1777
+ .seed-csp4 .has-error .form-control {
1778
+ border-color: #a94442;
1779
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1780
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1781
+ }
1782
+ .seed-csp4 .has-error .form-control:focus {
1783
+ border-color: #843534;
1784
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1785
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1786
+ }
1787
+ .seed-csp4 .has-error .input-group-addon {
1788
+ color: #a94442;
1789
+ border-color: #a94442;
1790
+ background-color: #f2dede;
1791
+ }
1792
+ .seed-csp4 .has-success .help-block,
1793
+ .seed-csp4 .has-success .control-label,
1794
+ .seed-csp4 .has-success .radio,
1795
+ .seed-csp4 .has-success .checkbox,
1796
+ .seed-csp4 .has-success .radio-inline,
1797
+ .seed-csp4 .has-success .checkbox-inline {
1798
+ color: #3c763d;
1799
+ }
1800
+ .seed-csp4 .has-success .form-control {
1801
+ border-color: #3c763d;
1802
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1803
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1804
+ }
1805
+ .seed-csp4 .has-success .form-control:focus {
1806
+ border-color: #2b542c;
1807
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1808
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1809
+ }
1810
+ .seed-csp4 .has-success .input-group-addon {
1811
+ color: #3c763d;
1812
+ border-color: #3c763d;
1813
+ background-color: #dff0d8;
1814
+ }
1815
+ .seed-csp4 .form-control-static {
1816
+ margin-bottom: 0;
1817
+ }
1818
+ .seed-csp4 .help-block {
1819
+ display: block;
1820
+ margin-top: 5px;
1821
+ margin-bottom: 10px;
1822
+ color: #737373;
1823
+ }
1824
+ @media (min-width: 768px) {
1825
+ .seed-csp4 .form-inline .form-group {
1826
+ display: inline-block;
1827
+ margin-bottom: 0;
1828
+ vertical-align: middle;
1829
+ }
1830
+ .seed-csp4 .form-inline .form-control {
1831
+ display: inline-block;
1832
+ }
1833
+ .seed-csp4 .form-inline select.form-control {
1834
+ width: auto;
1835
+ }
1836
+ .seed-csp4 .form-inline .radio,
1837
+ .seed-csp4 .form-inline .checkbox {
1838
+ display: inline-block;
1839
+ margin-top: 0;
1840
+ margin-bottom: 0;
1841
+ padding-left: 0;
1842
+ }
1843
+ .seed-csp4 .form-inline .radio input[type="radio"],
1844
+ .seed-csp4 .form-inline .checkbox input[type="checkbox"] {
1845
+ float: none;
1846
+ margin-left: 0;
1847
+ }
1848
+ }
1849
+ .seed-csp4 .form-horizontal .control-label,
1850
+ .seed-csp4 .form-horizontal .radio,
1851
+ .seed-csp4 .form-horizontal .checkbox,
1852
+ .seed-csp4 .form-horizontal .radio-inline,
1853
+ .seed-csp4 .form-horizontal .checkbox-inline {
1854
+ margin-top: 0;
1855
+ margin-bottom: 0;
1856
+ padding-top: 7px;
1857
+ }
1858
+ .seed-csp4 .form-horizontal .radio,
1859
+ .seed-csp4 .form-horizontal .checkbox {
1860
+ min-height: 27px;
1861
+ }
1862
+ .seed-csp4 .form-horizontal .form-group {
1863
+ margin-left: -15px;
1864
+ margin-right: -15px;
1865
+ }
1866
+ .seed-csp4 .form-horizontal .form-group:before,
1867
+ .seed-csp4 .form-horizontal .form-group:after {
1868
+ content: " ";
1869
+ display: table;
1870
+ }
1871
+ .seed-csp4 .form-horizontal .form-group:after {
1872
+ clear: both;
1873
+ }
1874
+ .seed-csp4 .form-horizontal .form-group:before,
1875
+ .seed-csp4 .form-horizontal .form-group:after {
1876
+ content: " ";
1877
+ display: table;
1878
+ }
1879
+ .seed-csp4 .form-horizontal .form-group:after {
1880
+ clear: both;
1881
+ }
1882
+ .seed-csp4 .form-horizontal .form-control-static {
1883
+ padding-top: 7px;
1884
+ }
1885
+ @media (min-width: 768px) {
1886
+ .seed-csp4 .form-horizontal .control-label {
1887
+ text-align: right;
1888
+ }
1889
+ }
1890
+ .seed-csp4 .btn {
1891
+ display: inline-block;
1892
+ margin-bottom: 0;
1893
+ font-weight: normal;
1894
+ text-align: center;
1895
+ vertical-align: middle;
1896
+ cursor: pointer;
1897
+ background-image: none;
1898
+ border: 1px solid transparent;
1899
+ white-space: nowrap;
1900
+ padding: 6px 12px;
1901
+ font-size: 14px;
1902
+ line-height: 1.428571429;
1903
+ border-radius: 4px;
1904
+ -webkit-user-select: none;
1905
+ -moz-user-select: none;
1906
+ -ms-user-select: none;
1907
+ -o-user-select: none;
1908
+ user-select: none;
1909
+ }
1910
+ .seed-csp4 .btn:focus {
1911
+ outline: thin dotted;
1912
+ outline: 5px auto -webkit-focus-ring-color;
1913
+ outline-offset: -2px;
1914
+ }
1915
+ .seed-csp4 .btn:hover,
1916
+ .seed-csp4 .btn:focus {
1917
+ color: #333333;
1918
+ text-decoration: none;
1919
+ }
1920
+ .seed-csp4 .btn:active,
1921
+ .seed-csp4 .btn.active {
1922
+ outline: 0;
1923
+ background-image: none;
1924
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1925
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1926
+ }
1927
+ .seed-csp4 .btn.disabled,
1928
+ .seed-csp4 .btn[disabled],
1929
+ fieldset[disabled] .seed-csp4 .btn {
1930
+ cursor: not-allowed;
1931
+ pointer-events: none;
1932
+ opacity: 0.65;
1933
+ filter: alpha(opacity=65);
1934
+ -webkit-box-shadow: none;
1935
+ box-shadow: none;
1936
+ }
1937
+ .seed-csp4 .btn-default {
1938
+ color: #333333;
1939
+ background-color: #ffffff;
1940
+ border-color: #cccccc;
1941
+ }
1942
+ .seed-csp4 .btn-default:hover,
1943
+ .seed-csp4 .btn-default:focus,
1944
+ .seed-csp4 .btn-default:active,
1945
+ .seed-csp4 .btn-default.active,
1946
+ .open .dropdown-toggle.seed-csp4 .btn-default {
1947
+ color: #333333;
1948
+ background-color: #ebebeb;
1949
+ border-color: #adadad;
1950
+ }
1951
+ .seed-csp4 .btn-default:active,
1952
+ .seed-csp4 .btn-default.active,
1953
+ .open .dropdown-toggle.seed-csp4 .btn-default {
1954
+ background-image: none;
1955
+ }
1956
+ .seed-csp4 .btn-default.disabled,
1957
+ .seed-csp4 .btn-default[disabled],
1958
+ fieldset[disabled] .seed-csp4 .btn-default,
1959
+ .seed-csp4 .btn-default.disabled:hover,
1960
+ .seed-csp4 .btn-default[disabled]:hover,
1961
+ fieldset[disabled] .seed-csp4 .btn-default:hover,
1962
+ .seed-csp4 .btn-default.disabled:focus,
1963
+ .seed-csp4 .btn-default[disabled]:focus,
1964
+ fieldset[disabled] .seed-csp4 .btn-default:focus,
1965
+ .seed-csp4 .btn-default.disabled:active,
1966
+ .seed-csp4 .btn-default[disabled]:active,
1967
+ fieldset[disabled] .seed-csp4 .btn-default:active,
1968
+ .seed-csp4 .btn-default.disabled.active,
1969
+ .seed-csp4 .btn-default[disabled].active,
1970
+ fieldset[disabled] .seed-csp4 .btn-default.active {
1971
+ background-color: #ffffff;
1972
+ border-color: #cccccc;
1973
+ }
1974
+ .seed-csp4 .btn-default .badge {
1975
+ color: #ffffff;
1976
+ background-color: #fff;
1977
+ }
1978
+ .seed-csp4 .btn-primary {
1979
+ color: #ffffff;
1980
+ background-color: #428bca;
1981
+ border-color: #357ebd;
1982
+ }
1983
+ .seed-csp4 .btn-primary:hover,
1984
+ .seed-csp4 .btn-primary:focus,
1985
+ .seed-csp4 .btn-primary:active,
1986
+ .seed-csp4 .btn-primary.active,
1987
+ .open .dropdown-toggle.seed-csp4 .btn-primary {
1988
+ color: #ffffff;
1989
+ background-color: #3276b1;
1990
+ border-color: #285e8e;
1991
+ }
1992
+ .seed-csp4 .btn-primary:active,
1993
+ .seed-csp4 .btn-primary.active,
1994
+ .open .dropdown-toggle.seed-csp4 .btn-primary {
1995
+ background-image: none;
1996
+ }
1997
+ .seed-csp4 .btn-primary.disabled,
1998
+ .seed-csp4 .btn-primary[disabled],
1999
+ fieldset[disabled] .seed-csp4 .btn-primary,
2000
+ .seed-csp4 .btn-primary.disabled:hover,
2001
+ .seed-csp4 .btn-primary[disabled]:hover,
2002
+ fieldset[disabled] .seed-csp4 .btn-primary:hover,
2003
+ .seed-csp4 .btn-primary.disabled:focus,
2004
+ .seed-csp4 .btn-primary[disabled]:focus,
2005
+ fieldset[disabled] .seed-csp4 .btn-primary:focus,
2006
+ .seed-csp4 .btn-primary.disabled:active,
2007
+ .seed-csp4 .btn-primary[disabled]:active,
2008
+ fieldset[disabled] .seed-csp4 .btn-primary:active,
2009
+ .seed-csp4 .btn-primary.disabled.active,
2010
+ .seed-csp4 .btn-primary[disabled].active,
2011
+ fieldset[disabled] .seed-csp4 .btn-primary.active {
2012
+ background-color: #428bca;
2013
+ border-color: #357ebd;
2014
+ }
2015
+ .seed-csp4 .btn-primary .badge {
2016
+ color: #428bca;
2017
+ background-color: #fff;
2018
+ }
2019
+ .seed-csp4 .btn-warning {
2020
+ color: #ffffff;
2021
+ background-color: #f0ad4e;
2022
+ border-color: #eea236;
2023
+ }
2024
+ .seed-csp4 .btn-warning:hover,
2025
+ .seed-csp4 .btn-warning:focus,
2026
+ .seed-csp4 .btn-warning:active,
2027
+ .seed-csp4 .btn-warning.active,
2028
+ .open .dropdown-toggle.seed-csp4 .btn-warning {
2029
+ color: #ffffff;
2030
+ background-color: #ed9c28;
2031
+ border-color: #d58512;
2032
+ }
2033
+ .seed-csp4 .btn-warning:active,
2034
+ .seed-csp4 .btn-warning.active,
2035
+ .open .dropdown-toggle.seed-csp4 .btn-warning {
2036
+ background-image: none;
2037
+ }
2038
+ .seed-csp4 .btn-warning.disabled,
2039
+ .seed-csp4 .btn-warning[disabled],
2040
+ fieldset[disabled] .seed-csp4 .btn-warning,
2041
+ .seed-csp4 .btn-warning.disabled:hover,
2042
+ .seed-csp4 .btn-warning[disabled]:hover,
2043
+ fieldset[disabled] .seed-csp4 .btn-warning:hover,
2044
+ .seed-csp4 .btn-warning.disabled:focus,
2045
+ .seed-csp4 .btn-warning[disabled]:focus,
2046
+ fieldset[disabled] .seed-csp4 .btn-warning:focus,
2047
+ .seed-csp4 .btn-warning.disabled:active,
2048
+ .seed-csp4 .btn-warning[disabled]:active,
2049
+ fieldset[disabled] .seed-csp4 .btn-warning:active,
2050
+ .seed-csp4 .btn-warning.disabled.active,
2051
+ .seed-csp4 .btn-warning[disabled].active,
2052
+ fieldset[disabled] .seed-csp4 .btn-warning.active {
2053
+ background-color: #f0ad4e;
2054
+ border-color: #eea236;
2055
+ }
2056
+ .seed-csp4 .btn-warning .badge {
2057
+ color: #f0ad4e;
2058
+ background-color: #fff;
2059
+ }
2060
+ .seed-csp4 .btn-danger {
2061
+ color: #ffffff;
2062
+ background-color: #d9534f;
2063
+ border-color: #d43f3a;
2064
+ }
2065
+ .seed-csp4 .btn-danger:hover,
2066
+ .seed-csp4 .btn-danger:focus,
2067
+ .seed-csp4 .btn-danger:active,
2068
+ .seed-csp4 .btn-danger.active,
2069
+ .open .dropdown-toggle.seed-csp4 .btn-danger {
2070
+ color: #ffffff;
2071
+ background-color: #d2322d;
2072
+ border-color: #ac2925;
2073
+ }
2074
+ .seed-csp4 .btn-danger:active,
2075
+ .seed-csp4 .btn-danger.active,
2076
+ .open .dropdown-toggle.seed-csp4 .btn-danger {
2077
+ background-image: none;
2078
+ }
2079
+ .seed-csp4 .btn-danger.disabled,
2080
+ .seed-csp4 .btn-danger[disabled],
2081
+ fieldset[disabled] .seed-csp4 .btn-danger,
2082
+ .seed-csp4 .btn-danger.disabled:hover,
2083
+ .seed-csp4 .btn-danger[disabled]:hover,
2084
+ fieldset[disabled] .seed-csp4 .btn-danger:hover,
2085
+ .seed-csp4 .btn-danger.disabled:focus,
2086
+ .seed-csp4 .btn-danger[disabled]:focus,
2087
+ fieldset[disabled] .seed-csp4 .btn-danger:focus,
2088
+ .seed-csp4 .btn-danger.disabled:active,
2089
+ .seed-csp4 .btn-danger[disabled]:active,
2090
+ fieldset[disabled] .seed-csp4 .btn-danger:active,
2091
+ .seed-csp4 .btn-danger.disabled.active,
2092
+ .seed-csp4 .btn-danger[disabled].active,
2093
+ fieldset[disabled] .seed-csp4 .btn-danger.active {
2094
+ background-color: #d9534f;
2095
+ border-color: #d43f3a;
2096
+ }
2097
+ .seed-csp4 .btn-danger .badge {
2098
+ color: #d9534f;
2099
+ background-color: #fff;
2100
+ }
2101
+ .seed-csp4 .btn-success {
2102
+ color: #ffffff;
2103
+ background-color: #5cb85c;
2104
+ border-color: #4cae4c;
2105
+ }
2106
+ .seed-csp4 .btn-success:hover,
2107
+ .seed-csp4 .btn-success:focus,
2108
+ .seed-csp4 .btn-success:active,
2109
+ .seed-csp4 .btn-success.active,
2110
+ .open .dropdown-toggle.seed-csp4 .btn-success {
2111
+ color: #ffffff;
2112
+ background-color: #47a447;
2113
+ border-color: #398439;
2114
+ }
2115
+ .seed-csp4 .btn-success:active,
2116
+ .seed-csp4 .btn-success.active,
2117
+ .open .dropdown-toggle.seed-csp4 .btn-success {
2118
+ background-image: none;
2119
+ }
2120
+ .seed-csp4 .btn-success.disabled,
2121
+ .seed-csp4 .btn-success[disabled],
2122
+ fieldset[disabled] .seed-csp4 .btn-success,
2123
+ .seed-csp4 .btn-success.disabled:hover,
2124
+ .seed-csp4 .btn-success[disabled]:hover,
2125
+ fieldset[disabled] .seed-csp4 .btn-success:hover,
2126
+ .seed-csp4 .btn-success.disabled:focus,
2127
+ .seed-csp4 .btn-success[disabled]:focus,
2128
+ fieldset[disabled] .seed-csp4 .btn-success:focus,
2129
+ .seed-csp4 .btn-success.disabled:active,
2130
+ .seed-csp4 .btn-success[disabled]:active,
2131
+ fieldset[disabled] .seed-csp4 .btn-success:active,
2132
+ .seed-csp4 .btn-success.disabled.active,
2133
+ .seed-csp4 .btn-success[disabled].active,
2134
+ fieldset[disabled] .seed-csp4 .btn-success.active {
2135
+ background-color: #5cb85c;
2136
+ border-color: #4cae4c;
2137
+ }
2138
+ .seed-csp4 .btn-success .badge {
2139
+ color: #5cb85c;
2140
+ background-color: #fff;
2141
+ }
2142
+ .seed-csp4 .btn-info {
2143
+ color: #ffffff;
2144
+ background-color: #5bc0de;
2145
+ border-color: #46b8da;
2146
+ }
2147
+ .seed-csp4 .btn-info:hover,
2148
+ .seed-csp4 .btn-info:focus,
2149
+ .seed-csp4 .btn-info:active,
2150
+ .seed-csp4 .btn-info.active,
2151
+ .open .dropdown-toggle.seed-csp4 .btn-info {
2152
+ color: #ffffff;
2153
+ background-color: #39b3d7;
2154
+ border-color: #269abc;
2155
+ }
2156
+ .seed-csp4 .btn-info:active,
2157
+ .seed-csp4 .btn-info.active,
2158
+ .open .dropdown-toggle.seed-csp4 .btn-info {
2159
+ background-image: none;
2160
+ }
2161
+ .seed-csp4 .btn-info.disabled,
2162
+ .seed-csp4 .btn-info[disabled],
2163
+ fieldset[disabled] .seed-csp4 .btn-info,
2164
+ .seed-csp4 .btn-info.disabled:hover,
2165
+ .seed-csp4 .btn-info[disabled]:hover,
2166
+ fieldset[disabled] .seed-csp4 .btn-info:hover,
2167
+ .seed-csp4 .btn-info.disabled:focus,
2168
+ .seed-csp4 .btn-info[disabled]:focus,
2169
+ fieldset[disabled] .seed-csp4 .btn-info:focus,
2170
+ .seed-csp4 .btn-info.disabled:active,
2171
+ .seed-csp4 .btn-info[disabled]:active,
2172
+ fieldset[disabled] .seed-csp4 .btn-info:active,
2173
+ .seed-csp4 .btn-info.disabled.active,
2174
+ .seed-csp4 .btn-info[disabled].active,
2175
+ fieldset[disabled] .seed-csp4 .btn-info.active {
2176
+ background-color: #5bc0de;
2177
+ border-color: #46b8da;
2178
+ }
2179
+ .seed-csp4 .btn-info .badge {
2180
+ color: #5bc0de;
2181
+ background-color: #fff;
2182
+ }
2183
+ .seed-csp4 .btn-link {
2184
+ color: #428bca;
2185
+ font-weight: normal;
2186
+ cursor: pointer;
2187
+ border-radius: 0;
2188
+ }
2189
+ .seed-csp4 .btn-link,
2190
+ .seed-csp4 .btn-link:active,
2191
+ .seed-csp4 .btn-link[disabled],
2192
+ fieldset[disabled] .seed-csp4 .btn-link {
2193
+ background-color: transparent;
2194
+ -webkit-box-shadow: none;
2195
+ box-shadow: none;
2196
+ }
2197
+ .seed-csp4 .btn-link,
2198
+ .seed-csp4 .btn-link:hover,
2199
+ .seed-csp4 .btn-link:focus,
2200
+ .seed-csp4 .btn-link:active {
2201
+ border-color: transparent;
2202
+ }
2203
+ .seed-csp4 .btn-link:hover,
2204
+ .seed-csp4 .btn-link:focus {
2205
+ color: #2a6496;
2206
+ text-decoration: underline;
2207
+ background-color: transparent;
2208
+ }
2209
+ .seed-csp4 .btn-link[disabled]:hover,
2210
+ fieldset[disabled] .seed-csp4 .btn-link:hover,
2211
+ .seed-csp4 .btn-link[disabled]:focus,
2212
+ fieldset[disabled] .seed-csp4 .btn-link:focus {
2213
+ color: #999999;
2214
+ text-decoration: none;
2215
+ }
2216
+ .seed-csp4 .btn-lg {
2217
+ padding: 10px 16px;
2218
+ font-size: 18px;
2219
+ line-height: 1.33;
2220
+ border-radius: 6px;
2221
+ }
2222
+ .seed-csp4 .btn-sm {
2223
+ padding: 5px 10px;
2224
+ font-size: 12px;
2225
+ line-height: 1.5;
2226
+ border-radius: 3px;
2227
+ }
2228
+ .seed-csp4 .btn-xs {
2229
+ padding: 1px 5px;
2230
+ font-size: 12px;
2231
+ line-height: 1.5;
2232
+ border-radius: 3px;
2233
+ }
2234
+ .seed-csp4 .btn-block {
2235
+ display: block;
2236
+ width: 100%;
2237
+ padding-left: 0;
2238
+ padding-right: 0;
2239
+ }
2240
+ .seed-csp4 .btn-block + .btn-block {
2241
+ margin-top: 5px;
2242
+ }
2243
+ .seed-csp4 input[type="submit"].btn-block,
2244
+ .seed-csp4 input[type="reset"].btn-block,
2245
+ .seed-csp4 input[type="button"].btn-block {
2246
+ width: 100%;
2247
+ }
2248
+ .seed-csp4 .fade {
2249
+ opacity: 0;
2250
+ -webkit-transition: opacity 0.15s linear;
2251
+ transition: opacity 0.15s linear;
2252
+ }
2253
+ .seed-csp4 .fade.in {
2254
+ opacity: 1;
2255
+ }
2256
+ .seed-csp4 .collapse {
2257
+ display: none;
2258
+ }
2259
+ .seed-csp4 .collapse.in {
2260
+ display: block;
2261
+ }
2262
+ .seed-csp4 .collapsing {
2263
+ position: relative;
2264
+ height: 0;
2265
+ overflow: hidden;
2266
+ -webkit-transition: height 0.35s ease;
2267
+ transition: height 0.35s ease;
2268
+ }
2269
+ @font-face {
2270
+ font-family: 'Glyphicons Halflings';
2271
+ src: url('../fonts/glyphicons-halflings-regular.eot');
2272
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
2273
+ }
2274
+ .seed-csp4 .glyphicon {
2275
+ position: relative;
2276
+ top: 1px;
2277
+ display: inline-block;
2278
+ font-family: 'Glyphicons Halflings';
2279
+ font-style: normal;
2280
+ font-weight: normal;
2281
+ line-height: 1;
2282
+ -webkit-font-smoothing: antialiased;
2283
+ -moz-osx-font-smoothing: grayscale;
2284
+ }
2285
+ .seed-csp4 .glyphicon:empty {
2286
+ width: 1em;
2287
+ }
2288
+ .seed-csp4 .glyphicon-asterisk:before {
2289
+ content: "\2a";
2290
+ }
2291
+ .seed-csp4 .glyphicon-plus:before {
2292
+ content: "\2b";
2293
+ }
2294
+ .seed-csp4 .glyphicon-euro:before {
2295
+ content: "\20ac";
2296
+ }
2297
+ .seed-csp4 .glyphicon-minus:before {
2298
+ content: "\2212";
2299
+ }
2300
+ .seed-csp4 .glyphicon-cloud:before {
2301
+ content: "\2601";
2302
+ }
2303
+ .seed-csp4 .glyphicon-envelope:before {
2304
+ content: "\2709";
2305
+ }
2306
+ .seed-csp4 .glyphicon-pencil:before {
2307
+ content: "\270f";
2308
+ }
2309
+ .seed-csp4 .glyphicon-glass:before {
2310
+ content: "\e001";
2311
+ }
2312
+ .seed-csp4 .glyphicon-music:before {
2313
+ content: "\e002";
2314
+ }
2315
+ .seed-csp4 .glyphicon-search:before {
2316
+ content: "\e003";
2317
+ }
2318
+ .seed-csp4 .glyphicon-heart:before {
2319
+ content: "\e005";
2320
+ }
2321
+ .seed-csp4 .glyphicon-star:before {
2322
+ content: "\e006";
2323
+ }
2324
+ .seed-csp4 .glyphicon-star-empty:before {
2325
+ content: "\e007";
2326
+ }
2327
+ .seed-csp4 .glyphicon-user:before {
2328
+ content: "\e008";
2329
+ }
2330
+ .seed-csp4 .glyphicon-film:before {
2331
+ content: "\e009";
2332
+ }
2333
+ .seed-csp4 .glyphicon-th-large:before {
2334
+ content: "\e010";
2335
+ }
2336
+ .seed-csp4 .glyphicon-th:before {
2337
+ content: "\e011";
2338
+ }
2339
+ .seed-csp4 .glyphicon-th-list:before {
2340
+ content: "\e012";
2341
+ }
2342
+ .seed-csp4 .glyphicon-ok:before {
2343
+ content: "\e013";
2344
+ }
2345
+ .seed-csp4 .glyphicon-remove:before {
2346
+ content: "\e014";
2347
+ }
2348
+ .seed-csp4 .glyphicon-zoom-in:before {
2349
+ content: "\e015";
2350
+ }
2351
+ .seed-csp4 .glyphicon-zoom-out:before {
2352
+ content: "\e016";
2353
+ }
2354
+ .seed-csp4 .glyphicon-off:before {
2355
+ content: "\e017";
2356
+ }
2357
+ .seed-csp4 .glyphicon-signal:before {
2358
+ content: "\e018";
2359
+ }
2360
+ .seed-csp4 .glyphicon-cog:before {
2361
+ content: "\e019";
2362
+ }
2363
+ .seed-csp4 .glyphicon-trash:before {
2364
+ content: "\e020";
2365
+ }
2366
+ .seed-csp4 .glyphicon-home:before {
2367
+ content: "\e021";
2368
+ }
2369
+ .seed-csp4 .glyphicon-file:before {
2370
+ content: "\e022";
2371
+ }
2372
+ .seed-csp4 .glyphicon-time:before {
2373
+ content: "\e023";
2374
+ }
2375
+ .seed-csp4 .glyphicon-road:before {
2376
+ content: "\e024";
2377
+ }
2378
+ .seed-csp4 .glyphicon-download-alt:before {
2379
+ content: "\e025";
2380
+ }
2381
+ .seed-csp4 .glyphicon-download:before {
2382
+ content: "\e026";
2383
+ }
2384
+ .seed-csp4 .glyphicon-upload:before {
2385
+ content: "\e027";
2386
+ }
2387
+ .seed-csp4 .glyphicon-inbox:before {
2388
+ content: "\e028";
2389
+ }
2390
+ .seed-csp4 .glyphicon-play-circle:before {
2391
+ content: "\e029";
2392
+ }
2393
+ .seed-csp4 .glyphicon-repeat:before {
2394
+ content: "\e030";
2395
+ }
2396
+ .seed-csp4 .glyphicon-refresh:before {
2397
+ content: "\e031";
2398
+ }
2399
+ .seed-csp4 .glyphicon-list-alt:before {
2400
+ content: "\e032";
2401
+ }
2402
+ .seed-csp4 .glyphicon-lock:before {
2403
+ content: "\e033";
2404
+ }
2405
+ .seed-csp4 .glyphicon-flag:before {
2406
+ content: "\e034";
2407
+ }
2408
+ .seed-csp4 .glyphicon-headphones:before {
2409
+ content: "\e035";
2410
+ }
2411
+ .seed-csp4 .glyphicon-volume-off:before {
2412
+ content: "\e036";
2413
+ }
2414
+ .seed-csp4 .glyphicon-volume-down:before {
2415
+ content: "\e037";
2416
+ }
2417
+ .seed-csp4 .glyphicon-volume-up:before {
2418
+ content: "\e038";
2419
+ }
2420
+ .seed-csp4 .glyphicon-qrcode:before {
2421
+ content: "\e039";
2422
+ }
2423
+ .seed-csp4 .glyphicon-barcode:before {
2424
+ content: "\e040";
2425
+ }
2426
+ .seed-csp4 .glyphicon-tag:before {
2427
+ content: "\e041";
2428
+ }
2429
+ .seed-csp4 .glyphicon-tags:before {
2430
+ content: "\e042";
2431
+ }
2432
+ .seed-csp4 .glyphicon-book:before {
2433
+ content: "\e043";
2434
+ }
2435
+ .seed-csp4 .glyphicon-bookmark:before {
2436
+ content: "\e044";
2437
+ }
2438
+ .seed-csp4 .glyphicon-print:before {
2439
+ content: "\e045";
2440
+ }
2441
+ .seed-csp4 .glyphicon-camera:before {
2442
+ content: "\e046";
2443
+ }
2444
+ .seed-csp4 .glyphicon-font:before {
2445
+ content: "\e047";
2446
+ }
2447
+ .seed-csp4 .glyphicon-bold:before {
2448
+ content: "\e048";
2449
+ }
2450
+ .seed-csp4 .glyphicon-italic:before {
2451
+ content: "\e049";
2452
+ }
2453
+ .seed-csp4 .glyphicon-text-height:before {
2454
+ content: "\e050";
2455
+ }
2456
+ .seed-csp4 .glyphicon-text-width:before {
2457
+ content: "\e051";
2458
+ }
2459
+ .seed-csp4 .glyphicon-align-left:before {
2460
+ content: "\e052";
2461
+ }
2462
+ .seed-csp4 .glyphicon-align-center:before {
2463
+ content: "\e053";
2464
+ }
2465
+ .seed-csp4 .glyphicon-align-right:before {
2466
+ content: "\e054";
2467
+ }
2468
+ .seed-csp4 .glyphicon-align-justify:before {
2469
+ content: "\e055";
2470
+ }
2471
+ .seed-csp4 .glyphicon-list:before {
2472
+ content: "\e056";
2473
+ }
2474
+ .seed-csp4 .glyphicon-indent-left:before {
2475
+ content: "\e057";
2476
+ }
2477
+ .seed-csp4 .glyphicon-indent-right:before {
2478
+ content: "\e058";
2479
+ }
2480
+ .seed-csp4 .glyphicon-facetime-video:before {
2481
+ content: "\e059";
2482
+ }
2483
+ .seed-csp4 .glyphicon-picture:before {
2484
+ content: "\e060";
2485
+ }
2486
+ .seed-csp4 .glyphicon-map-marker:before {
2487
+ content: "\e062";
2488
+ }
2489
+ .seed-csp4 .glyphicon-adjust:before {
2490
+ content: "\e063";
2491
+ }
2492
+ .seed-csp4 .glyphicon-tint:before {
2493
+ content: "\e064";
2494
+ }
2495
+ .seed-csp4 .glyphicon-edit:before {
2496
+ content: "\e065";
2497
+ }
2498
+ .seed-csp4 .glyphicon-share:before {
2499
+ content: "\e066";
2500
+ }
2501
+ .seed-csp4 .glyphicon-check:before {
2502
+ content: "\e067";
2503
+ }
2504
+ .seed-csp4 .glyphicon-move:before {
2505
+ content: "\e068";
2506
+ }
2507
+ .seed-csp4 .glyphicon-step-backward:before {
2508
+ content: "\e069";
2509
+ }
2510
+ .seed-csp4 .glyphicon-fast-backward:before {
2511
+ content: "\e070";
2512
+ }
2513
+ .seed-csp4 .glyphicon-backward:before {
2514
+ content: "\e071";
2515
+ }
2516
+ .seed-csp4 .glyphicon-play:before {
2517
+ content: "\e072";
2518
+ }
2519
+ .seed-csp4 .glyphicon-pause:before {
2520
+ content: "\e073";
2521
+ }
2522
+ .seed-csp4 .glyphicon-stop:before {
2523
+ content: "\e074";
2524
+ }
2525
+ .seed-csp4 .glyphicon-forward:before {
2526
+ content: "\e075";
2527
+ }
2528
+ .seed-csp4 .glyphicon-fast-forward:before {
2529
+ content: "\e076";
2530
+ }
2531
+ .seed-csp4 .glyphicon-step-forward:before {
2532
+ content: "\e077";
2533
+ }
2534
+ .seed-csp4 .glyphicon-eject:before {
2535
+ content: "\e078";
2536
+ }
2537
+ .seed-csp4 .glyphicon-chevron-left:before {
2538
+ content: "\e079";
2539
+ }
2540
+ .seed-csp4 .glyphicon-chevron-right:before {
2541
+ content: "\e080";
2542
+ }
2543
+ .seed-csp4 .glyphicon-plus-sign:before {
2544
+ content: "\e081";
2545
+ }
2546
+ .seed-csp4 .glyphicon-minus-sign:before {
2547
+ content: "\e082";
2548
+ }
2549
+ .seed-csp4 .glyphicon-remove-sign:before {
2550
+ content: "\e083";
2551
+ }
2552
+ .seed-csp4 .glyphicon-ok-sign:before {
2553
+ content: "\e084";
2554
+ }
2555
+ .seed-csp4 .glyphicon-question-sign:before {
2556
+ content: "\e085";
2557
+ }
2558
+ .seed-csp4 .glyphicon-info-sign:before {
2559
+ content: "\e086";
2560
+ }
2561
+ .seed-csp4 .glyphicon-screenshot:before {
2562
+ content: "\e087";
2563
+ }
2564
+ .seed-csp4 .glyphicon-remove-circle:before {
2565
+ content: "\e088";
2566
+ }
2567
+ .seed-csp4 .glyphicon-ok-circle:before {
2568
+ content: "\e089";
2569
+ }
2570
+ .seed-csp4 .glyphicon-ban-circle:before {
2571
+ content: "\e090";
2572
+ }
2573
+ .seed-csp4 .glyphicon-arrow-left:before {
2574
+ content: "\e091";
2575
+ }
2576
+ .seed-csp4 .glyphicon-arrow-right:before {
2577
+ content: "\e092";
2578
+ }
2579
+ .seed-csp4 .glyphicon-arrow-up:before {
2580
+ content: "\e093";
2581
+ }
2582
+ .seed-csp4 .glyphicon-arrow-down:before {
2583
+ content: "\e094";
2584
+ }
2585
+ .seed-csp4 .glyphicon-share-alt:before {
2586
+ content: "\e095";
2587
+ }
2588
+ .seed-csp4 .glyphicon-resize-full:before {
2589
+ content: "\e096";
2590
+ }
2591
+ .seed-csp4 .glyphicon-resize-small:before {
2592
+ content: "\e097";
2593
+ }
2594
+ .seed-csp4 .glyphicon-exclamation-sign:before {
2595
+ content: "\e101";
2596
+ }
2597
+ .seed-csp4 .glyphicon-gift:before {
2598
+ content: "\e102";
2599
+ }
2600
+ .seed-csp4 .glyphicon-leaf:before {
2601
+ content: "\e103";
2602
+ }
2603
+ .seed-csp4 .glyphicon-fire:before {
2604
+ content: "\e104";
2605
+ }
2606
+ .seed-csp4 .glyphicon-eye-open:before {
2607
+ content: "\e105";
2608
+ }
2609
+ .seed-csp4 .glyphicon-eye-close:before {
2610
+ content: "\e106";
2611
+ }
2612
+ .seed-csp4 .glyphicon-warning-sign:before {
2613
+ content: "\e107";
2614
+ }
2615
+ .seed-csp4 .glyphicon-plane:before {
2616
+ content: "\e108";
2617
+ }
2618
+ .seed-csp4 .glyphicon-calendar:before {
2619
+ content: "\e109";
2620
+ }
2621
+ .seed-csp4 .glyphicon-random:before {
2622
+ content: "\e110";
2623
+ }
2624
+ .seed-csp4 .glyphicon-comment:before {
2625
+ content: "\e111";
2626
+ }
2627
+ .seed-csp4 .glyphicon-magnet:before {
2628
+ content: "\e112";
2629
+ }
2630
+ .seed-csp4 .glyphicon-chevron-up:before {
2631
+ content: "\e113";
2632
+ }
2633
+ .seed-csp4 .glyphicon-chevron-down:before {
2634
+ content: "\e114";
2635
+ }
2636
+ .seed-csp4 .glyphicon-retweet:before {
2637
+ content: "\e115";
2638
+ }
2639
+ .seed-csp4 .glyphicon-shopping-cart:before {
2640
+ content: "\e116";
2641
+ }
2642
+ .seed-csp4 .glyphicon-folder-close:before {
2643
+ content: "\e117";
2644
+ }
2645
+ .seed-csp4 .glyphicon-folder-open:before {
2646
+ content: "\e118";
2647
+ }
2648
+ .seed-csp4 .glyphicon-resize-vertical:before {
2649
+ content: "\e119";
2650
+ }
2651
+ .seed-csp4 .glyphicon-resize-horizontal:before {
2652
+ content: "\e120";
2653
+ }
2654
+ .seed-csp4 .glyphicon-hdd:before {
2655
+ content: "\e121";
2656
+ }
2657
+ .seed-csp4 .glyphicon-bullhorn:before {
2658
+ content: "\e122";
2659
+ }
2660
+ .seed-csp4 .glyphicon-bell:before {
2661
+ content: "\e123";
2662
+ }
2663
+ .seed-csp4 .glyphicon-certificate:before {
2664
+ content: "\e124";
2665
+ }
2666
+ .seed-csp4 .glyphicon-thumbs-up:before {
2667
+ content: "\e125";
2668
+ }
2669
+ .seed-csp4 .glyphicon-thumbs-down:before {
2670
+ content: "\e126";
2671
+ }
2672
+ .seed-csp4 .glyphicon-hand-right:before {
2673
+ content: "\e127";
2674
+ }
2675
+ .seed-csp4 .glyphicon-hand-left:before {
2676
+ content: "\e128";
2677
+ }
2678
+ .seed-csp4 .glyphicon-hand-up:before {
2679
+ content: "\e129";
2680
+ }
2681
+ .seed-csp4 .glyphicon-hand-down:before {
2682
+ content: "\e130";
2683
+ }
2684
+ .seed-csp4 .glyphicon-circle-arrow-right:before {
2685
+ content: "\e131";
2686
+ }
2687
+ .seed-csp4 .glyphicon-circle-arrow-left:before {
2688
+ content: "\e132";
2689
+ }
2690
+ .seed-csp4 .glyphicon-circle-arrow-up:before {
2691
+ content: "\e133";
2692
+ }
2693
+ .seed-csp4 .glyphicon-circle-arrow-down:before {
2694
+ content: "\e134";
2695
+ }
2696
+ .seed-csp4 .glyphicon-globe:before {
2697
+ content: "\e135";
2698
+ }
2699
+ .seed-csp4 .glyphicon-wrench:before {
2700
+ content: "\e136";
2701
+ }
2702
+ .seed-csp4 .glyphicon-tasks:before {
2703
+ content: "\e137";
2704
+ }
2705
+ .seed-csp4 .glyphicon-filter:before {
2706
+ content: "\e138";
2707
+ }
2708
+ .seed-csp4 .glyphicon-briefcase:before {
2709
+ content: "\e139";
2710
+ }
2711
+ .seed-csp4 .glyphicon-fullscreen:before {
2712
+ content: "\e140";
2713
+ }
2714
+ .seed-csp4 .glyphicon-dashboard:before {
2715
+ content: "\e141";
2716
+ }
2717
+ .seed-csp4 .glyphicon-paperclip:before {
2718
+ content: "\e142";
2719
+ }
2720
+ .seed-csp4 .glyphicon-heart-empty:before {
2721
+ content: "\e143";
2722
+ }
2723
+ .seed-csp4 .glyphicon-link:before {
2724
+ content: "\e144";
2725
+ }
2726
+ .seed-csp4 .glyphicon-phone:before {
2727
+ content: "\e145";
2728
+ }
2729
+ .seed-csp4 .glyphicon-pushpin:before {
2730
+ content: "\e146";
2731
+ }
2732
+ .seed-csp4 .glyphicon-usd:before {
2733
+ content: "\e148";
2734
+ }
2735
+ .seed-csp4 .glyphicon-gbp:before {
2736
+ content: "\e149";
2737
+ }
2738
+ .seed-csp4 .glyphicon-sort:before {
2739
+ content: "\e150";
2740
+ }
2741
+ .seed-csp4 .glyphicon-sort-by-alphabet:before {
2742
+ content: "\e151";
2743
+ }
2744
+ .seed-csp4 .glyphicon-sort-by-alphabet-alt:before {
2745
+ content: "\e152";
2746
+ }
2747
+ .seed-csp4 .glyphicon-sort-by-order:before {
2748
+ content: "\e153";
2749
+ }
2750
+ .seed-csp4 .glyphicon-sort-by-order-alt:before {
2751
+ content: "\e154";
2752
+ }
2753
+ .seed-csp4 .glyphicon-sort-by-attributes:before {
2754
+ content: "\e155";
2755
+ }
2756
+ .seed-csp4 .glyphicon-sort-by-attributes-alt:before {
2757
+ content: "\e156";
2758
+ }
2759
+ .seed-csp4 .glyphicon-unchecked:before {
2760
+ content: "\e157";
2761
+ }
2762
+ .seed-csp4 .glyphicon-expand:before {
2763
+ content: "\e158";
2764
+ }
2765
+ .seed-csp4 .glyphicon-collapse-down:before {
2766
+ content: "\e159";
2767
+ }
2768
+ .seed-csp4 .glyphicon-collapse-up:before {
2769
+ content: "\e160";
2770
+ }
2771
+ .seed-csp4 .glyphicon-log-in:before {
2772
+ content: "\e161";
2773
+ }
2774
+ .seed-csp4 .glyphicon-flash:before {
2775
+ content: "\e162";
2776
+ }
2777
+ .seed-csp4 .glyphicon-log-out:before {
2778
+ content: "\e163";
2779
+ }
2780
+ .seed-csp4 .glyphicon-new-window:before {
2781
+ content: "\e164";
2782
+ }
2783
+ .seed-csp4 .glyphicon-record:before {
2784
+ content: "\e165";
2785
+ }
2786
+ .seed-csp4 .glyphicon-save:before {
2787
+ content: "\e166";
2788
+ }
2789
+ .seed-csp4 .glyphicon-open:before {
2790
+ content: "\e167";
2791
+ }
2792
+ .seed-csp4 .glyphicon-saved:before {
2793
+ content: "\e168";
2794
+ }
2795
+ .seed-csp4 .glyphicon-import:before {
2796
+ content: "\e169";
2797
+ }
2798
+ .seed-csp4 .glyphicon-export:before {
2799
+ content: "\e170";
2800
+ }
2801
+ .seed-csp4 .glyphicon-send:before {
2802
+ content: "\e171";
2803
+ }
2804
+ .seed-csp4 .glyphicon-floppy-disk:before {
2805
+ content: "\e172";
2806
+ }
2807
+ .seed-csp4 .glyphicon-floppy-saved:before {
2808
+ content: "\e173";
2809
+ }
2810
+ .seed-csp4 .glyphicon-floppy-remove:before {
2811
+ content: "\e174";
2812
+ }
2813
+ .seed-csp4 .glyphicon-floppy-save:before {
2814
+ content: "\e175";
2815
+ }
2816
+ .seed-csp4 .glyphicon-floppy-open:before {
2817
+ content: "\e176";
2818
+ }
2819
+ .seed-csp4 .glyphicon-credit-card:before {
2820
+ content: "\e177";
2821
+ }
2822
+ .seed-csp4 .glyphicon-transfer:before {
2823
+ content: "\e178";
2824
+ }
2825
+ .seed-csp4 .glyphicon-cutlery:before {
2826
+ content: "\e179";
2827
+ }
2828
+ .seed-csp4 .glyphicon-header:before {
2829
+ content: "\e180";
2830
+ }
2831
+ .seed-csp4 .glyphicon-compressed:before {
2832
+ content: "\e181";
2833
+ }
2834
+ .seed-csp4 .glyphicon-earphone:before {
2835
+ content: "\e182";
2836
+ }
2837
+ .seed-csp4 .glyphicon-phone-alt:before {
2838
+ content: "\e183";
2839
+ }
2840
+ .seed-csp4 .glyphicon-tower:before {
2841
+ content: "\e184";
2842
+ }
2843
+ .seed-csp4 .glyphicon-stats:before {
2844
+ content: "\e185";
2845
+ }
2846
+ .seed-csp4 .glyphicon-sd-video:before {
2847
+ content: "\e186";
2848
+ }
2849
+ .seed-csp4 .glyphicon-hd-video:before {
2850
+ content: "\e187";
2851
+ }
2852
+ .seed-csp4 .glyphicon-subtitles:before {
2853
+ content: "\e188";
2854
+ }
2855
+ .seed-csp4 .glyphicon-sound-stereo:before {
2856
+ content: "\e189";
2857
+ }
2858
+ .seed-csp4 .glyphicon-sound-dolby:before {
2859
+ content: "\e190";
2860
+ }
2861
+ .seed-csp4 .glyphicon-sound-5-1:before {
2862
+ content: "\e191";
2863
+ }
2864
+ .seed-csp4 .glyphicon-sound-6-1:before {
2865
+ content: "\e192";
2866
+ }
2867
+ .seed-csp4 .glyphicon-sound-7-1:before {
2868
+ content: "\e193";
2869
+ }
2870
+ .seed-csp4 .glyphicon-copyright-mark:before {
2871
+ content: "\e194";
2872
+ }
2873
+ .seed-csp4 .glyphicon-registration-mark:before {
2874
+ content: "\e195";
2875
+ }
2876
+ .seed-csp4 .glyphicon-cloud-download:before {
2877
+ content: "\e197";
2878
+ }
2879
+ .seed-csp4 .glyphicon-cloud-upload:before {
2880
+ content: "\e198";
2881
+ }
2882
+ .seed-csp4 .glyphicon-tree-conifer:before {
2883
+ content: "\e199";
2884
+ }
2885
+ .seed-csp4 .glyphicon-tree-deciduous:before {
2886
+ content: "\e200";
2887
+ }
2888
+ .seed-csp4 .caret {
2889
+ display: inline-block;
2890
+ width: 0;
2891
+ height: 0;
2892
+ margin-left: 2px;
2893
+ vertical-align: middle;
2894
+ border-top: 4px solid;
2895
+ border-right: 4px solid transparent;
2896
+ border-left: 4px solid transparent;
2897
+ }
2898
+ .seed-csp4 .dropdown {
2899
+ position: relative;
2900
+ }
2901
+ .seed-csp4 .dropdown-toggle:focus {
2902
+ outline: 0;
2903
+ }
2904
+ .seed-csp4 .dropdown-menu {
2905
+ position: absolute;
2906
+ top: 100%;
2907
+ left: 0;
2908
+ z-index: 1000;
2909
+ display: none;
2910
+ float: left;
2911
+ min-width: 160px;
2912
+ padding: 5px 0;
2913
+ margin: 2px 0 0;
2914
+ list-style: none;
2915
+ font-size: 14px;
2916
+ background-color: #ffffff;
2917
+ border: 1px solid #cccccc;
2918
+ border: 1px solid rgba(0, 0, 0, 0.15);
2919
+ border-radius: 4px;
2920
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
2921
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
2922
+ background-clip: padding-box;
2923
+ }
2924
+ .seed-csp4 .dropdown-menu.pull-right {
2925
+ right: 0;
2926
+ left: auto;
2927
+ }
2928
+ .seed-csp4 .dropdown-menu .divider {
2929
+ height: 1px;
2930
+ margin: 9px 0;
2931
+ overflow: hidden;
2932
+ background-color: #e5e5e5;
2933
+ }
2934
+ .seed-csp4 .dropdown-menu > li > a {
2935
+ display: block;
2936
+ padding: 3px 20px;
2937
+ clear: both;
2938
+ font-weight: normal;
2939
+ line-height: 1.428571429;
2940
+ color: #333333;
2941
+ white-space: nowrap;
2942
+ }
2943
+ .seed-csp4 .dropdown-menu > li > a:hover,
2944
+ .seed-csp4 .dropdown-menu > li > a:focus {
2945
+ text-decoration: none;
2946
+ color: #262626;
2947
+ background-color: #f5f5f5;
2948
+ }
2949
+ .seed-csp4 .dropdown-menu > .active > a,
2950
+ .seed-csp4 .dropdown-menu > .active > a:hover,
2951
+ .seed-csp4 .dropdown-menu > .active > a:focus {
2952
+ color: #ffffff;
2953
+ text-decoration: none;
2954
+ outline: 0;
2955
+ background-color: #428bca;
2956
+ }
2957
+ .seed-csp4 .dropdown-menu > .disabled > a,
2958
+ .seed-csp4 .dropdown-menu > .disabled > a:hover,
2959
+ .seed-csp4 .dropdown-menu > .disabled > a:focus {
2960
+ color: #999999;
2961
+ }
2962
+ .seed-csp4 .dropdown-menu > .disabled > a:hover,
2963
+ .seed-csp4 .dropdown-menu > .disabled > a:focus {
2964
+ text-decoration: none;
2965
+ background-color: transparent;
2966
+ background-image: none;
2967
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
2968
+ cursor: not-allowed;
2969
+ }
2970
+ .seed-csp4 .open > .dropdown-menu {
2971
+ display: block;
2972
+ }
2973
+ .seed-csp4 .open > a {
2974
+ outline: 0;
2975
+ }
2976
+ .seed-csp4 .dropdown-header {
2977
+ display: block;
2978
+ padding: 3px 20px;
2979
+ font-size: 12px;
2980
+ line-height: 1.428571429;
2981
+ color: #999999;
2982
+ }
2983
+ .seed-csp4 .dropdown-backdrop {
2984
+ position: fixed;
2985
+ left: 0;
2986
+ right: 0;
2987
+ bottom: 0;
2988
+ top: 0;
2989
+ z-index: 990;
2990
+ }
2991
+ .seed-csp4 .pull-right > .dropdown-menu {
2992
+ right: 0;
2993
+ left: auto;
2994
+ }
2995
+ .seed-csp4 .dropup .caret,
2996
+ .seed-csp4 .navbar-fixed-bottom .dropdown .caret {
2997
+ border-top: 0;
2998
+ border-bottom: 4px solid;
2999
+ content: "";
3000
+ }
3001
+ .seed-csp4 .dropup .dropdown-menu,
3002
+ .seed-csp4 .navbar-fixed-bottom .dropdown .dropdown-menu {
3003
+ top: auto;
3004
+ bottom: 100%;
3005
+ margin-bottom: 1px;
3006
+ }
3007
+ @media (min-width: 768px) {
3008
+ .seed-csp4 .navbar-right .dropdown-menu {
3009
+ right: 0;
3010
+ left: auto;
3011
+ }
3012
+ }
3013
+ .seed-csp4 .btn-group,
3014
+ .seed-csp4 .btn-group-vertical {
3015
+ position: relative;
3016
+ display: inline-block;
3017
+ vertical-align: middle;
3018
+ }
3019
+ .seed-csp4 .btn-group > .btn,
3020
+ .seed-csp4 .btn-group-vertical > .btn {
3021
+ position: relative;
3022
+ float: left;
3023
+ }
3024
+ .seed-csp4 .btn-group > .btn:hover,
3025
+ .seed-csp4 .btn-group-vertical > .btn:hover,
3026
+ .seed-csp4 .btn-group > .btn:focus,
3027
+ .seed-csp4 .btn-group-vertical > .btn:focus,
3028
+ .seed-csp4 .btn-group > .btn:active,
3029
+ .seed-csp4 .btn-group-vertical > .btn:active,
3030
+ .seed-csp4 .btn-group > .btn.active,
3031
+ .seed-csp4 .btn-group-vertical > .btn.active {
3032
+ z-index: 2;
3033
+ }
3034
+ .seed-csp4 .btn-group > .btn:focus,
3035
+ .seed-csp4 .btn-group-vertical > .btn:focus {
3036
+ outline: none;
3037
+ }
3038
+ .seed-csp4 .btn-group .btn + .btn,
3039
+ .seed-csp4 .btn-group .btn + .btn-group,
3040
+ .seed-csp4 .btn-group .btn-group + .btn,
3041
+ .seed-csp4 .btn-group .btn-group + .btn-group {
3042
+ margin-left: -1px;
3043
+ }
3044
+ .seed-csp4 .btn-toolbar:before,
3045
+ .seed-csp4 .btn-toolbar:after {
3046
+ content: " ";
3047
+ display: table;
3048
+ }
3049
+ .seed-csp4 .btn-toolbar:after {
3050
+ clear: both;
3051
+ }
3052
+ .seed-csp4 .btn-toolbar:before,
3053
+ .seed-csp4 .btn-toolbar:after {
3054
+ content: " ";
3055
+ display: table;
3056
+ }
3057
+ .seed-csp4 .btn-toolbar:after {
3058
+ clear: both;
3059
+ }
3060
+ .seed-csp4 .btn-toolbar .btn-group {
3061
+ float: left;
3062
+ }
3063
+ .seed-csp4 .btn-toolbar > .btn + .btn,
3064
+ .seed-csp4 .btn-toolbar > .btn-group + .btn,
3065
+ .seed-csp4 .btn-toolbar > .btn + .btn-group,
3066
+ .seed-csp4 .btn-toolbar > .btn-group + .btn-group {
3067
+ margin-left: 5px;
3068
+ }
3069
+ .seed-csp4 .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
3070
+ border-radius: 0;
3071
+ }
3072
+ .seed-csp4 .btn-group > .btn:first-child {
3073
+ margin-left: 0;
3074
+ }
3075
+ .seed-csp4 .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
3076
+ border-bottom-right-radius: 0;
3077
+ border-top-right-radius: 0;
3078
+ }
3079
+ .seed-csp4 .btn-group > .btn:last-child:not(:first-child),
3080
+ .seed-csp4 .btn-group > .dropdown-toggle:not(:first-child) {
3081
+ border-bottom-left-radius: 0;
3082
+ border-top-left-radius: 0;
3083
+ }
3084
+ .seed-csp4 .btn-group > .btn-group {
3085
+ float: left;
3086
+ }
3087
+ .seed-csp4 .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
3088
+ border-radius: 0;
3089
+ }
3090
+ .seed-csp4 .btn-group > .btn-group:first-child > .btn:last-child,
3091
+ .seed-csp4 .btn-group > .btn-group:first-child > .dropdown-toggle {
3092
+ border-bottom-right-radius: 0;
3093
+ border-top-right-radius: 0;
3094
+ }
3095
+ .seed-csp4 .btn-group > .btn-group:last-child > .btn:first-child {
3096
+ border-bottom-left-radius: 0;
3097
+ border-top-left-radius: 0;
3098
+ }
3099
+ .seed-csp4 .btn-group .dropdown-toggle:active,
3100
+ .seed-csp4 .btn-group.open .dropdown-toggle {
3101
+ outline: 0;
3102
+ }
3103
+ .seed-csp4 .btn-group-xs > .btn {
3104
+ padding: 1px 5px;
3105
+ font-size: 12px;
3106
+ line-height: 1.5;
3107
+ border-radius: 3px;
3108
+ }
3109
+ .seed-csp4 .btn-group-sm > .btn {
3110
+ padding: 5px 10px;
3111
+ font-size: 12px;
3112
+ line-height: 1.5;
3113
+ border-radius: 3px;
3114
+ }
3115
+ .seed-csp4 .btn-group-lg > .btn {
3116
+ padding: 10px 16px;
3117
+ font-size: 18px;
3118
+ line-height: 1.33;
3119
+ border-radius: 6px;
3120
+ }
3121
+ .seed-csp4 .btn-group > .btn + .dropdown-toggle {
3122
+ padding-left: 8px;
3123
+ padding-right: 8px;
3124
+ }
3125
+ .seed-csp4 .btn-group > .btn-lg + .dropdown-toggle {
3126
+ padding-left: 12px;
3127
+ padding-right: 12px;
3128
+ }
3129
+ .seed-csp4 .btn-group.open .dropdown-toggle {
3130
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3131
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
3132
+ }
3133
+ .seed-csp4 .btn-group.open .dropdown-toggle.btn-link {
3134
+ -webkit-box-shadow: none;
3135
+ box-shadow: none;
3136
+ }
3137
+ .seed-csp4 .btn .caret {
3138
+ margin-left: 0;
3139
+ }
3140
+ .seed-csp4 .btn-lg .caret {
3141
+ border-width: 5px 5px 0;
3142
+ border-bottom-width: 0;
3143
+ }
3144
+ .seed-csp4 .dropup .btn-lg .caret {
3145
+ border-width: 0 5px 5px;
3146
+ }
3147
+ .seed-csp4 .btn-group-vertical > .btn,
3148
+ .seed-csp4 .btn-group-vertical > .btn-group,
3149
+ .seed-csp4 .btn-group-vertical > .btn-group > .btn {
3150
+ display: block;
3151
+ float: none;
3152
+ width: 100%;
3153
+ max-width: 100%;
3154
+ }
3155
+ .seed-csp4 .btn-group-vertical > .btn-group:before,
3156
+ .seed-csp4 .btn-group-vertical > .btn-group:after {
3157
+ content: " ";
3158
+ display: table;
3159
+ }
3160
+ .seed-csp4 .btn-group-vertical > .btn-group:after {
3161
+ clear: both;
3162
+ }
3163
+ .seed-csp4 .btn-group-vertical > .btn-group:before,
3164
+ .seed-csp4 .btn-group-vertical > .btn-group:after {
3165
+ content: " ";
3166
+ display: table;
3167
+ }
3168
+ .seed-csp4 .btn-group-vertical > .btn-group:after {
3169
+ clear: both;
3170
+ }
3171
+ .seed-csp4 .btn-group-vertical > .btn-group > .btn {
3172
+ float: none;
3173
+ }
3174
+ .seed-csp4 .btn-group-vertical > .btn + .btn,
3175
+ .seed-csp4 .btn-group-vertical > .btn + .btn-group,
3176
+ .seed-csp4 .btn-group-vertical > .btn-group + .btn,
3177
+ .seed-csp4 .btn-group-vertical > .btn-group + .btn-group {
3178
+ margin-top: -1px;
3179
+ margin-left: 0;
3180
+ }
3181
+ .seed-csp4 .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
3182
+ border-radius: 0;
3183
+ }
3184
+ .seed-csp4 .btn-group-vertical > .btn:first-child:not(:last-child) {
3185
+ border-top-right-radius: 4px;
3186
+ border-bottom-right-radius: 0;
3187
+ border-bottom-left-radius: 0;
3188
+ }
3189
+ .seed-csp4 .btn-group-vertical > .btn:last-child:not(:first-child) {
3190
+ border-bottom-left-radius: 4px;
3191
+ border-top-right-radius: 0;
3192
+ border-top-left-radius: 0;
3193
+ }
3194
+ .seed-csp4 .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
3195
+ border-radius: 0;
3196
+ }
3197
+ .seed-csp4 .btn-group-vertical > .btn-group:first-child > .btn:last-child,
3198
+ .seed-csp4 .btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
3199
+ border-bottom-right-radius: 0;
3200
+ border-bottom-left-radius: 0;
3201
+ }
3202
+ .seed-csp4 .btn-group-vertical > .btn-group:last-child > .btn:first-child {
3203
+ border-top-right-radius: 0;
3204
+ border-top-left-radius: 0;
3205
+ }
3206
+ .seed-csp4 .btn-group-justified {
3207
+ display: table;
3208
+ width: 100%;
3209
+ table-layout: fixed;
3210
+ border-collapse: separate;
3211
+ }
3212
+ .seed-csp4 .btn-group-justified > .btn,
3213
+ .seed-csp4 .btn-group-justified > .btn-group {
3214
+ float: none;
3215
+ display: table-cell;
3216
+ width: 1%;
3217
+ }
3218
+ .seed-csp4 .btn-group-justified > .btn-group .btn {
3219
+ width: 100%;
3220
+ }
3221
+ .seed-csp4 [data-toggle="buttons"] > .btn > input[type="radio"],
3222
+ .seed-csp4 [data-toggle="buttons"] > .btn > input[type="checkbox"] {
3223
+ display: none;
3224
+ }
3225
+ .seed-csp4 .input-group {
3226
+ position: relative;
3227
+ display: table;
3228
+ border-collapse: separate;
3229
+ }
3230
+ .seed-csp4 .input-group[class*="col-"] {
3231
+ float: none;
3232
+ padding-left: 0;
3233
+ padding-right: 0;
3234
+ }
3235
+ .seed-csp4 .input-group .form-control {
3236
+ width: 100%;
3237
+ margin-bottom: 0;
3238
+ }
3239
+ .seed-csp4 .input-group-lg > .form-control,
3240
+ .seed-csp4 .input-group-lg > .input-group-addon,
3241
+ .seed-csp4 .input-group-lg > .input-group-btn > .btn {
3242
+ height: 46px;
3243
+ padding: 10px 16px;
3244
+ font-size: 18px;
3245
+ line-height: 1.33;
3246
+ border-radius: 6px;
3247
+ }
3248
+ select.seed-csp4 .input-group-lg > .form-control,
3249
+ select.seed-csp4 .input-group-lg > .input-group-addon,
3250
+ select.seed-csp4 .input-group-lg > .input-group-btn > .btn {
3251
+ height: 46px;
3252
+ line-height: 46px;
3253
+ }
3254
+ textarea.seed-csp4 .input-group-lg > .form-control,
3255
+ textarea.seed-csp4 .input-group-lg > .input-group-addon,
3256
+ textarea.seed-csp4 .input-group-lg > .input-group-btn > .btn {
3257
+ height: auto;
3258
+ }
3259
+ .seed-csp4 .input-group-sm > .form-control,
3260
+ .seed-csp4 .input-group-sm > .input-group-addon,
3261
+ .seed-csp4 .input-group-sm > .input-group-btn > .btn {
3262
+ height: 30px;
3263
+ padding: 5px 10px;
3264
+ font-size: 12px;
3265
+ line-height: 1.5;
3266
+ border-radius: 3px;
3267
+ }
3268
+ select.seed-csp4 .input-group-sm > .form-control,
3269
+ select.seed-csp4 .input-group-sm > .input-group-addon,
3270
+ select.seed-csp4 .input-group-sm > .input-group-btn > .btn {
3271
+ height: 30px;
3272
+ line-height: 30px;
3273
+ }
3274
+ textarea.seed-csp4 .input-group-sm > .form-control,
3275
+ textarea.seed-csp4 .input-group-sm > .input-group-addon,
3276
+ textarea.seed-csp4 .input-group-sm > .input-group-btn > .btn {
3277
+ height: auto;
3278
+ }
3279
+ .seed-csp4 .input-group-addon,
3280
+ .seed-csp4 .input-group-btn,
3281
+ .seed-csp4 .input-group .form-control {
3282
+ display: table-cell;
3283
+ }
3284
+ .seed-csp4 .input-group-addon:not(:first-child):not(:last-child),
3285
+ .seed-csp4 .input-group-btn:not(:first-child):not(:last-child),
3286
+ .seed-csp4 .input-group .form-control:not(:first-child):not(:last-child) {
3287
+ border-radius: 0;
3288
+ }
3289
+ .seed-csp4 .input-group-addon,
3290
+ .seed-csp4 .input-group-btn {
3291
+ width: 1%;
3292
+ white-space: nowrap;
3293
+ vertical-align: middle;
3294
+ }
3295
+ .seed-csp4 .input-group-addon {
3296
+ padding: 6px 12px;
3297
+ font-size: 14px;
3298
+ font-weight: normal;
3299
+ line-height: 1;
3300
+ color: #555555;
3301
+ text-align: center;
3302
+ background-color: #eeeeee;
3303
+ border: 1px solid #cccccc;
3304
+ border-radius: 4px;
3305
+ }
3306
+ .seed-csp4 .input-group-addon.input-sm {
3307
+ padding: 5px 10px;
3308
+ font-size: 12px;
3309
+ border-radius: 3px;
3310
+ }
3311
+ .seed-csp4 .input-group-addon.input-lg {
3312
+ padding: 10px 16px;
3313
+ font-size: 18px;
3314
+ border-radius: 6px;
3315
+ }
3316
+ .seed-csp4 .input-group-addon input[type="radio"],
3317
+ .seed-csp4 .input-group-addon input[type="checkbox"] {
3318
+ margin-top: 0;
3319
+ }
3320
+ .seed-csp4 .input-group .form-control:first-child,
3321
+ .seed-csp4 .input-group-addon:first-child,
3322
+ .seed-csp4 .input-group-btn:first-child > .btn,
3323
+ .seed-csp4 .input-group-btn:first-child > .dropdown-toggle,
3324
+ .seed-csp4 .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
3325
+ border-bottom-right-radius: 0;
3326
+ border-top-right-radius: 0;
3327
+ }
3328
+ .seed-csp4 .input-group-addon:first-child {
3329
+ border-right: 0;
3330
+ }
3331
+ .seed-csp4 .input-group .form-control:last-child,
3332
+ .seed-csp4 .input-group-addon:last-child,
3333
+ .seed-csp4 .input-group-btn:last-child > .btn,
3334
+ .seed-csp4 .input-group-btn:last-child > .dropdown-toggle,
3335
+ .seed-csp4 .input-group-btn:first-child > .btn:not(:first-child) {
3336
+ border-bottom-left-radius: 0;
3337
+ border-top-left-radius: 0;
3338
+ }
3339
+ .seed-csp4 .input-group-addon:last-child {
3340
+ border-left: 0;
3341
+ }
3342
+ .seed-csp4 .input-group-btn {
3343
+ position: relative;
3344
+ white-space: nowrap;
3345
+ }
3346
+ .seed-csp4 .input-group-btn:first-child > .btn {
3347
+ margin-right: -1px;
3348
+ }
3349
+ .seed-csp4 .input-group-btn:last-child > .btn {
3350
+ margin-left: -1px;
3351
+ }
3352
+ .seed-csp4 .input-group-btn > .btn {
3353
+ position: relative;
3354
+ }
3355
+ .seed-csp4 .input-group-btn > .btn + .btn {
3356
+ margin-left: -4px;
3357
+ }
3358
+ .seed-csp4 .input-group-btn > .btn:hover,
3359
+ .seed-csp4 .input-group-btn > .btn:active {
3360
+ z-index: 2;
3361
+ }
3362
+ .seed-csp4 .nav {
3363
+ margin-bottom: 0;
3364
+ padding-left: 0;
3365
+ list-style: none;
3366
+ }
3367
+ .seed-csp4 .nav:before,
3368
+ .seed-csp4 .nav:after {
3369
+ content: " ";
3370
+ display: table;
3371
+ }
3372
+ .seed-csp4 .nav:after {
3373
+ clear: both;
3374
+ }
3375
+ .seed-csp4 .nav:before,
3376
+ .seed-csp4 .nav:after {
3377
+ content: " ";
3378
+ display: table;
3379
+ }
3380
+ .seed-csp4 .nav:after {
3381
+ clear: both;
3382
+ }
3383
+ .seed-csp4 .nav > li {
3384
+ position: relative;
3385
+ display: block;
3386
+ }
3387
+ .seed-csp4 .nav > li > a {
3388
+ position: relative;
3389
+ display: block;
3390
+ padding: 10px 15px;
3391
+ }
3392
+ .seed-csp4 .nav > li > a:hover,
3393
+ .seed-csp4 .nav > li > a:focus {
3394
+ text-decoration: none;
3395
+ background-color: #eeeeee;
3396
+ }
3397
+ .seed-csp4 .nav > li.disabled > a {
3398
+ color: #999999;
3399
+ }
3400
+ .seed-csp4 .nav > li.disabled > a:hover,
3401
+ .seed-csp4 .nav > li.disabled > a:focus {
3402
+ color: #999999;
3403
+ text-decoration: none;
3404
+ background-color: transparent;
3405
+ cursor: not-allowed;
3406
+ }
3407
+ .seed-csp4 .nav .open > a,
3408
+ .seed-csp4 .nav .open > a:hover,
3409
+ .seed-csp4 .nav .open > a:focus {
3410
+ background-color: #eeeeee;
3411
+ border-color: #428bca;
3412
+ }
3413
+ .seed-csp4 .nav .nav-divider {
3414
+ height: 1px;
3415
+ margin: 9px 0;
3416
+ overflow: hidden;
3417
+ background-color: #e5e5e5;
3418
+ }
3419
+ .seed-csp4 .nav > li > a > img {
3420
+ max-width: none;
3421
+ }
3422
+ .seed-csp4 .nav-tabs {
3423
+ border-bottom: 1px solid #dddddd;
3424
+ }
3425
+ .seed-csp4 .nav-tabs > li {
3426
+ float: left;
3427
+ margin-bottom: -1px;
3428
+ }
3429
+ .seed-csp4 .nav-tabs > li > a {
3430
+ margin-right: 2px;
3431
+ line-height: 1.428571429;
3432
+ border: 1px solid transparent;
3433
+ border-radius: 4px 4px 0 0;
3434
+ }
3435
+ .seed-csp4 .nav-tabs > li > a:hover {
3436
+ border-color: #eeeeee #eeeeee #dddddd;
3437
+ }
3438
+ .seed-csp4 .nav-tabs > li.active > a,
3439
+ .seed-csp4 .nav-tabs > li.active > a:hover,
3440
+ .seed-csp4 .nav-tabs > li.active > a:focus {
3441
+ color: #555555;
3442
+ background-color: #ffffff;
3443
+ border: 1px solid #dddddd;
3444
+ border-bottom-color: transparent;
3445
+ cursor: default;
3446
+ }
3447
+ .seed-csp4 .nav-tabs.nav-justified {
3448
+ width: 100%;
3449
+ border-bottom: 0;
3450
+ }
3451
+ .seed-csp4 .nav-tabs.nav-justified > li {
3452
+ float: none;
3453
+ }
3454
+ .seed-csp4 .nav-tabs.nav-justified > li > a {
3455
+ text-align: center;
3456
+ margin-bottom: 5px;
3457
+ }
3458
+ .seed-csp4 .nav-tabs.nav-justified > .dropdown .dropdown-menu {
3459
+ top: auto;
3460
+ left: auto;
3461
+ }
3462
+ @media (min-width: 768px) {
3463
+ .seed-csp4 .nav-tabs.nav-justified > li {
3464
+ display: table-cell;
3465
+ width: 1%;
3466
+ }
3467
+ .seed-csp4 .nav-tabs.nav-justified > li > a {
3468
+ margin-bottom: 0;
3469
+ }
3470
+ }
3471
+ .seed-csp4 .nav-tabs.nav-justified > li > a {
3472
+ margin-right: 0;
3473
+ border-radius: 4px;
3474
+ }
3475
+ .seed-csp4 .nav-tabs.nav-justified > .active > a,
3476
+ .seed-csp4 .nav-tabs.nav-justified > .active > a:hover,
3477
+ .seed-csp4 .nav-tabs.nav-justified > .active > a:focus {
3478
+ border: 1px solid #dddddd;
3479
+ }
3480
+ @media (min-width: 768px) {
3481
+ .seed-csp4 .nav-tabs.nav-justified > li > a {
3482
+ border-bottom: 1px solid #dddddd;
3483
+ border-radius: 4px 4px 0 0;
3484
+ }
3485
+ .seed-csp4 .nav-tabs.nav-justified > .active > a,
3486
+ .seed-csp4 .nav-tabs.nav-justified > .active > a:hover,
3487
+ .seed-csp4 .nav-tabs.nav-justified > .active > a:focus {
3488
+ border-bottom-color: #ffffff;
3489
+ }
3490
+ }
3491
+ .seed-csp4 .nav-pills > li {
3492
+ float: left;
3493
+ }
3494
+ .seed-csp4 .nav-pills > li > a {
3495
+ border-radius: 4px;
3496
+ }
3497
+ .seed-csp4 .nav-pills > li + li {
3498
+ margin-left: 2px;
3499
+ }
3500
+ .seed-csp4 .nav-pills > li.active > a,
3501
+ .seed-csp4 .nav-pills > li.active > a:hover,
3502
+ .seed-csp4 .nav-pills > li.active > a:focus {
3503
+ color: #ffffff;
3504
+ background-color: #428bca;
3505
+ }
3506
+ .seed-csp4 .nav-stacked > li {
3507
+ float: none;
3508
+ }
3509
+ .seed-csp4 .nav-stacked > li + li {
3510
+ margin-top: 2px;
3511
+ margin-left: 0;
3512
+ }
3513
+ .seed-csp4 .nav-justified {
3514
+ width: 100%;
3515
+ }
3516
+ .seed-csp4 .nav-justified > li {
3517
+ float: none;
3518
+ }
3519
+ .seed-csp4 .nav-justified > li > a {
3520
+ text-align: center;
3521
+ margin-bottom: 5px;
3522
+ }
3523
+ .seed-csp4 .nav-justified > .dropdown .dropdown-menu {
3524
+ top: auto;
3525
+ left: auto;
3526
+ }
3527
+ @media (min-width: 768px) {
3528
+ .seed-csp4 .nav-justified > li {
3529
+ display: table-cell;
3530
+ width: 1%;
3531
+ }
3532
+ .seed-csp4 .nav-justified > li > a {
3533
+ margin-bottom: 0;
3534
+ }
3535
+ }
3536
+ .seed-csp4 .nav-tabs-justified {
3537
+ border-bottom: 0;
3538
+ }
3539
+ .seed-csp4 .nav-tabs-justified > li > a {
3540
+ margin-right: 0;
3541
+ border-radius: 4px;
3542
+ }
3543
+ .seed-csp4 .nav-tabs-justified > .active > a,
3544
+ .seed-csp4 .nav-tabs-justified > .active > a:hover,
3545
+ .seed-csp4 .nav-tabs-justified > .active > a:focus {
3546
+ border: 1px solid #dddddd;
3547
+ }
3548
+ @media (min-width: 768px) {
3549
+ .seed-csp4 .nav-tabs-justified > li > a {
3550
+ border-bottom: 1px solid #dddddd;
3551
+ border-radius: 4px 4px 0 0;
3552
+ }
3553
+ .seed-csp4 .nav-tabs-justified > .active > a,
3554
+ .seed-csp4 .nav-tabs-justified > .active > a:hover,
3555
+ .seed-csp4 .nav-tabs-justified > .active > a:focus {
3556
+ border-bottom-color: #ffffff;
3557
+ }
3558
+ }
3559
+ .seed-csp4 .tab-content > .tab-pane {
3560
+ display: none;
3561
+ }
3562
+ .seed-csp4 .tab-content > .active {
3563
+ display: block;
3564
+ }
3565
+ .seed-csp4 .nav-tabs .dropdown-menu {
3566
+ margin-top: -1px;
3567
+ border-top-right-radius: 0;
3568
+ border-top-left-radius: 0;
3569
+ }
3570
+ .seed-csp4 .navbar {
3571
+ position: relative;
3572
+ min-height: 50px;
3573
+ margin-bottom: 20px;
3574
+ border: 1px solid transparent;
3575
+ }
3576
+ .seed-csp4 .navbar:before,
3577
+ .seed-csp4 .navbar:after {
3578
+ content: " ";
3579
+ display: table;
3580
+ }
3581
+ .seed-csp4 .navbar:after {
3582
+ clear: both;
3583
+ }
3584
+ .seed-csp4 .navbar:before,
3585
+ .seed-csp4 .navbar:after {
3586
+ content: " ";
3587
+ display: table;
3588
+ }
3589
+ .seed-csp4 .navbar:after {
3590
+ clear: both;
3591
+ }
3592
+ @media (min-width: 768px) {
3593
+ .seed-csp4 .navbar {
3594
+ border-radius: 4px;
3595
+ }
3596
+ }
3597
+ .seed-csp4 .navbar-header:before,
3598
+ .seed-csp4 .navbar-header:after {
3599
+ content: " ";
3600
+ display: table;
3601
+ }
3602
+ .seed-csp4 .navbar-header:after {
3603
+ clear: both;
3604
+ }
3605
+ .seed-csp4 .navbar-header:before,
3606
+ .seed-csp4 .navbar-header:after {
3607
+ content: " ";
3608
+ display: table;
3609
+ }
3610
+ .seed-csp4 .navbar-header:after {
3611
+ clear: both;
3612
+ }
3613
+ @media (min-width: 768px) {
3614
+ .seed-csp4 .navbar-header {
3615
+ float: left;
3616
+ }
3617
+ }
3618
+ .seed-csp4 .navbar-collapse {
3619
+ max-height: 340px;
3620
+ overflow-x: visible;
3621
+ padding-right: 15px;
3622
+ padding-left: 15px;
3623
+ border-top: 1px solid transparent;
3624
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
3625
+ -webkit-overflow-scrolling: touch;
3626
+ }
3627
+ .seed-csp4 .navbar-collapse:before,
3628
+ .seed-csp4 .navbar-collapse:after {
3629
+ content: " ";
3630
+ display: table;
3631
+ }
3632
+ .seed-csp4 .navbar-collapse:after {
3633
+ clear: both;
3634
+ }
3635
+ .seed-csp4 .navbar-collapse:before,
3636
+ .seed-csp4 .navbar-collapse:after {
3637
+ content: " ";
3638
+ display: table;
3639
+ }
3640
+ .seed-csp4 .navbar-collapse:after {
3641
+ clear: both;
3642
+ }
3643
+ .seed-csp4 .navbar-collapse.in {
3644
+ overflow-y: auto;
3645
+ }
3646
+ @media (min-width: 768px) {
3647
+ .seed-csp4 .navbar-collapse {
3648
+ width: auto;
3649
+ border-top: 0;
3650
+ box-shadow: none;
3651
+ }
3652
+ .seed-csp4 .navbar-collapse.collapse {
3653
+ display: block !important;
3654
+ height: auto !important;
3655
+ padding-bottom: 0;
3656
+ overflow: visible !important;
3657
+ }
3658
+ .seed-csp4 .navbar-collapse.in {
3659
+ overflow-y: visible;
3660
+ }
3661
+ .navbar-fixed-top .seed-csp4 .navbar-collapse,
3662
+ .navbar-static-top .seed-csp4 .navbar-collapse,
3663
+ .navbar-fixed-bottom .seed-csp4 .navbar-collapse {
3664
+ padding-left: 0;
3665
+ padding-right: 0;
3666
+ }
3667
+ }
3668
+ .seed-csp4 .container > .navbar-header,
3669
+ .seed-csp4 .container > .navbar-collapse {
3670
+ margin-right: -15px;
3671
+ margin-left: -15px;
3672
+ }
3673
+ @media (min-width: 768px) {
3674
+ .seed-csp4 .container > .navbar-header,
3675
+ .seed-csp4 .container > .navbar-collapse {
3676
+ margin-right: 0;
3677
+ margin-left: 0;
3678
+ }
3679
+ }
3680
+ .seed-csp4 .navbar-static-top {
3681
+ z-index: 1000;
3682
+ border-width: 0 0 1px;
3683
+ }
3684
+ @media (min-width: 768px) {
3685
+ .seed-csp4 .navbar-static-top {
3686
+ border-radius: 0;
3687
+ }
3688
+ }
3689
+ .seed-csp4 .navbar-fixed-top,
3690
+ .seed-csp4 .navbar-fixed-bottom {
3691
+ position: fixed;
3692
+ right: 0;
3693
+ left: 0;
3694
+ z-index: 1030;
3695
+ }
3696
+ @media (min-width: 768px) {
3697
+ .seed-csp4 .navbar-fixed-top,
3698
+ .seed-csp4 .navbar-fixed-bottom {
3699
+ border-radius: 0;
3700
+ }
3701
+ }
3702
+ .seed-csp4 .navbar-fixed-top {
3703
+ top: 0;
3704
+ border-width: 0 0 1px;
3705
+ }
3706
+ .seed-csp4 .navbar-fixed-bottom {
3707
+ bottom: 0;
3708
+ margin-bottom: 0;
3709
+ border-width: 1px 0 0;
3710
+ }
3711
+ .seed-csp4 .navbar-brand {
3712
+ float: left;
3713
+ padding: 15px 15px;
3714
+ font-size: 18px;
3715
+ line-height: 20px;
3716
+ }
3717
+ .seed-csp4 .navbar-brand:hover,
3718
+ .seed-csp4 .navbar-brand:focus {
3719
+ text-decoration: none;
3720
+ }
3721
+ @media (min-width: 768px) {
3722
+ .navbar > .container .seed-csp4 .navbar-brand {
3723
+ margin-left: -15px;
3724
+ }
3725
+ }
3726
+ .seed-csp4 .navbar-toggle {
3727
+ position: relative;
3728
+ float: right;
3729
+ margin-right: 15px;
3730
+ padding: 9px 10px;
3731
+ margin-top: 8px;
3732
+ margin-bottom: 8px;
3733
+ background-color: transparent;
3734
+ background-image: none;
3735
+ border: 1px solid transparent;
3736
+ border-radius: 4px;
3737
+ }
3738
+ .seed-csp4 .navbar-toggle .icon-bar {
3739
+ display: block;
3740
+ width: 22px;
3741
+ height: 2px;
3742
+ border-radius: 1px;
3743
+ }
3744
+ .seed-csp4 .navbar-toggle .icon-bar + .icon-bar {
3745
+ margin-top: 4px;
3746
+ }
3747
+ @media (min-width: 768px) {
3748
+ .seed-csp4 .navbar-toggle {
3749
+ display: none;
3750
+ }
3751
+ }
3752
+ .seed-csp4 .navbar-nav {
3753
+ margin: 7.5px -15px;
3754
+ }
3755
+ .seed-csp4 .navbar-nav > li > a {
3756
+ padding-top: 10px;
3757
+ padding-bottom: 10px;
3758
+ line-height: 20px;
3759
+ }
3760
+ @media (max-width: 767px) {
3761
+ .seed-csp4 .navbar-nav .open .dropdown-menu {
3762
+ position: static;
3763
+ float: none;
3764
+ width: auto;
3765
+ margin-top: 0;
3766
+ background-color: transparent;
3767
+ border: 0;
3768
+ box-shadow: none;
3769
+ }
3770
+ .seed-csp4 .navbar-nav .open .dropdown-menu > li > a,
3771
+ .seed-csp4 .navbar-nav .open .dropdown-menu .dropdown-header {
3772
+ padding: 5px 15px 5px 25px;
3773
+ }
3774
+ .seed-csp4 .navbar-nav .open .dropdown-menu > li > a {
3775
+ line-height: 20px;
3776
+ }
3777
+ .seed-csp4 .navbar-nav .open .dropdown-menu > li > a:hover,
3778
+ .seed-csp4 .navbar-nav .open .dropdown-menu > li > a:focus {
3779
+ background-image: none;
3780
+ }
3781
+ }
3782
+ @media (min-width: 768px) {
3783
+ .seed-csp4 .navbar-nav {
3784
+ float: left;
3785
+ margin: 0;
3786
+ }
3787
+ .seed-csp4 .navbar-nav > li {
3788
+ float: left;
3789
+ }
3790
+ .seed-csp4 .navbar-nav > li > a {
3791
+ padding-top: 15px;
3792
+ padding-bottom: 15px;
3793
+ }
3794
+ .seed-csp4 .navbar-nav.navbar-right:last-child {
3795
+ margin-right: -15px;
3796
+ }
3797
+ }
3798
+ @media (min-width: 768px) {
3799
+ .seed-csp4 .navbar-left {
3800
+ float: left !important;
3801
+ }
3802
+ .seed-csp4 .navbar-right {
3803
+ float: right !important;
3804
+ }
3805
+ }
3806
+ .seed-csp4 .navbar-form {
3807
+ margin-left: -15px;
3808
+ margin-right: -15px;
3809
+ padding: 10px 15px;
3810
+ border-top: 1px solid transparent;
3811
+ border-bottom: 1px solid transparent;
3812
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
3813
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
3814
+ margin-top: 8px;
3815
+ margin-bottom: 8px;
3816
+ }
3817
+ @media (min-width: 768px) {
3818
+ .seed-csp4 .navbar-form .form-group {
3819
+ display: inline-block;
3820
+ margin-bottom: 0;
3821
+ vertical-align: middle;
3822
+ }
3823
+ .seed-csp4 .navbar-form .form-control {
3824
+ display: inline-block;
3825
+ }
3826
+ .seed-csp4 .navbar-form select.form-control {
3827
+ width: auto;
3828
+ }
3829
+ .seed-csp4 .navbar-form .radio,
3830
+ .seed-csp4 .navbar-form .checkbox {
3831
+ display: inline-block;
3832
+ margin-top: 0;
3833
+ margin-bottom: 0;
3834
+ padding-left: 0;
3835
+ }
3836
+ .seed-csp4 .navbar-form .radio input[type="radio"],
3837
+ .seed-csp4 .navbar-form .checkbox input[type="checkbox"] {
3838
+ float: none;
3839
+ margin-left: 0;
3840
+ }
3841
+ }
3842
+ @media (max-width: 767px) {
3843
+ .seed-csp4 .navbar-form .form-group {
3844
+ margin-bottom: 5px;
3845
+ }
3846
+ }
3847
+ @media (min-width: 768px) {
3848
+ .seed-csp4 .navbar-form {
3849
+ width: auto;
3850
+ border: 0;
3851
+ margin-left: 0;
3852
+ margin-right: 0;
3853
+ padding-top: 0;
3854
+ padding-bottom: 0;
3855
+ -webkit-box-shadow: none;
3856
+ box-shadow: none;
3857
+ }
3858
+ .seed-csp4 .navbar-form.navbar-right:last-child {
3859
+ margin-right: -15px;
3860
+ }
3861
+ }
3862
+ .seed-csp4 .navbar-nav > li > .dropdown-menu {
3863
+ margin-top: 0;
3864
+ border-top-right-radius: 0;
3865
+ border-top-left-radius: 0;
3866
+ }
3867
+ .seed-csp4 .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
3868
+ border-bottom-right-radius: 0;
3869
+ border-bottom-left-radius: 0;
3870
+ }
3871
+ .seed-csp4 .navbar-nav.pull-right > li > .dropdown-menu,
3872
+ .seed-csp4 .navbar-nav > li > .dropdown-menu.pull-right {
3873
+ left: auto;
3874
+ right: 0;
3875
+ }
3876
+ .seed-csp4 .navbar-btn {
3877
+ margin-top: 8px;
3878
+ margin-bottom: 8px;
3879
+ }
3880
+ .seed-csp4 .navbar-btn.btn-sm {
3881
+ margin-top: 10px;
3882
+ margin-bottom: 10px;
3883
+ }
3884
+ .seed-csp4 .navbar-btn.btn-xs {
3885
+ margin-top: 14px;
3886
+ margin-bottom: 14px;
3887
+ }
3888
+ .seed-csp4 .navbar-text {
3889
+ margin-top: 15px;
3890
+ margin-bottom: 15px;
3891
+ }
3892
+ @media (min-width: 768px) {
3893
+ .seed-csp4 .navbar-text {
3894
+ float: left;
3895
+ margin-left: 15px;
3896
+ margin-right: 15px;
3897
+ }
3898
+ .seed-csp4 .navbar-text.navbar-right:last-child {
3899
+ margin-right: 0;
3900
+ }
3901
+ }
3902
+ .seed-csp4 .navbar-default {
3903
+ background-color: #f8f8f8;
3904
+ border-color: #e7e7e7;
3905
+ }
3906
+ .seed-csp4 .navbar-default .navbar-brand {
3907
+ color: #777777;
3908
+ }
3909
+ .seed-csp4 .navbar-default .navbar-brand:hover,
3910
+ .seed-csp4 .navbar-default .navbar-brand:focus {
3911
+ color: #5e5e5e;
3912
+ background-color: transparent;
3913
+ }
3914
+ .seed-csp4 .navbar-default .navbar-text {
3915
+ color: #777777;
3916
+ }
3917
+ .seed-csp4 .navbar-default .navbar-nav > li > a {
3918
+ color: #777777;
3919
+ }
3920
+ .seed-csp4 .navbar-default .navbar-nav > li > a:hover,
3921
+ .seed-csp4 .navbar-default .navbar-nav > li > a:focus {
3922
+ color: #333333;
3923
+ background-color: transparent;
3924
+ }
3925
+ .seed-csp4 .navbar-default .navbar-nav > .active > a,
3926
+ .seed-csp4 .navbar-default .navbar-nav > .active > a:hover,
3927
+ .seed-csp4 .navbar-default .navbar-nav > .active > a:focus {
3928
+ color: #555555;
3929
+ background-color: #e7e7e7;
3930
+ }
3931
+ .seed-csp4 .navbar-default .navbar-nav > .disabled > a,
3932
+ .seed-csp4 .navbar-default .navbar-nav > .disabled > a:hover,
3933
+ .seed-csp4 .navbar-default .navbar-nav > .disabled > a:focus {
3934
+ color: #cccccc;
3935
+ background-color: transparent;
3936
+ }
3937
+ .seed-csp4 .navbar-default .navbar-toggle {
3938
+ border-color: #dddddd;
3939
+ }
3940
+ .seed-csp4 .navbar-default .navbar-toggle:hover,
3941
+ .seed-csp4 .navbar-default .navbar-toggle:focus {
3942
+ background-color: #dddddd;
3943
+ }
3944
+ .seed-csp4 .navbar-default .navbar-toggle .icon-bar {
3945
+ background-color: #cccccc;
3946
+ }
3947
+ .seed-csp4 .navbar-default .navbar-collapse,
3948
+ .seed-csp4 .navbar-default .navbar-form {
3949
+ border-color: #e7e7e7;
3950
+ }
3951
+ .seed-csp4 .navbar-default .navbar-nav > .open > a,
3952
+ .seed-csp4 .navbar-default .navbar-nav > .open > a:hover,
3953
+ .seed-csp4 .navbar-default .navbar-nav > .open > a:focus {
3954
+ background-color: #e7e7e7;
3955
+ color: #555555;
3956
+ }
3957
+ @media (max-width: 767px) {
3958
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > li > a {
3959
+ color: #777777;
3960
+ }
3961
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
3962
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
3963
+ color: #333333;
3964
+ background-color: transparent;
3965
+ }
3966
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
3967
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
3968
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
3969
+ color: #555555;
3970
+ background-color: #e7e7e7;
3971
+ }
3972
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
3973
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
3974
+ .seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
3975
+ color: #cccccc;
3976
+ background-color: transparent;
3977
+ }
3978
+ }
3979
+ .seed-csp4 .navbar-default .navbar-link {
3980
+ color: #777777;
3981
+ }
3982
+ .seed-csp4 .navbar-default .navbar-link:hover {
3983
+ color: #333333;
3984
+ }
3985
+ .seed-csp4 .navbar-inverse {
3986
+ background-color: #222222;
3987
+ border-color: #080808;
3988
+ }
3989
+ .seed-csp4 .navbar-inverse .navbar-brand {
3990
+ color: #999999;
3991
+ }
3992
+ .seed-csp4 .navbar-inverse .navbar-brand:hover,
3993
+ .seed-csp4 .navbar-inverse .navbar-brand:focus {
3994
+ color: #ffffff;
3995
+ background-color: transparent;
3996
+ }
3997
+ .seed-csp4 .navbar-inverse .navbar-text {
3998
+ color: #999999;
3999
+ }
4000
+ .seed-csp4 .navbar-inverse .navbar-nav > li > a {
4001
+ color: #999999;
4002
+ }
4003
+ .seed-csp4 .navbar-inverse .navbar-nav > li > a:hover,
4004
+ .seed-csp4 .navbar-inverse .navbar-nav > li > a:focus {
4005
+ color: #ffffff;
4006
+ background-color: transparent;
4007
+ }
4008
+ .seed-csp4 .navbar-inverse .navbar-nav > .active > a,
4009
+ .seed-csp4 .navbar-inverse .navbar-nav > .active > a:hover,
4010
+ .seed-csp4 .navbar-inverse .navbar-nav > .active > a:focus {
4011
+ color: #ffffff;
4012
+ background-color: #080808;
4013
+ }
4014
+ .seed-csp4 .navbar-inverse .navbar-nav > .disabled > a,
4015
+ .seed-csp4 .navbar-inverse .navbar-nav > .disabled > a:hover,
4016
+ .seed-csp4 .navbar-inverse .navbar-nav > .disabled > a:focus {
4017
+ color: #444444;
4018
+ background-color: transparent;
4019
+ }
4020
+ .seed-csp4 .navbar-inverse .navbar-toggle {
4021
+ border-color: #333333;
4022
+ }
4023
+ .seed-csp4 .navbar-inverse .navbar-toggle:hover,
4024
+ .seed-csp4 .navbar-inverse .navbar-toggle:focus {
4025
+ background-color: #333333;
4026
+ }
4027
+ .seed-csp4 .navbar-inverse .navbar-toggle .icon-bar {
4028
+ background-color: #ffffff;
4029
+ }
4030
+ .seed-csp4 .navbar-inverse .navbar-collapse,
4031
+ .seed-csp4 .navbar-inverse .navbar-form {
4032
+ border-color: #101010;
4033
+ }
4034
+ .seed-csp4 .navbar-inverse .navbar-nav > .open > a,
4035
+ .seed-csp4 .navbar-inverse .navbar-nav > .open > a:hover,
4036
+ .seed-csp4 .navbar-inverse .navbar-nav > .open > a:focus {
4037
+ background-color: #080808;
4038
+ color: #ffffff;
4039
+ }
4040
+ @media (max-width: 767px) {
4041
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
4042
+ border-color: #080808;
4043
+ }
4044
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
4045
+ background-color: #080808;
4046
+ }
4047
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
4048
+ color: #999999;
4049
+ }
4050
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
4051
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
4052
+ color: #ffffff;
4053
+ background-color: transparent;
4054
+ }
4055
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
4056
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
4057
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
4058
+ color: #ffffff;
4059
+ background-color: #080808;
4060
+ }
4061
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
4062
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
4063
+ .seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
4064
+ color: #444444;
4065
+ background-color: transparent;
4066
+ }
4067
+ }
4068
+ .seed-csp4 .navbar-inverse .navbar-link {
4069
+ color: #999999;
4070
+ }
4071
+ .seed-csp4 .navbar-inverse .navbar-link:hover {
4072
+ color: #ffffff;
4073
+ }
4074
+ .seed-csp4 .breadcrumb {
4075
+ padding: 8px 15px;
4076
+ margin-bottom: 20px;
4077
+ list-style: none;
4078
+ background-color: #f5f5f5;
4079
+ border-radius: 4px;
4080
+ }
4081
+ .seed-csp4 .breadcrumb > li {
4082
+ display: inline-block;
4083
+ }
4084
+ .seed-csp4 .breadcrumb > li + li:before {
4085
+ content: "/\00a0";
4086
+ padding: 0 5px;
4087
+ color: #cccccc;
4088
+ }
4089
+ .seed-csp4 .breadcrumb > .active {
4090
+ color: #999999;
4091
+ }
4092
+ .seed-csp4 .pagination {
4093
+ display: inline-block;
4094
+ padding-left: 0;
4095
+ margin: 20px 0;
4096
+ border-radius: 4px;
4097
+ }
4098
+ .seed-csp4 .pagination > li {
4099
+ display: inline;
4100
+ }
4101
+ .seed-csp4 .pagination > li > a,
4102
+ .seed-csp4 .pagination > li > span {
4103
+ position: relative;
4104
+ float: left;
4105
+ padding: 6px 12px;
4106
+ line-height: 1.428571429;
4107
+ text-decoration: none;
4108
+ background-color: #ffffff;
4109
+ border: 1px solid #dddddd;
4110
+ margin-left: -1px;
4111
+ }
4112
+ .seed-csp4 .pagination > li:first-child > a,
4113
+ .seed-csp4 .pagination > li:first-child > span {
4114
+ margin-left: 0;
4115
+ border-bottom-left-radius: 4px;
4116
+ border-top-left-radius: 4px;
4117
+ }
4118
+ .seed-csp4 .pagination > li:last-child > a,
4119
+ .seed-csp4 .pagination > li:last-child > span {
4120
+ border-bottom-right-radius: 4px;
4121
+ border-top-right-radius: 4px;
4122
+ }
4123
+ .seed-csp4 .pagination > li > a:hover,
4124
+ .seed-csp4 .pagination > li > span:hover,
4125
+ .seed-csp4 .pagination > li > a:focus,
4126
+ .seed-csp4 .pagination > li > span:focus {
4127
+ background-color: #eeeeee;
4128
+ }
4129
+ .seed-csp4 .pagination > .active > a,
4130
+ .seed-csp4 .pagination > .active > span,
4131
+ .seed-csp4 .pagination > .active > a:hover,
4132
+ .seed-csp4 .pagination > .active > span:hover,
4133
+ .seed-csp4 .pagination > .active > a:focus,
4134
+ .seed-csp4 .pagination > .active > span:focus {
4135
+ z-index: 2;
4136
+ color: #ffffff;
4137
+ background-color: #428bca;
4138
+ border-color: #428bca;
4139
+ cursor: default;
4140
+ }
4141
+ .seed-csp4 .pagination > .disabled > span,
4142
+ .seed-csp4 .pagination > .disabled > span:hover,
4143
+ .seed-csp4 .pagination > .disabled > span:focus,
4144
+ .seed-csp4 .pagination > .disabled > a,
4145
+ .seed-csp4 .pagination > .disabled > a:hover,
4146
+ .seed-csp4 .pagination > .disabled > a:focus {
4147
+ color: #999999;
4148
+ background-color: #ffffff;
4149
+ border-color: #dddddd;
4150
+ cursor: not-allowed;
4151
+ }
4152
+ .seed-csp4 .pagination-lg > li > a,
4153
+ .seed-csp4 .pagination-lg > li > span {
4154
+ padding: 10px 16px;
4155
+ font-size: 18px;
4156
+ }
4157
+ .seed-csp4 .pagination-lg > li:first-child > a,
4158
+ .seed-csp4 .pagination-lg > li:first-child > span {
4159
+ border-bottom-left-radius: 6px;
4160
+ border-top-left-radius: 6px;
4161
+ }
4162
+ .seed-csp4 .pagination-lg > li:last-child > a,
4163
+ .seed-csp4 .pagination-lg > li:last-child > span {
4164
+ border-bottom-right-radius: 6px;
4165
+ border-top-right-radius: 6px;
4166
+ }
4167
+ .seed-csp4 .pagination-sm > li > a,
4168
+ .seed-csp4 .pagination-sm > li > span {
4169
+ padding: 5px 10px;
4170
+ font-size: 12px;
4171
+ }
4172
+ .seed-csp4 .pagination-sm > li:first-child > a,
4173
+ .seed-csp4 .pagination-sm > li:first-child > span {
4174
+ border-bottom-left-radius: 3px;
4175
+ border-top-left-radius: 3px;
4176
+ }
4177
+ .seed-csp4 .pagination-sm > li:last-child > a,
4178
+ .seed-csp4 .pagination-sm > li:last-child > span {
4179
+ border-bottom-right-radius: 3px;
4180
+ border-top-right-radius: 3px;
4181
+ }
4182
+ .seed-csp4 .pager {
4183
+ padding-left: 0;
4184
+ margin: 20px 0;
4185
+ list-style: none;
4186
+ text-align: center;
4187
+ }
4188
+ .seed-csp4 .pager:before,
4189
+ .seed-csp4 .pager:after {
4190
+ content: " ";
4191
+ display: table;
4192
+ }
4193
+ .seed-csp4 .pager:after {
4194
+ clear: both;
4195
+ }
4196
+ .seed-csp4 .pager:before,
4197
+ .seed-csp4 .pager:after {
4198
+ content: " ";
4199
+ display: table;
4200
+ }
4201
+ .seed-csp4 .pager:after {
4202
+ clear: both;
4203
+ }
4204
+ .seed-csp4 .pager li {
4205
+ display: inline;
4206
+ }
4207
+ .seed-csp4 .pager li > a,
4208
+ .seed-csp4 .pager li > span {
4209
+ display: inline-block;
4210
+ padding: 5px 14px;
4211
+ background-color: #ffffff;
4212
+ border: 1px solid #dddddd;
4213
+ border-radius: 15px;
4214
+ }
4215
+ .seed-csp4 .pager li > a:hover,
4216
+ .seed-csp4 .pager li > a:focus {
4217
+ text-decoration: none;
4218
+ background-color: #eeeeee;
4219
+ }
4220
+ .seed-csp4 .pager .next > a,
4221
+ .seed-csp4 .pager .next > span {
4222
+ float: right;
4223
+ }
4224
+ .seed-csp4 .pager .previous > a,
4225
+ .seed-csp4 .pager .previous > span {
4226
+ float: left;
4227
+ }
4228
+ .seed-csp4 .pager .disabled > a,
4229
+ .seed-csp4 .pager .disabled > a:hover,
4230
+ .seed-csp4 .pager .disabled > a:focus,
4231
+ .seed-csp4 .pager .disabled > span {
4232
+ color: #999999;
4233
+ background-color: #ffffff;
4234
+ cursor: not-allowed;
4235
+ }
4236
+ .seed-csp4 .label {
4237
+ display: inline;
4238
+ padding: .2em .6em .3em;
4239
+ font-size: 75%;
4240
+ font-weight: bold;
4241
+ line-height: 1;
4242
+ color: #ffffff;
4243
+ text-align: center;
4244
+ white-space: nowrap;
4245
+ vertical-align: baseline;
4246
+ border-radius: .25em;
4247
+ }
4248
+ .seed-csp4 .label[href]:hover,
4249
+ .seed-csp4 .label[href]:focus {
4250
+ color: #ffffff;
4251
+ text-decoration: none;
4252
+ cursor: pointer;
4253
+ }
4254
+ .seed-csp4 .label:empty {
4255
+ display: none;
4256
+ }
4257
+ .btn .seed-csp4 .label {
4258
+ position: relative;
4259
+ top: -1px;
4260
+ }
4261
+ .seed-csp4 .label-default {
4262
+ background-color: #999999;
4263
+ }
4264
+ .seed-csp4 .label-default[href]:hover,
4265
+ .seed-csp4 .label-default[href]:focus {
4266
+ background-color: #808080;
4267
+ }
4268
+ .seed-csp4 .label-primary {
4269
+ background-color: #428bca;
4270
+ }
4271
+ .seed-csp4 .label-primary[href]:hover,
4272
+ .seed-csp4 .label-primary[href]:focus {
4273
+ background-color: #3071a9;
4274
+ }
4275
+ .seed-csp4 .label-success {
4276
+ background-color: #5cb85c;
4277
+ }
4278
+ .seed-csp4 .label-success[href]:hover,
4279
+ .seed-csp4 .label-success[href]:focus {
4280
+ background-color: #449d44;
4281
+ }
4282
+ .seed-csp4 .label-info {
4283
+ background-color: #5bc0de;
4284
+ }
4285
+ .seed-csp4 .label-info[href]:hover,
4286
+ .seed-csp4 .label-info[href]:focus {
4287
+ background-color: #31b0d5;
4288
+ }
4289
+ .seed-csp4 .label-warning {
4290
+ background-color: #f0ad4e;
4291
+ }
4292
+ .seed-csp4 .label-warning[href]:hover,
4293
+ .seed-csp4 .label-warning[href]:focus {
4294
+ background-color: #ec971f;
4295
+ }
4296
+ .seed-csp4 .label-danger {
4297
+ background-color: #d9534f;
4298
+ }
4299
+ .seed-csp4 .label-danger[href]:hover,
4300
+ .seed-csp4 .label-danger[href]:focus {
4301
+ background-color: #c9302c;
4302
+ }
4303
+ .seed-csp4 .badge {
4304
+ display: inline-block;
4305
+ min-width: 10px;
4306
+ padding: 3px 7px;
4307
+ font-size: 12px;
4308
+ font-weight: bold;
4309
+ color: #ffffff;
4310
+ line-height: 1;
4311
+ vertical-align: baseline;
4312
+ white-space: nowrap;
4313
+ text-align: center;
4314
+ background-color: #999999;
4315
+ border-radius: 10px;
4316
+ }
4317
+ .seed-csp4 .badge:empty {
4318
+ display: none;
4319
+ }
4320
+ .btn .seed-csp4 .badge {
4321
+ position: relative;
4322
+ top: -1px;
4323
+ }
4324
+ .seed-csp4 a.badge:hover,
4325
+ .seed-csp4 a.badge:focus {
4326
+ color: #ffffff;
4327
+ text-decoration: none;
4328
+ cursor: pointer;
4329
+ }
4330
+ .seed-csp4 a.list-group-item.active > .badge,
4331
+ .seed-csp4 .nav-pills > .active > a > .badge {
4332
+ color: #428bca;
4333
+ background-color: #ffffff;
4334
+ }
4335
+ .seed-csp4 .nav-pills > li > a > .badge {
4336
+ margin-left: 3px;
4337
+ }
4338
+ .seed-csp4 .jumbotron {
4339
+ padding: 30px;
4340
+ margin-bottom: 30px;
4341
+ font-size: 21px;
4342
+ font-weight: 200;
4343
+ line-height: 2.1428571435;
4344
+ color: inherit;
4345
+ background-color: #eeeeee;
4346
+ }
4347
+ .seed-csp4 .jumbotron h1,
4348
+ .seed-csp4 .jumbotron .h1 {
4349
+ line-height: 1;
4350
+ color: inherit;
4351
+ }
4352
+ .seed-csp4 .jumbotron p {
4353
+ line-height: 1.4;
4354
+ }
4355
+ .container .seed-csp4 .jumbotron {
4356
+ border-radius: 6px;
4357
+ }
4358
+ .seed-csp4 .jumbotron .container {
4359
+ max-width: 100%;
4360
+ }
4361
+ @media screen and (min-width: 768px) {
4362
+ .seed-csp4 .jumbotron {
4363
+ padding-top: 48px;
4364
+ padding-bottom: 48px;
4365
+ }
4366
+ .container .seed-csp4 .jumbotron {
4367
+ padding-left: 60px;
4368
+ padding-right: 60px;
4369
+ }
4370
+ .seed-csp4 .jumbotron h1,
4371
+ .seed-csp4 .jumbotron .h1 {
4372
+ font-size: 63px;
4373
+ }
4374
+ }
4375
+ .seed-csp4 .thumbnail {
4376
+ display: block;
4377
+ padding: 4px;
4378
+ margin-bottom: 20px;
4379
+ line-height: 1.428571429;
4380
+ background-color: #ffffff;
4381
+ border: 1px solid #dddddd;
4382
+ border-radius: 4px;
4383
+ -webkit-transition: all 0.2s ease-in-out;
4384
+ transition: all 0.2s ease-in-out;
4385
+ }
4386
+ .seed-csp4 .thumbnail > img,
4387
+ .seed-csp4 .thumbnail a > img {
4388
+ display: block;
4389
+ max-width: 100%;
4390
+ height: auto;
4391
+ margin-left: auto;
4392
+ margin-right: auto;
4393
+ }
4394
+ a.seed-csp4 .thumbnail:hover,
4395
+ a.seed-csp4 .thumbnail:focus,
4396
+ a.seed-csp4 .thumbnail.active {
4397
+ border-color: #428bca;
4398
+ }
4399
+ .seed-csp4 .thumbnail .caption {
4400
+ padding: 9px;
4401
+ color: #333333;
4402
+ }
4403
+ .seed-csp4 .alert {
4404
+ padding: 15px;
4405
+ margin-bottom: 20px;
4406
+ border: 1px solid transparent;
4407
+ border-radius: 4px;
4408
+ }
4409
+ .seed-csp4 .alert h4 {
4410
+ margin-top: 0;
4411
+ color: inherit;
4412
+ }
4413
+ .seed-csp4 .alert .alert-link {
4414
+ font-weight: bold;
4415
+ }
4416
+ .seed-csp4 .alert > p,
4417
+ .seed-csp4 .alert > ul {
4418
+ margin-bottom: 0;
4419
+ }
4420
+ .seed-csp4 .alert > p + p {
4421
+ margin-top: 5px;
4422
+ }
4423
+ .seed-csp4 .alert-dismissable {
4424
+ padding-right: 35px;
4425
+ }
4426
+ .seed-csp4 .alert-dismissable .close {
4427
+ position: relative;
4428
+ top: -2px;
4429
+ right: -21px;
4430
+ color: inherit;
4431
+ }
4432
+ .seed-csp4 .alert-success {
4433
+ background-color: #dff0d8;
4434
+ border-color: #d6e9c6;
4435
+ color: #3c763d;
4436
+ }
4437
+ .seed-csp4 .alert-success hr {
4438
+ border-top-color: #c9e2b3;
4439
+ }
4440
+ .seed-csp4 .alert-success .alert-link {
4441
+ color: #2b542c;
4442
+ }
4443
+ .seed-csp4 .alert-info {
4444
+ background-color: #d9edf7;
4445
+ border-color: #bce8f1;
4446
+ color: #31708f;
4447
+ }
4448
+ .seed-csp4 .alert-info hr {
4449
+ border-top-color: #a6e1ec;
4450
+ }
4451
+ .seed-csp4 .alert-info .alert-link {
4452
+ color: #245269;
4453
+ }
4454
+ .seed-csp4 .alert-warning {
4455
+ background-color: #fcf8e3;
4456
+ border-color: #faebcc;
4457
+ color: #8a6d3b;
4458
+ }
4459
+ .seed-csp4 .alert-warning hr {
4460
+ border-top-color: #f7e1b5;
4461
+ }
4462
+ .seed-csp4 .alert-warning .alert-link {
4463
+ color: #66512c;
4464
+ }
4465
+ .seed-csp4 .alert-danger {
4466
+ background-color: #f2dede;
4467
+ border-color: #ebccd1;
4468
+ color: #a94442;
4469
+ }
4470
+ .seed-csp4 .alert-danger hr {
4471
+ border-top-color: #e4b9c0;
4472
+ }
4473
+ .seed-csp4 .alert-danger .alert-link {
4474
+ color: #843534;
4475
+ }
4476
+ @-webkit-keyframes progress-bar-stripes {
4477
+ from {
4478
+ background-position: 40px 0;
4479
+ }
4480
+ to {
4481
+ background-position: 0 0;
4482
+ }
4483
+ }
4484
+ @keyframes progress-bar-stripes {
4485
+ from {
4486
+ background-position: 40px 0;
4487
+ }
4488
+ to {
4489
+ background-position: 0 0;
4490
+ }
4491
+ }
4492
+ .seed-csp4 .progress {
4493
+ overflow: hidden;
4494
+ height: 20px;
4495
+ margin-bottom: 20px;
4496
+ background-color: #f5f5f5;
4497
+ border-radius: 4px;
4498
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4499
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
4500
+ }
4501
+ .seed-csp4 .progress-bar {
4502
+ float: left;
4503
+ width: 0%;
4504
+ height: 100%;
4505
+ font-size: 12px;
4506
+ line-height: 20px;
4507
+ color: #ffffff;
4508
+ text-align: center;
4509
+ background-color: #428bca;
4510
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
4511
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
4512
+ -webkit-transition: width 0.6s ease;
4513
+ transition: width 0.6s ease;
4514
+ }
4515
+ .seed-csp4 .progress-striped .progress-bar {
4516
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4517
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4518
+ background-size: 40px 40px;
4519
+ }
4520
+ .seed-csp4 .progress.active .progress-bar {
4521
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
4522
+ animation: progress-bar-stripes 2s linear infinite;
4523
+ }
4524
+ .seed-csp4 .progress-bar-success {
4525
+ background-color: #5cb85c;
4526
+ }
4527
+ .progress-striped .seed-csp4 .progress-bar-success {
4528
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4529
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4530
+ }
4531
+ .seed-csp4 .progress-bar-info {
4532
+ background-color: #5bc0de;
4533
+ }
4534
+ .progress-striped .seed-csp4 .progress-bar-info {
4535
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4536
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4537
+ }
4538
+ .seed-csp4 .progress-bar-warning {
4539
+ background-color: #f0ad4e;
4540
+ }
4541
+ .progress-striped .seed-csp4 .progress-bar-warning {
4542
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4543
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4544
+ }
4545
+ .seed-csp4 .progress-bar-danger {
4546
+ background-color: #d9534f;
4547
+ }
4548
+ .progress-striped .seed-csp4 .progress-bar-danger {
4549
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4550
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
4551
+ }
4552
+ .seed-csp4 .media,
4553
+ .seed-csp4 .media-body {
4554
+ overflow: hidden;
4555
+ zoom: 1;
4556
+ }
4557
+ .seed-csp4 .media,
4558
+ .seed-csp4 .media .media {
4559
+ margin-top: 15px;
4560
+ }
4561
+ .seed-csp4 .media:first-child {
4562
+ margin-top: 0;
4563
+ }
4564
+ .seed-csp4 .media-object {
4565
+ display: block;
4566
+ }
4567
+ .seed-csp4 .media-heading {
4568
+ margin: 0 0 5px;
4569
+ }
4570
+ .seed-csp4 .media > .pull-left {
4571
+ margin-right: 10px;
4572
+ }
4573
+ .seed-csp4 .media > .pull-right {
4574
+ margin-left: 10px;
4575
+ }
4576
+ .seed-csp4 .media-list {
4577
+ padding-left: 0;
4578
+ list-style: none;
4579
+ }
4580
+ .seed-csp4 .list-group {
4581
+ margin-bottom: 20px;
4582
+ padding-left: 0;
4583
+ }
4584
+ .seed-csp4 .list-group-item {
4585
+ position: relative;
4586
+ display: block;
4587
+ padding: 10px 15px;
4588
+ margin-bottom: -1px;
4589
+ background-color: #ffffff;
4590
+ border: 1px solid #dddddd;
4591
+ }
4592
+ .seed-csp4 .list-group-item:first-child {
4593
+ border-top-right-radius: 4px;
4594
+ border-top-left-radius: 4px;
4595
+ }
4596
+ .seed-csp4 .list-group-item:last-child {
4597
+ margin-bottom: 0;
4598
+ border-bottom-right-radius: 4px;
4599
+ border-bottom-left-radius: 4px;
4600
+ }
4601
+ .seed-csp4 .list-group-item > .badge {
4602
+ float: right;
4603
+ }
4604
+ .seed-csp4 .list-group-item > .badge + .badge {
4605
+ margin-right: 5px;
4606
+ }
4607
+ .seed-csp4 a.list-group-item {
4608
+ color: #555555;
4609
+ }
4610
+ .seed-csp4 a.list-group-item .list-group-item-heading {
4611
+ color: #333333;
4612
+ }
4613
+ .seed-csp4 a.list-group-item:hover,
4614
+ .seed-csp4 a.list-group-item:focus {
4615
+ text-decoration: none;
4616
+ background-color: #f5f5f5;
4617
+ }
4618
+ .seed-csp4 a.list-group-item.active,
4619
+ .seed-csp4 a.list-group-item.active:hover,
4620
+ .seed-csp4 a.list-group-item.active:focus {
4621
+ z-index: 2;
4622
+ color: #ffffff;
4623
+ background-color: #428bca;
4624
+ border-color: #428bca;
4625
+ }
4626
+ .seed-csp4 a.list-group-item.active .list-group-item-heading,
4627
+ .seed-csp4 a.list-group-item.active:hover .list-group-item-heading,
4628
+ .seed-csp4 a.list-group-item.active:focus .list-group-item-heading {
4629
+ color: inherit;
4630
+ }
4631
+ .seed-csp4 a.list-group-item.active .list-group-item-text,
4632
+ .seed-csp4 a.list-group-item.active:hover .list-group-item-text,
4633
+ .seed-csp4 a.list-group-item.active:focus .list-group-item-text {
4634
+ color: #e1edf7;
4635
+ }
4636
+ .seed-csp4 .list-group-item-heading {
4637
+ margin-top: 0;
4638
+ margin-bottom: 5px;
4639
+ }
4640
+ .seed-csp4 .list-group-item-text {
4641
+ margin-bottom: 0;
4642
+ line-height: 1.3;
4643
+ }
4644
+ .seed-csp4 .panel {
4645
+ margin-bottom: 20px;
4646
+ background-color: #ffffff;
4647
+ border: 1px solid transparent;
4648
+ border-radius: 4px;
4649
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
4650
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
4651
+ }
4652
+ .seed-csp4 .panel-body {
4653
+ padding: 15px;
4654
+ }
4655
+ .seed-csp4 .panel-body:before,
4656
+ .seed-csp4 .panel-body:after {
4657
+ content: " ";
4658
+ display: table;
4659
+ }
4660
+ .seed-csp4 .panel-body:after {
4661
+ clear: both;
4662
+ }
4663
+ .seed-csp4 .panel-body:before,
4664
+ .seed-csp4 .panel-body:after {
4665
+ content: " ";
4666
+ display: table;
4667
+ }
4668
+ .seed-csp4 .panel-body:after {
4669
+ clear: both;
4670
+ }
4671
+ .seed-csp4 .panel > .list-group {
4672
+ margin-bottom: 0;
4673
+ }
4674
+ .seed-csp4 .panel > .list-group .list-group-item {
4675
+ border-width: 1px 0;
4676
+ }
4677
+ .seed-csp4 .panel > .list-group .list-group-item:first-child {
4678
+ border-top-right-radius: 0;
4679
+ border-top-left-radius: 0;
4680
+ }
4681
+ .seed-csp4 .panel > .list-group .list-group-item:last-child {
4682
+ border-bottom: 0;
4683
+ }
4684
+ .seed-csp4 .panel-heading + .list-group .list-group-item:first-child {
4685
+ border-top-width: 0;
4686
+ }
4687
+ .seed-csp4 .panel > .table,
4688
+ .seed-csp4 .panel > .table-responsive > .table {
4689
+ margin-bottom: 0;
4690
+ }
4691
+ .seed-csp4 .panel > .panel-body + .table,
4692
+ .seed-csp4 .panel > .panel-body + .table-responsive {
4693
+ border-top: 1px solid #dddddd;
4694
+ }
4695
+ .seed-csp4 .panel > .table > tbody:first-child th,
4696
+ .seed-csp4 .panel > .table > tbody:first-child td {
4697
+ border-top: 0;
4698
+ }
4699
+ .seed-csp4 .panel > .table-bordered,
4700
+ .seed-csp4 .panel > .table-responsive > .table-bordered {
4701
+ border: 0;
4702
+ }
4703
+ .seed-csp4 .panel > .table-bordered > thead > tr > th:first-child,
4704
+ .seed-csp4 .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
4705
+ .seed-csp4 .panel > .table-bordered > tbody > tr > th:first-child,
4706
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
4707
+ .seed-csp4 .panel > .table-bordered > tfoot > tr > th:first-child,
4708
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
4709
+ .seed-csp4 .panel > .table-bordered > thead > tr > td:first-child,
4710
+ .seed-csp4 .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
4711
+ .seed-csp4 .panel > .table-bordered > tbody > tr > td:first-child,
4712
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
4713
+ .seed-csp4 .panel > .table-bordered > tfoot > tr > td:first-child,
4714
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
4715
+ border-left: 0;
4716
+ }
4717
+ .seed-csp4 .panel > .table-bordered > thead > tr > th:last-child,
4718
+ .seed-csp4 .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
4719
+ .seed-csp4 .panel > .table-bordered > tbody > tr > th:last-child,
4720
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
4721
+ .seed-csp4 .panel > .table-bordered > tfoot > tr > th:last-child,
4722
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
4723
+ .seed-csp4 .panel > .table-bordered > thead > tr > td:last-child,
4724
+ .seed-csp4 .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
4725
+ .seed-csp4 .panel > .table-bordered > tbody > tr > td:last-child,
4726
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
4727
+ .seed-csp4 .panel > .table-bordered > tfoot > tr > td:last-child,
4728
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
4729
+ border-right: 0;
4730
+ }
4731
+ .seed-csp4 .panel > .table-bordered > thead > tr:last-child > th,
4732
+ .seed-csp4 .panel > .table-responsive > .table-bordered > thead > tr:last-child > th,
4733
+ .seed-csp4 .panel > .table-bordered > tbody > tr:last-child > th,
4734
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
4735
+ .seed-csp4 .panel > .table-bordered > tfoot > tr:last-child > th,
4736
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th,
4737
+ .seed-csp4 .panel > .table-bordered > thead > tr:last-child > td,
4738
+ .seed-csp4 .panel > .table-responsive > .table-bordered > thead > tr:last-child > td,
4739
+ .seed-csp4 .panel > .table-bordered > tbody > tr:last-child > td,
4740
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
4741
+ .seed-csp4 .panel > .table-bordered > tfoot > tr:last-child > td,
4742
+ .seed-csp4 .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td {
4743
+ border-bottom: 0;
4744
+ }
4745
+ .seed-csp4 .panel > .table-responsive {
4746
+ border: 0;
4747
+ margin-bottom: 0;
4748
+ }
4749
+ .seed-csp4 .panel-heading {
4750
+ padding: 10px 15px;
4751
+ border-bottom: 1px solid transparent;
4752
+ border-top-right-radius: 3px;
4753
+ border-top-left-radius: 3px;
4754
+ }
4755
+ .seed-csp4 .panel-heading > .dropdown .dropdown-toggle {
4756
+ color: inherit;
4757
+ }
4758
+ .seed-csp4 .panel-title {
4759
+ margin-top: 0;
4760
+ margin-bottom: 0;
4761
+ font-size: 16px;
4762
+ color: inherit;
4763
+ }
4764
+ .seed-csp4 .panel-title > a {
4765
+ color: inherit;
4766
+ }
4767
+ .seed-csp4 .panel-footer {
4768
+ padding: 10px 15px;
4769
+ background-color: #f5f5f5;
4770
+ border-top: 1px solid #dddddd;
4771
+ border-bottom-right-radius: 3px;
4772
+ border-bottom-left-radius: 3px;
4773
+ }
4774
+ .seed-csp4 .panel-group .panel {
4775
+ margin-bottom: 0;
4776
+ border-radius: 4px;
4777
+ overflow: hidden;
4778
+ }
4779
+ .seed-csp4 .panel-group .panel + .panel {
4780
+ margin-top: 5px;
4781
+ }
4782
+ .seed-csp4 .panel-group .panel-heading {
4783
+ border-bottom: 0;
4784
+ }
4785
+ .seed-csp4 .panel-group .panel-heading + .panel-collapse .panel-body {
4786
+ border-top: 1px solid #dddddd;
4787
+ }
4788
+ .seed-csp4 .panel-group .panel-footer {
4789
+ border-top: 0;
4790
+ }
4791
+ .seed-csp4 .panel-group .panel-footer + .panel-collapse .panel-body {
4792
+ border-bottom: 1px solid #dddddd;
4793
+ }
4794
+ .seed-csp4 .panel-default {
4795
+ border-color: #dddddd;
4796
+ }
4797
+ .seed-csp4 .panel-default > .panel-heading {
4798
+ color: #333333;
4799
+ background-color: #f5f5f5;
4800
+ border-color: #dddddd;
4801
+ }
4802
+ .seed-csp4 .panel-default > .panel-heading + .panel-collapse .panel-body {
4803
+ border-top-color: #dddddd;
4804
+ }
4805
+ .seed-csp4 .panel-default > .panel-footer + .panel-collapse .panel-body {
4806
+ border-bottom-color: #dddddd;
4807
+ }
4808
+ .seed-csp4 .panel-primary {
4809
+ border-color: #428bca;
4810
+ }
4811
+ .seed-csp4 .panel-primary > .panel-heading {
4812
+ color: #ffffff;
4813
+ background-color: #428bca;
4814
+ border-color: #428bca;
4815
+ }
4816
+ .seed-csp4 .panel-primary > .panel-heading + .panel-collapse .panel-body {
4817
+ border-top-color: #428bca;
4818
+ }
4819
+ .seed-csp4 .panel-primary > .panel-footer + .panel-collapse .panel-body {
4820
+ border-bottom-color: #428bca;
4821
+ }
4822
+ .seed-csp4 .panel-success {
4823
+ border-color: #d6e9c6;
4824
+ }
4825
+ .seed-csp4 .panel-success > .panel-heading {
4826
+ color: #3c763d;
4827
+ background-color: #dff0d8;
4828
+ border-color: #d6e9c6;
4829
+ }
4830
+ .seed-csp4 .panel-success > .panel-heading + .panel-collapse .panel-body {
4831
+ border-top-color: #d6e9c6;
4832
+ }
4833
+ .seed-csp4 .panel-success > .panel-footer + .panel-collapse .panel-body {
4834
+ border-bottom-color: #d6e9c6;
4835
+ }
4836
+ .seed-csp4 .panel-warning {
4837
+ border-color: #faebcc;
4838
+ }
4839
+ .seed-csp4 .panel-warning > .panel-heading {
4840
+ color: #8a6d3b;
4841
+ background-color: #fcf8e3;
4842
+ border-color: #faebcc;
4843
+ }
4844
+ .seed-csp4 .panel-warning > .panel-heading + .panel-collapse .panel-body {
4845
+ border-top-color: #faebcc;
4846
+ }
4847
+ .seed-csp4 .panel-warning > .panel-footer + .panel-collapse .panel-body {
4848
+ border-bottom-color: #faebcc;
4849
+ }
4850
+ .seed-csp4 .panel-danger {
4851
+ border-color: #ebccd1;
4852
+ }
4853
+ .seed-csp4 .panel-danger > .panel-heading {
4854
+ color: #a94442;
4855
+ background-color: #f2dede;
4856
+ border-color: #ebccd1;
4857
+ }
4858
+ .seed-csp4 .panel-danger > .panel-heading + .panel-collapse .panel-body {
4859
+ border-top-color: #ebccd1;
4860
+ }
4861
+ .seed-csp4 .panel-danger > .panel-footer + .panel-collapse .panel-body {
4862
+ border-bottom-color: #ebccd1;
4863
+ }
4864
+ .seed-csp4 .panel-info {
4865
+ border-color: #bce8f1;
4866
+ }
4867
+ .seed-csp4 .panel-info > .panel-heading {
4868
+ color: #31708f;
4869
+ background-color: #d9edf7;
4870
+ border-color: #bce8f1;
4871
+ }
4872
+ .seed-csp4 .panel-info > .panel-heading + .panel-collapse .panel-body {
4873
+ border-top-color: #bce8f1;
4874
+ }
4875
+ .seed-csp4 .panel-info > .panel-footer + .panel-collapse .panel-body {
4876
+ border-bottom-color: #bce8f1;
4877
+ }
4878
+ .seed-csp4 .well {
4879
+ min-height: 20px;
4880
+ padding: 19px;
4881
+ margin-bottom: 20px;
4882
+ background-color: #f5f5f5;
4883
+ border: 1px solid #e3e3e3;
4884
+ border-radius: 4px;
4885
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
4886
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
4887
+ }
4888
+ .seed-csp4 .well blockquote {
4889
+ border-color: #ddd;
4890
+ border-color: rgba(0, 0, 0, 0.15);
4891
+ }
4892
+ .seed-csp4 .well-lg {
4893
+ padding: 24px;
4894
+ border-radius: 6px;
4895
+ }
4896
+ .seed-csp4 .well-sm {
4897
+ padding: 9px;
4898
+ border-radius: 3px;
4899
+ }
4900
+ .seed-csp4 .close {
4901
+ float: right;
4902
+ font-size: 21px;
4903
+ font-weight: bold;
4904
+ line-height: 1;
4905
+ color: #000000;
4906
+ text-shadow: 0 1px 0 #ffffff;
4907
+ opacity: 0.2;
4908
+ filter: alpha(opacity=20);
4909
+ }
4910
+ .seed-csp4 .close:hover,
4911
+ .seed-csp4 .close:focus {
4912
+ color: #000000;
4913
+ text-decoration: none;
4914
+ cursor: pointer;
4915
+ opacity: 0.5;
4916
+ filter: alpha(opacity=50);
4917
+ }
4918
+ button.seed-csp4 .close {
4919
+ padding: 0;
4920
+ cursor: pointer;
4921
+ background: transparent;
4922
+ border: 0;
4923
+ -webkit-appearance: none;
4924
+ }
4925
+ .seed-csp4 .modal-open {
4926
+ overflow: hidden;
4927
+ }
4928
+ .seed-csp4 .modal {
4929
+ display: none;
4930
+ overflow: auto;
4931
+ overflow-y: scroll;
4932
+ position: fixed;
4933
+ top: 0;
4934
+ right: 0;
4935
+ bottom: 0;
4936
+ left: 0;
4937
+ z-index: 1040;
4938
+ }
4939
+ .seed-csp4 .modal.fade .modal-dialog {
4940
+ -webkit-transform: translate(0, -25%);
4941
+ -ms-transform: translate(0, -25%);
4942
+ transform: translate(0, -25%);
4943
+ -webkit-transition: -webkit-transform 0.3s ease-out;
4944
+ -moz-transition: -moz-transform 0.3s ease-out;
4945
+ -o-transition: -o-transform 0.3s ease-out;
4946
+ transition: transform 0.3s ease-out;
4947
+ }
4948
+ .seed-csp4 .modal.in .modal-dialog {
4949
+ -webkit-transform: translate(0, 0);
4950
+ -ms-transform: translate(0, 0);
4951
+ transform: translate(0, 0);
4952
+ }
4953
+ .seed-csp4 .modal-dialog {
4954
+ position: relative;
4955
+ width: auto;
4956
+ margin: 10px;
4957
+ z-index: 1050;
4958
+ }
4959
+ .seed-csp4 .modal-content {
4960
+ position: relative;
4961
+ background-color: #ffffff;
4962
+ border: 1px solid #999999;
4963
+ border: 1px solid rgba(0, 0, 0, 0.2);
4964
+ border-radius: 6px;
4965
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
4966
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
4967
+ background-clip: padding-box;
4968
+ outline: none;
4969
+ }
4970
+ .seed-csp4 .modal-backdrop {
4971
+ position: fixed;
4972
+ top: 0;
4973
+ right: 0;
4974
+ bottom: 0;
4975
+ left: 0;
4976
+ z-index: 1030;
4977
+ background-color: #000000;
4978
+ }
4979
+ .seed-csp4 .modal-backdrop.fade {
4980
+ opacity: 0;
4981
+ filter: alpha(opacity=0);
4982
+ }
4983
+ .seed-csp4 .modal-backdrop.in {
4984
+ opacity: 0.5;
4985
+ filter: alpha(opacity=50);
4986
+ }
4987
+ .seed-csp4 .modal-header {
4988
+ padding: 15px;
4989
+ border-bottom: 1px solid #e5e5e5;
4990
+ min-height: 16.428571429px;
4991
+ }
4992
+ .seed-csp4 .modal-header .close {
4993
+ margin-top: -2px;
4994
+ }
4995
+ .seed-csp4 .modal-title {
4996
+ margin: 0;
4997
+ line-height: 1.428571429;
4998
+ }
4999
+ .seed-csp4 .modal-body {
5000
+ position: relative;
5001
+ padding: 20px;
5002
+ }
5003
+ .seed-csp4 .modal-footer {
5004
+ margin-top: 15px;
5005
+ padding: 19px 20px 20px;
5006
+ text-align: right;
5007
+ border-top: 1px solid #e5e5e5;
5008
+ }
5009
+ .seed-csp4 .modal-footer:before,
5010
+ .seed-csp4 .modal-footer:after {
5011
+ content: " ";
5012
+ display: table;
5013
+ }
5014
+ .seed-csp4 .modal-footer:after {
5015
+ clear: both;
5016
+ }
5017
+ .seed-csp4 .modal-footer:before,
5018
+ .seed-csp4 .modal-footer:after {
5019
+ content: " ";
5020
+ display: table;
5021
+ }
5022
+ .seed-csp4 .modal-footer:after {
5023
+ clear: both;
5024
+ }
5025
+ .seed-csp4 .modal-footer .btn + .btn {
5026
+ margin-left: 5px;
5027
+ margin-bottom: 0;
5028
+ }
5029
+ .seed-csp4 .modal-footer .btn-group .btn + .btn {
5030
+ margin-left: -1px;
5031
+ }
5032
+ .seed-csp4 .modal-footer .btn-block + .btn-block {
5033
+ margin-left: 0;
5034
+ }
5035
+ @media screen and (min-width: 768px) {
5036
+ .seed-csp4 .modal-dialog {
5037
+ width: 600px;
5038
+ margin: 30px auto;
5039
+ }
5040
+ .seed-csp4 .modal-content {
5041
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5042
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
5043
+ }
5044
+ }
5045
+ .seed-csp4 .tooltip {
5046
+ position: absolute;
5047
+ z-index: 1030;
5048
+ display: block;
5049
+ visibility: visible;
5050
+ font-size: 12px;
5051
+ line-height: 1.4;
5052
+ opacity: 0;
5053
+ filter: alpha(opacity=0);
5054
+ }
5055
+ .seed-csp4 .tooltip.in {
5056
+ opacity: 0.9;
5057
+ filter: alpha(opacity=90);
5058
+ }
5059
+ .seed-csp4 .tooltip.top {
5060
+ margin-top: -3px;
5061
+ padding: 5px 0;
5062
+ }
5063
+ .seed-csp4 .tooltip.right {
5064
+ margin-left: 3px;
5065
+ padding: 0 5px;
5066
+ }
5067
+ .seed-csp4 .tooltip.bottom {
5068
+ margin-top: 3px;
5069
+ padding: 5px 0;
5070
+ }
5071
+ .seed-csp4 .tooltip.left {
5072
+ margin-left: -3px;
5073
+ padding: 0 5px;
5074
+ }
5075
+ .seed-csp4 .tooltip-inner {
5076
+ max-width: 200px;
5077
+ padding: 3px 8px;
5078
+ color: #ffffff;
5079
+ text-align: center;
5080
+ text-decoration: none;
5081
+ background-color: #000000;
5082
+ border-radius: 4px;
5083
+ }
5084
+ .seed-csp4 .tooltip-arrow {
5085
+ position: absolute;
5086
+ width: 0;
5087
+ height: 0;
5088
+ border-color: transparent;
5089
+ border-style: solid;
5090
+ }
5091
+ .seed-csp4 .tooltip.top .tooltip-arrow {
5092
+ bottom: 0;
5093
+ left: 50%;
5094
+ margin-left: -5px;
5095
+ border-width: 5px 5px 0;
5096
+ border-top-color: #000000;
5097
+ }
5098
+ .seed-csp4 .tooltip.top-left .tooltip-arrow {
5099
+ bottom: 0;
5100
+ left: 5px;
5101
+ border-width: 5px 5px 0;
5102
+ border-top-color: #000000;
5103
+ }
5104
+ .seed-csp4 .tooltip.top-right .tooltip-arrow {
5105
+ bottom: 0;
5106
+ right: 5px;
5107
+ border-width: 5px 5px 0;
5108
+ border-top-color: #000000;
5109
+ }
5110
+ .seed-csp4 .tooltip.right .tooltip-arrow {
5111
+ top: 50%;
5112
+ left: 0;
5113
+ margin-top: -5px;
5114
+ border-width: 5px 5px 5px 0;
5115
+ border-right-color: #000000;
5116
+ }
5117
+ .seed-csp4 .tooltip.left .tooltip-arrow {
5118
+ top: 50%;
5119
+ right: 0;
5120
+ margin-top: -5px;
5121
+ border-width: 5px 0 5px 5px;
5122
+ border-left-color: #000000;
5123
+ }
5124
+ .seed-csp4 .tooltip.bottom .tooltip-arrow {
5125
+ top: 0;
5126
+ left: 50%;
5127
+ margin-left: -5px;
5128
+ border-width: 0 5px 5px;
5129
+ border-bottom-color: #000000;
5130
+ }
5131
+ .seed-csp4 .tooltip.bottom-left .tooltip-arrow {
5132
+ top: 0;
5133
+ left: 5px;
5134
+ border-width: 0 5px 5px;
5135
+ border-bottom-color: #000000;
5136
+ }
5137
+ .seed-csp4 .tooltip.bottom-right .tooltip-arrow {
5138
+ top: 0;
5139
+ right: 5px;
5140
+ border-width: 0 5px 5px;
5141
+ border-bottom-color: #000000;
5142
+ }
5143
+ .seed-csp4 .popover {
5144
+ position: absolute;
5145
+ top: 0;
5146
+ left: 0;
5147
+ z-index: 1010;
5148
+ display: none;
5149
+ max-width: 276px;
5150
+ padding: 1px;
5151
+ text-align: left;
5152
+ background-color: #ffffff;
5153
+ background-clip: padding-box;
5154
+ border: 1px solid #cccccc;
5155
+ border: 1px solid rgba(0, 0, 0, 0.2);
5156
+ border-radius: 6px;
5157
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5158
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5159
+ white-space: normal;
5160
+ }
5161
+ .seed-csp4 .popover.top {
5162
+ margin-top: -10px;
5163
+ }
5164
+ .seed-csp4 .popover.right {
5165
+ margin-left: 10px;
5166
+ }
5167
+ .seed-csp4 .popover.bottom {
5168
+ margin-top: 10px;
5169
+ }
5170
+ .seed-csp4 .popover.left {
5171
+ margin-left: -10px;
5172
+ }
5173
+ .seed-csp4 .popover-title {
5174
+ margin: 0;
5175
+ padding: 8px 14px;
5176
+ font-size: 14px;
5177
+ font-weight: normal;
5178
+ line-height: 18px;
5179
+ background-color: #f7f7f7;
5180
+ border-bottom: 1px solid #ebebeb;
5181
+ border-radius: 5px 5px 0 0;
5182
+ }
5183
+ .seed-csp4 .popover-content {
5184
+ padding: 9px 14px;
5185
+ }
5186
+ .seed-csp4 .popover .arrow,
5187
+ .seed-csp4 .popover .arrow:after {
5188
+ position: absolute;
5189
+ display: block;
5190
+ width: 0;
5191
+ height: 0;
5192
+ border-color: transparent;
5193
+ border-style: solid;
5194
+ }
5195
+ .seed-csp4 .popover .arrow {
5196
+ border-width: 11px;
5197
+ }
5198
+ .seed-csp4 .popover .arrow:after {
5199
+ border-width: 10px;
5200
+ content: "";
5201
+ }
5202
+ .seed-csp4 .popover.top .arrow {
5203
+ left: 50%;
5204
+ margin-left: -11px;
5205
+ border-bottom-width: 0;
5206
+ border-top-color: #999999;
5207
+ border-top-color: rgba(0, 0, 0, 0.25);
5208
+ bottom: -11px;
5209
+ }
5210
+ .seed-csp4 .popover.top .arrow:after {
5211
+ content: " ";
5212
+ bottom: 1px;
5213
+ margin-left: -10px;
5214
+ border-bottom-width: 0;
5215
+ border-top-color: #ffffff;
5216
+ }
5217
+ .seed-csp4 .popover.right .arrow {
5218
+ top: 50%;
5219
+ left: -11px;
5220
+ margin-top: -11px;
5221
+ border-left-width: 0;
5222
+ border-right-color: #999999;
5223
+ border-right-color: rgba(0, 0, 0, 0.25);
5224
+ }
5225
+ .seed-csp4 .popover.right .arrow:after {
5226
+ content: " ";
5227
+ left: 1px;
5228
+ bottom: -10px;
5229
+ border-left-width: 0;
5230
+ border-right-color: #ffffff;
5231
+ }
5232
+ .seed-csp4 .popover.bottom .arrow {
5233
+ left: 50%;
5234
+ margin-left: -11px;
5235
+ border-top-width: 0;
5236
+ border-bottom-color: #999999;
5237
+ border-bottom-color: rgba(0, 0, 0, 0.25);
5238
+ top: -11px;
5239
+ }
5240
+ .seed-csp4 .popover.bottom .arrow:after {
5241
+ content: " ";
5242
+ top: 1px;
5243
+ margin-left: -10px;
5244
+ border-top-width: 0;
5245
+ border-bottom-color: #ffffff;
5246
+ }
5247
+ .seed-csp4 .popover.left .arrow {
5248
+ top: 50%;
5249
+ right: -11px;
5250
+ margin-top: -11px;
5251
+ border-right-width: 0;
5252
+ border-left-color: #999999;
5253
+ border-left-color: rgba(0, 0, 0, 0.25);
5254
+ }
5255
+ .seed-csp4 .popover.left .arrow:after {
5256
+ content: " ";
5257
+ right: 1px;
5258
+ border-right-width: 0;
5259
+ border-left-color: #ffffff;
5260
+ bottom: -10px;
5261
+ }
5262
+ .seed-csp4 .carousel {
5263
+ position: relative;
5264
+ }
5265
+ .seed-csp4 .carousel-inner {
5266
+ position: relative;
5267
+ overflow: hidden;
5268
+ width: 100%;
5269
+ }
5270
+ .seed-csp4 .carousel-inner > .item {
5271
+ display: none;
5272
+ position: relative;
5273
+ -webkit-transition: 0.6s ease-in-out left;
5274
+ transition: 0.6s ease-in-out left;
5275
+ }
5276
+ .seed-csp4 .carousel-inner > .item > img,
5277
+ .seed-csp4 .carousel-inner > .item > a > img {
5278
+ display: block;
5279
+ max-width: 100%;
5280
+ height: auto;
5281
+ line-height: 1;
5282
+ }
5283
+ .seed-csp4 .carousel-inner > .active,
5284
+ .seed-csp4 .carousel-inner > .next,
5285
+ .seed-csp4 .carousel-inner > .prev {
5286
+ display: block;
5287
+ }
5288
+ .seed-csp4 .carousel-inner > .active {
5289
+ left: 0;
5290
+ }
5291
+ .seed-csp4 .carousel-inner > .next,
5292
+ .seed-csp4 .carousel-inner > .prev {
5293
+ position: absolute;
5294
+ top: 0;
5295
+ width: 100%;
5296
+ }
5297
+ .seed-csp4 .carousel-inner > .next {
5298
+ left: 100%;
5299
+ }
5300
+ .seed-csp4 .carousel-inner > .prev {
5301
+ left: -100%;
5302
+ }
5303
+ .seed-csp4 .carousel-inner > .next.left,
5304
+ .seed-csp4 .carousel-inner > .prev.right {
5305
+ left: 0;
5306
+ }
5307
+ .seed-csp4 .carousel-inner > .active.left {
5308
+ left: -100%;
5309
+ }
5310
+ .seed-csp4 .carousel-inner > .active.right {
5311
+ left: 100%;
5312
+ }
5313
+ .seed-csp4 .carousel-control {
5314
+ position: absolute;
5315
+ top: 0;
5316
+ left: 0;
5317
+ bottom: 0;
5318
+ width: 15%;
5319
+ opacity: 0.5;
5320
+ filter: alpha(opacity=50);
5321
+ font-size: 20px;
5322
+ color: #ffffff;
5323
+ text-align: center;
5324
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
5325
+ }
5326
+ .seed-csp4 .carousel-control.left {
5327
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));
5328
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
5329
+ background-repeat: repeat-x;
5330
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
5331
+ }
5332
+ .seed-csp4 .carousel-control.right {
5333
+ left: auto;
5334
+ right: 0;
5335
+ background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));
5336
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
5337
+ background-repeat: repeat-x;
5338
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
5339
+ }
5340
+ .seed-csp4 .carousel-control:hover,
5341
+ .seed-csp4 .carousel-control:focus {
5342
+ outline: none;
5343
+ color: #ffffff;
5344
+ text-decoration: none;
5345
+ opacity: 0.9;
5346
+ filter: alpha(opacity=90);
5347
+ }
5348
+ .seed-csp4 .carousel-control .icon-prev,
5349
+ .seed-csp4 .carousel-control .icon-next,
5350
+ .seed-csp4 .carousel-control .glyphicon-chevron-left,
5351
+ .seed-csp4 .carousel-control .glyphicon-chevron-right {
5352
+ position: absolute;
5353
+ top: 50%;
5354
+ z-index: 5;
5355
+ display: inline-block;
5356
+ }
5357
+ .seed-csp4 .carousel-control .icon-prev,
5358
+ .seed-csp4 .carousel-control .glyphicon-chevron-left {
5359
+ left: 50%;
5360
+ }
5361
+ .seed-csp4 .carousel-control .icon-next,
5362
+ .seed-csp4 .carousel-control .glyphicon-chevron-right {
5363
+ right: 50%;
5364
+ }
5365
+ .seed-csp4 .carousel-control .icon-prev,
5366
+ .seed-csp4 .carousel-control .icon-next {
5367
+ width: 20px;
5368
+ height: 20px;
5369
+ margin-top: -10px;
5370
+ margin-left: -10px;
5371
+ font-family: serif;
5372
+ }
5373
+ .seed-csp4 .carousel-control .icon-prev:before {
5374
+ content: '\2039';
5375
+ }
5376
+ .seed-csp4 .carousel-control .icon-next:before {
5377
+ content: '\203a';
5378
+ }
5379
+ .seed-csp4 .carousel-indicators {
5380
+ position: absolute;
5381
+ bottom: 10px;
5382
+ left: 50%;
5383
+ z-index: 15;
5384
+ width: 60%;
5385
+ margin-left: -30%;
5386
+ padding-left: 0;
5387
+ list-style: none;
5388
+ text-align: center;
5389
+ }
5390
+ .seed-csp4 .carousel-indicators li {
5391
+ display: inline-block;
5392
+ width: 10px;
5393
+ height: 10px;
5394
+ margin: 1px;
5395
+ text-indent: -999px;
5396
+ border: 1px solid #ffffff;
5397
+ border-radius: 10px;
5398
+ cursor: pointer;
5399
+ background-color: #000 \9;
5400
+ background-color: rgba(0, 0, 0, 0);
5401
+ }
5402
+ .seed-csp4 .carousel-indicators .active {
5403
+ margin: 0;
5404
+ width: 12px;
5405
+ height: 12px;
5406
+ background-color: #ffffff;
5407
+ }
5408
+ .seed-csp4 .carousel-caption {
5409
+ position: absolute;
5410
+ left: 15%;
5411
+ right: 15%;
5412
+ bottom: 20px;
5413
+ z-index: 10;
5414
+ padding-top: 20px;
5415
+ padding-bottom: 20px;
5416
+ color: #ffffff;
5417
+ text-align: center;
5418
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
5419
+ }
5420
+ .seed-csp4 .carousel-caption .btn {
5421
+ text-shadow: none;
5422
+ }
5423
+ @media screen and (min-width: 768px) {
5424
+ .seed-csp4 .carousel-control .glyphicons-chevron-left,
5425
+ .seed-csp4 .carousel-control .glyphicons-chevron-right,
5426
+ .seed-csp4 .carousel-control .icon-prev,
5427
+ .seed-csp4 .carousel-control .icon-next {
5428
+ width: 30px;
5429
+ height: 30px;
5430
+ margin-top: -15px;
5431
+ margin-left: -15px;
5432
+ font-size: 30px;
5433
+ }
5434
+ .seed-csp4 .carousel-caption {
5435
+ left: 20%;
5436
+ right: 20%;
5437
+ padding-bottom: 30px;
5438
+ }
5439
+ .seed-csp4 .carousel-indicators {
5440
+ bottom: 20px;
5441
+ }
5442
+ }
5443
+ .seed-csp4 .clearfix:before,
5444
+ .seed-csp4 .clearfix:after {
5445
+ content: " ";
5446
+ display: table;
5447
+ }
5448
+ .seed-csp4 .clearfix:after {
5449
+ clear: both;
5450
+ }
5451
+ .seed-csp4 .center-block {
5452
+ display: block;
5453
+ margin-left: auto;
5454
+ margin-right: auto;
5455
+ }
5456
+ .seed-csp4 .pull-right {
5457
+ float: right !important;
5458
+ }
5459
+ .seed-csp4 .pull-left {
5460
+ float: left !important;
5461
+ }
5462
+ .seed-csp4 .hide {
5463
+ display: none !important;
5464
+ }
5465
+ .seed-csp4 .show {
5466
+ display: block !important;
5467
+ }
5468
+ .seed-csp4 .invisible {
5469
+ visibility: hidden;
5470
+ }
5471
+ .seed-csp4 .text-hide {
5472
+ font: 0/0 a;
5473
+ color: transparent;
5474
+ text-shadow: none;
5475
+ background-color: transparent;
5476
+ border: 0;
5477
+ }
5478
+ .seed-csp4 .hidden {
5479
+ display: none !important;
5480
+ visibility: hidden !important;
5481
+ }
5482
+ .seed-csp4 .affix {
5483
+ position: fixed;
5484
+ }
5485
+ @-ms-viewport {
5486
+ width: device-width;
5487
+ }
5488
+ .seed-csp4 .visible-xs,
5489
+ tr.seed-csp4 .visible-xs,
5490
+ th.seed-csp4 .visible-xs,
5491
+ td.seed-csp4 .visible-xs {
5492
+ display: none !important;
5493
+ }
5494
+ @media (max-width: 767px) {
5495
+ .seed-csp4 .visible-xs {
5496
+ display: block !important;
5497
+ }
5498
+ table.seed-csp4 .visible-xs {
5499
+ display: table;
5500
+ }
5501
+ tr.seed-csp4 .visible-xs {
5502
+ display: table-row !important;
5503
+ }
5504
+ th.seed-csp4 .visible-xs,
5505
+ td.seed-csp4 .visible-xs {
5506
+ display: table-cell !important;
5507
+ }
5508
+ }
5509
+ @media (min-width: 768px) and (max-width: 991px) {
5510
+ .seed-csp4 .visible-xs.visible-sm {
5511
+ display: block !important;
5512
+ }
5513
+ table.seed-csp4 .visible-xs.visible-sm {
5514
+ display: table;
5515
+ }
5516
+ tr.seed-csp4 .visible-xs.visible-sm {
5517
+ display: table-row !important;
5518
+ }
5519
+ th.seed-csp4 .visible-xs.visible-sm,
5520
+ td.seed-csp4 .visible-xs.visible-sm {
5521
+ display: table-cell !important;
5522
+ }
5523
+ }
5524
+ @media (min-width: 992px) and (max-width: 1199px) {
5525
+ .seed-csp4 .visible-xs.visible-md {
5526
+ display: block !important;
5527
+ }
5528
+ table.seed-csp4 .visible-xs.visible-md {
5529
+ display: table;
5530
+ }
5531
+ tr.seed-csp4 .visible-xs.visible-md {
5532
+ display: table-row !important;
5533
+ }
5534
+ th.seed-csp4 .visible-xs.visible-md,
5535
+ td.seed-csp4 .visible-xs.visible-md {
5536
+ display: table-cell !important;
5537
+ }
5538
+ }
5539
+ @media (min-width: 1200px) {
5540
+ .seed-csp4 .visible-xs.visible-lg {
5541
+ display: block !important;
5542
+ }
5543
+ table.seed-csp4 .visible-xs.visible-lg {
5544
+ display: table;
5545
+ }
5546
+ tr.seed-csp4 .visible-xs.visible-lg {
5547
+ display: table-row !important;
5548
+ }
5549
+ th.seed-csp4 .visible-xs.visible-lg,
5550
+ td.seed-csp4 .visible-xs.visible-lg {
5551
+ display: table-cell !important;
5552
+ }
5553
+ }
5554
+ .seed-csp4 .visible-sm,
5555
+ tr.seed-csp4 .visible-sm,
5556
+ th.seed-csp4 .visible-sm,
5557
+ td.seed-csp4 .visible-sm {
5558
+ display: none !important;
5559
+ }
5560
+ @media (max-width: 767px) {
5561
+ .seed-csp4 .visible-sm.visible-xs {
5562
+ display: block !important;
5563
+ }
5564
+ table.seed-csp4 .visible-sm.visible-xs {
5565
+ display: table;
5566
+ }
5567
+ tr.seed-csp4 .visible-sm.visible-xs {
5568
+ display: table-row !important;
5569
+ }
5570
+ th.seed-csp4 .visible-sm.visible-xs,
5571
+ td.seed-csp4 .visible-sm.visible-xs {
5572
+ display: table-cell !important;
5573
+ }
5574
+ }
5575
+ @media (min-width: 768px) and (max-width: 991px) {
5576
+ .seed-csp4 .visible-sm {
5577
+ display: block !important;
5578
+ }
5579
+ table.seed-csp4 .visible-sm {
5580
+ display: table;
5581
+ }
5582
+ tr.seed-csp4 .visible-sm {
5583
+ display: table-row !important;
5584
+ }
5585
+ th.seed-csp4 .visible-sm,
5586
+ td.seed-csp4 .visible-sm {
5587
+ display: table-cell !important;
5588
+ }
5589
+ }
5590
+ @media (min-width: 992px) and (max-width: 1199px) {
5591
+ .seed-csp4 .visible-sm.visible-md {
5592
+ display: block !important;
5593
+ }
5594
+ table.seed-csp4 .visible-sm.visible-md {
5595
+ display: table;
5596
+ }
5597
+ tr.seed-csp4 .visible-sm.visible-md {
5598
+ display: table-row !important;
5599
+ }
5600
+ th.seed-csp4 .visible-sm.visible-md,
5601
+ td.seed-csp4 .visible-sm.visible-md {
5602
+ display: table-cell !important;
5603
+ }
5604
+ }
5605
+ @media (min-width: 1200px) {
5606
+ .seed-csp4 .visible-sm.visible-lg {
5607
+ display: block !important;
5608
+ }
5609
+ table.seed-csp4 .visible-sm.visible-lg {
5610
+ display: table;
5611
+ }
5612
+ tr.seed-csp4 .visible-sm.visible-lg {
5613
+ display: table-row !important;
5614
+ }
5615
+ th.seed-csp4 .visible-sm.visible-lg,
5616
+ td.seed-csp4 .visible-sm.visible-lg {
5617
+ display: table-cell !important;
5618
+ }
5619
+ }
5620
+ .seed-csp4 .visible-md,
5621
+ tr.seed-csp4 .visible-md,
5622
+ th.seed-csp4 .visible-md,
5623
+ td.seed-csp4 .visible-md {
5624
+ display: none !important;
5625
+ }
5626
+ @media (max-width: 767px) {
5627
+ .seed-csp4 .visible-md.visible-xs {
5628
+ display: block !important;
5629
+ }
5630
+ table.seed-csp4 .visible-md.visible-xs {
5631
+ display: table;
5632
+ }
5633
+ tr.seed-csp4 .visible-md.visible-xs {
5634
+ display: table-row !important;
5635
+ }
5636
+ th.seed-csp4 .visible-md.visible-xs,
5637
+ td.seed-csp4 .visible-md.visible-xs {
5638
+ display: table-cell !important;
5639
+ }
5640
+ }
5641
+ @media (min-width: 768px) and (max-width: 991px) {
5642
+ .seed-csp4 .visible-md.visible-sm {
5643
+ display: block !important;
5644
+ }
5645
+ table.seed-csp4 .visible-md.visible-sm {
5646
+ display: table;
5647
+ }
5648
+ tr.seed-csp4 .visible-md.visible-sm {
5649
+ display: table-row !important;
5650
+ }
5651
+ th.seed-csp4 .visible-md.visible-sm,
5652
+ td.seed-csp4 .visible-md.visible-sm {
5653
+ display: table-cell !important;
5654
+ }
5655
+ }
5656
+ @media (min-width: 992px) and (max-width: 1199px) {
5657
+ .seed-csp4 .visible-md {
5658
+ display: block !important;
5659
+ }
5660
+ table.seed-csp4 .visible-md {
5661
+ display: table;
5662
+ }
5663
+ tr.seed-csp4 .visible-md {
5664
+ display: table-row !important;
5665
+ }
5666
+ th.seed-csp4 .visible-md,
5667
+ td.seed-csp4 .visible-md {
5668
+ display: table-cell !important;
5669
+ }
5670
+ }
5671
+ @media (min-width: 1200px) {
5672
+ .seed-csp4 .visible-md.visible-lg {
5673
+ display: block !important;
5674
+ }
5675
+ table.seed-csp4 .visible-md.visible-lg {
5676
+ display: table;
5677
+ }
5678
+ tr.seed-csp4 .visible-md.visible-lg {
5679
+ display: table-row !important;
5680
+ }
5681
+ th.seed-csp4 .visible-md.visible-lg,
5682
+ td.seed-csp4 .visible-md.visible-lg {
5683
+ display: table-cell !important;
5684
+ }
5685
+ }
5686
+ .seed-csp4 .visible-lg,
5687
+ tr.seed-csp4 .visible-lg,
5688
+ th.seed-csp4 .visible-lg,
5689
+ td.seed-csp4 .visible-lg {
5690
+ display: none !important;
5691
+ }
5692
+ @media (max-width: 767px) {
5693
+ .seed-csp4 .visible-lg.visible-xs {
5694
+ display: block !important;
5695
+ }
5696
+ table.seed-csp4 .visible-lg.visible-xs {
5697
+ display: table;
5698
+ }
5699
+ tr.seed-csp4 .visible-lg.visible-xs {
5700
+ display: table-row !important;
5701
+ }
5702
+ th.seed-csp4 .visible-lg.visible-xs,
5703
+ td.seed-csp4 .visible-lg.visible-xs {
5704
+ display: table-cell !important;
5705
+ }
5706
+ }
5707
+ @media (min-width: 768px) and (max-width: 991px) {
5708
+ .seed-csp4 .visible-lg.visible-sm {
5709
+ display: block !important;
5710
+ }
5711
+ table.seed-csp4 .visible-lg.visible-sm {
5712
+ display: table;
5713
+ }
5714
+ tr.seed-csp4 .visible-lg.visible-sm {
5715
+ display: table-row !important;
5716
+ }
5717
+ th.seed-csp4 .visible-lg.visible-sm,
5718
+ td.seed-csp4 .visible-lg.visible-sm {
5719
+ display: table-cell !important;
5720
+ }
5721
+ }
5722
+ @media (min-width: 992px) and (max-width: 1199px) {
5723
+ .seed-csp4 .visible-lg.visible-md {
5724
+ display: block !important;
5725
+ }
5726
+ table.seed-csp4 .visible-lg.visible-md {
5727
+ display: table;
5728
+ }
5729
+ tr.seed-csp4 .visible-lg.visible-md {
5730
+ display: table-row !important;
5731
+ }
5732
+ th.seed-csp4 .visible-lg.visible-md,
5733
+ td.seed-csp4 .visible-lg.visible-md {
5734
+ display: table-cell !important;
5735
+ }
5736
+ }
5737
+ @media (min-width: 1200px) {
5738
+ .seed-csp4 .visible-lg {
5739
+ display: block !important;
5740
+ }
5741
+ table.seed-csp4 .visible-lg {
5742
+ display: table;
5743
+ }
5744
+ tr.seed-csp4 .visible-lg {
5745
+ display: table-row !important;
5746
+ }
5747
+ th.seed-csp4 .visible-lg,
5748
+ td.seed-csp4 .visible-lg {
5749
+ display: table-cell !important;
5750
+ }
5751
+ }
5752
+ .seed-csp4 .hidden-xs {
5753
+ display: block !important;
5754
+ }
5755
+ table.seed-csp4 .hidden-xs {
5756
+ display: table;
5757
+ }
5758
+ tr.seed-csp4 .hidden-xs {
5759
+ display: table-row !important;
5760
+ }
5761
+ th.seed-csp4 .hidden-xs,
5762
+ td.seed-csp4 .hidden-xs {
5763
+ display: table-cell !important;
5764
+ }
5765
+ @media (max-width: 767px) {
5766
+ .seed-csp4 .hidden-xs,
5767
+ tr.seed-csp4 .hidden-xs,
5768
+ th.seed-csp4 .hidden-xs,
5769
+ td.seed-csp4 .hidden-xs {
5770
+ display: none !important;
5771
+ }
5772
+ }
5773
+ @media (min-width: 768px) and (max-width: 991px) {
5774
+ .seed-csp4 .hidden-xs.hidden-sm,
5775
+ tr.seed-csp4 .hidden-xs.hidden-sm,
5776
+ th.seed-csp4 .hidden-xs.hidden-sm,
5777
+ td.seed-csp4 .hidden-xs.hidden-sm {
5778
+ display: none !important;
5779
+ }
5780
+ }
5781
+ @media (min-width: 992px) and (max-width: 1199px) {
5782
+ .seed-csp4 .hidden-xs.hidden-md,
5783
+ tr.seed-csp4 .hidden-xs.hidden-md,
5784
+ th.seed-csp4 .hidden-xs.hidden-md,
5785
+ td.seed-csp4 .hidden-xs.hidden-md {
5786
+ display: none !important;
5787
+ }
5788
+ }
5789
+ @media (min-width: 1200px) {
5790
+ .seed-csp4 .hidden-xs.hidden-lg,
5791
+ tr.seed-csp4 .hidden-xs.hidden-lg,
5792
+ th.seed-csp4 .hidden-xs.hidden-lg,
5793
+ td.seed-csp4 .hidden-xs.hidden-lg {
5794
+ display: none !important;
5795
+ }
5796
+ }
5797
+ .seed-csp4 .hidden-sm {
5798
+ display: block !important;
5799
+ }
5800
+ table.seed-csp4 .hidden-sm {
5801
+ display: table;
5802
+ }
5803
+ tr.seed-csp4 .hidden-sm {
5804
+ display: table-row !important;
5805
+ }
5806
+ th.seed-csp4 .hidden-sm,
5807
+ td.seed-csp4 .hidden-sm {
5808
+ display: table-cell !important;
5809
+ }
5810
+ @media (max-width: 767px) {
5811
+ .seed-csp4 .hidden-sm.hidden-xs,
5812
+ tr.seed-csp4 .hidden-sm.hidden-xs,
5813
+ th.seed-csp4 .hidden-sm.hidden-xs,
5814
+ td.seed-csp4 .hidden-sm.hidden-xs {
5815
+ display: none !important;
5816
+ }
5817
+ }
5818
+ @media (min-width: 768px) and (max-width: 991px) {
5819
+ .seed-csp4 .hidden-sm,
5820
+ tr.seed-csp4 .hidden-sm,
5821
+ th.seed-csp4 .hidden-sm,
5822
+ td.seed-csp4 .hidden-sm {
5823
+ display: none !important;
5824
+ }
5825
+ }
5826
+ @media (min-width: 992px) and (max-width: 1199px) {
5827
+ .seed-csp4 .hidden-sm.hidden-md,
5828
+ tr.seed-csp4 .hidden-sm.hidden-md,
5829
+ th.seed-csp4 .hidden-sm.hidden-md,
5830
+ td.seed-csp4 .hidden-sm.hidden-md {
5831
+ display: none !important;
5832
+ }
5833
+ }
5834
+ @media (min-width: 1200px) {
5835
+ .seed-csp4 .hidden-sm.hidden-lg,
5836
+ tr.seed-csp4 .hidden-sm.hidden-lg,
5837
+ th.seed-csp4 .hidden-sm.hidden-lg,
5838
+ td.seed-csp4 .hidden-sm.hidden-lg {
5839
+ display: none !important;
5840
+ }
5841
+ }
5842
+ .seed-csp4 .hidden-md {
5843
+ display: block !important;
5844
+ }
5845
+ table.seed-csp4 .hidden-md {
5846
+ display: table;
5847
+ }
5848
+ tr.seed-csp4 .hidden-md {
5849
+ display: table-row !important;
5850
+ }
5851
+ th.seed-csp4 .hidden-md,
5852
+ td.seed-csp4 .hidden-md {
5853
+ display: table-cell !important;
5854
+ }
5855
+ @media (max-width: 767px) {
5856
+ .seed-csp4 .hidden-md.hidden-xs,
5857
+ tr.seed-csp4 .hidden-md.hidden-xs,
5858
+ th.seed-csp4 .hidden-md.hidden-xs,
5859
+ td.seed-csp4 .hidden-md.hidden-xs {
5860
+ display: none !important;
5861
+ }
5862
+ }
5863
+ @media (min-width: 768px) and (max-width: 991px) {
5864
+ .seed-csp4 .hidden-md.hidden-sm,
5865
+ tr.seed-csp4 .hidden-md.hidden-sm,
5866
+ th.seed-csp4 .hidden-md.hidden-sm,
5867
+ td.seed-csp4 .hidden-md.hidden-sm {
5868
+ display: none !important;
5869
+ }
5870
+ }
5871
+ @media (min-width: 992px) and (max-width: 1199px) {
5872
+ .seed-csp4 .hidden-md,
5873
+ tr.seed-csp4 .hidden-md,
5874
+ th.seed-csp4 .hidden-md,
5875
+ td.seed-csp4 .hidden-md {
5876
+ display: none !important;
5877
+ }
5878
+ }
5879
+ @media (min-width: 1200px) {
5880
+ .seed-csp4 .hidden-md.hidden-lg,
5881
+ tr.seed-csp4 .hidden-md.hidden-lg,
5882
+ th.seed-csp4 .hidden-md.hidden-lg,
5883
+ td.seed-csp4 .hidden-md.hidden-lg {
5884
+ display: none !important;
5885
+ }
5886
+ }
5887
+ .seed-csp4 .hidden-lg {
5888
+ display: block !important;
5889
+ }
5890
+ table.seed-csp4 .hidden-lg {
5891
+ display: table;
5892
+ }
5893
+ tr.seed-csp4 .hidden-lg {
5894
+ display: table-row !important;
5895
+ }
5896
+ th.seed-csp4 .hidden-lg,
5897
+ td.seed-csp4 .hidden-lg {
5898
+ display: table-cell !important;
5899
+ }
5900
+ @media (max-width: 767px) {
5901
+ .seed-csp4 .hidden-lg.hidden-xs,
5902
+ tr.seed-csp4 .hidden-lg.hidden-xs,
5903
+ th.seed-csp4 .hidden-lg.hidden-xs,
5904
+ td.seed-csp4 .hidden-lg.hidden-xs {
5905
+ display: none !important;
5906
+ }
5907
+ }
5908
+ @media (min-width: 768px) and (max-width: 991px) {
5909
+ .seed-csp4 .hidden-lg.hidden-sm,
5910
+ tr.seed-csp4 .hidden-lg.hidden-sm,
5911
+ th.seed-csp4 .hidden-lg.hidden-sm,
5912
+ td.seed-csp4 .hidden-lg.hidden-sm {
5913
+ display: none !important;
5914
+ }
5915
+ }
5916
+ @media (min-width: 992px) and (max-width: 1199px) {
5917
+ .seed-csp4 .hidden-lg.hidden-md,
5918
+ tr.seed-csp4 .hidden-lg.hidden-md,
5919
+ th.seed-csp4 .hidden-lg.hidden-md,
5920
+ td.seed-csp4 .hidden-lg.hidden-md {
5921
+ display: none !important;
5922
+ }
5923
+ }
5924
+ @media (min-width: 1200px) {
5925
+ .seed-csp4 .hidden-lg,
5926
+ tr.seed-csp4 .hidden-lg,
5927
+ th.seed-csp4 .hidden-lg,
5928
+ td.seed-csp4 .hidden-lg {
5929
+ display: none !important;
5930
+ }
5931
+ }
5932
+ .seed-csp4 .visible-print,
5933
+ tr.seed-csp4 .visible-print,
5934
+ th.seed-csp4 .visible-print,
5935
+ td.seed-csp4 .visible-print {
5936
+ display: none !important;
5937
+ }
5938
+ @media print {
5939
+ .seed-csp4 .visible-print {
5940
+ display: block !important;
5941
+ }
5942
+ table.seed-csp4 .visible-print {
5943
+ display: table;
5944
+ }
5945
+ tr.seed-csp4 .visible-print {
5946
+ display: table-row !important;
5947
+ }
5948
+ th.seed-csp4 .visible-print,
5949
+ td.seed-csp4 .visible-print {
5950
+ display: table-cell !important;
5951
+ }
5952
+ .seed-csp4 .hidden-print,
5953
+ tr.seed-csp4 .hidden-print,
5954
+ th.seed-csp4 .hidden-print,
5955
+ td.seed-csp4 .hidden-print {
5956
+ display: none !important;
5957
+ }
5958
+ }
themes/default/bootstrap/css/bootstrap.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .seed-csp4{/*! normalize.css v2.1.3 | MIT License | git.io/normalize */}.seed-csp4 article,.seed-csp4 aside,.seed-csp4 details,.seed-csp4 figcaption,.seed-csp4 figure,.seed-csp4 footer,.seed-csp4 header,.seed-csp4 hgroup,.seed-csp4 main,.seed-csp4 nav,.seed-csp4 section,.seed-csp4 summary{display:block}.seed-csp4 audio,.seed-csp4 canvas,.seed-csp4 video{display:inline-block}.seed-csp4 audio:not([controls]){display:none;height:0}.seed-csp4 [hidden],.seed-csp4 template{display:none}.seed-csp4 html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.seed-csp4 body{margin:0}.seed-csp4 a{background:transparent}.seed-csp4 a:focus{outline:thin dotted}.seed-csp4 a:active,.seed-csp4 a:hover{outline:0}.seed-csp4 h1{font-size:2em;margin:.67em 0}.seed-csp4 abbr[title]{border-bottom:1px dotted}.seed-csp4 b,.seed-csp4 strong{font-weight:700}.seed-csp4 dfn{font-style:italic}.seed-csp4 hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.seed-csp4 mark{background:#ff0;color:#000}.seed-csp4 code,.seed-csp4 kbd,.seed-csp4 pre,.seed-csp4 samp{font-family:monospace,serif;font-size:1em}.seed-csp4 pre{white-space:pre-wrap}.seed-csp4 q{quotes:"\201C" "\201D" "\2018" "\2019"}.seed-csp4 small{font-size:80%}.seed-csp4 sub,.seed-csp4 sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.seed-csp4 sup{top:-.5em}.seed-csp4 sub{bottom:-.25em}.seed-csp4 img{border:0}.seed-csp4 svg:not(:root){overflow:hidden}.seed-csp4 figure{margin:0}.seed-csp4 fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.seed-csp4 legend{border:0;padding:0}.seed-csp4 button,.seed-csp4 input,.seed-csp4 select,.seed-csp4 textarea{font-family:inherit;font-size:100%;margin:0}.seed-csp4 button,.seed-csp4 input{line-height:normal}.seed-csp4 button,.seed-csp4 select{text-transform:none}.seed-csp4 button,.seed-csp4 html input[type=button],.seed-csp4 input[type=reset],.seed-csp4 input[type=submit]{-webkit-appearance:button;cursor:pointer}.seed-csp4 button[disabled],.seed-csp4 html input[disabled]{cursor:default}.seed-csp4 input[type=checkbox],.seed-csp4 input[type=radio]{box-sizing:border-box;padding:0}.seed-csp4 input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.seed-csp4 input[type=search]::-webkit-search-cancel-button,.seed-csp4 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.seed-csp4 button::-moz-focus-inner,.seed-csp4 input::-moz-focus-inner{border:0;padding:0}.seed-csp4 textarea{overflow:auto;vertical-align:top}.seed-csp4 table{border-collapse:collapse;border-spacing:0}@media print{.seed-csp4 *{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}.seed-csp4 a,.seed-csp4 a:visited{text-decoration:underline}.seed-csp4 a[href]:after{content:" (" attr(href) ")"}.seed-csp4 abbr[title]:after{content:" (" attr(title) ")"}.seed-csp4 a[href^="javascript:"]:after,.seed-csp4 a[href^="#"]:after{content:""}.seed-csp4 pre,.seed-csp4 blockquote{border:1px solid #999;page-break-inside:avoid}.seed-csp4 thead{display:table-header-group}.seed-csp4 tr,.seed-csp4 img{page-break-inside:avoid}.seed-csp4 img{max-width:100%!important}@page{margin:2cm .5cm}.seed-csp4 p,.seed-csp4 h2,.seed-csp4 h3{orphans:3;widows:3}.seed-csp4 h2,.seed-csp4 h3{page-break-after:avoid}.seed-csp4 select{background:#fff!important}.seed-csp4 .navbar{display:none}.seed-csp4 .table td,.seed-csp4 .table th{background-color:#fff!important}.seed-csp4 .btn>.caret,.seed-csp4 .dropup>.btn>.caret{border-top-color:#000!important}.seed-csp4 .label{border:1px solid #000}.seed-csp4 .table{border-collapse:collapse!important}.seed-csp4 .table-bordered th,.seed-csp4 .table-bordered td{border:1px solid #ddd!important}}.seed-csp4 *,.seed-csp4 :before,.seed-csp4 :after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.seed-csp4 html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}.seed-csp4 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.seed-csp4 input,.seed-csp4 button,.seed-csp4 select,.seed-csp4 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.seed-csp4 a{color:#428bca;text-decoration:none}.seed-csp4 a:hover,.seed-csp4 a:focus{color:#2a6496;text-decoration:underline}.seed-csp4 a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.seed-csp4 img{vertical-align:middle}.seed-csp4 .img-responsive{display:block;max-width:100%;height:auto}.seed-csp4 .img-rounded{border-radius:6px}.seed-csp4 .img-thumbnail{padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.seed-csp4 .img-circle{border-radius:50%}.seed-csp4 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.seed-csp4 .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.seed-csp4 h1,.seed-csp4 h2,.seed-csp4 h3,.seed-csp4 h4,.seed-csp4 h5,.seed-csp4 h6,.seed-csp4 .h1,.seed-csp4 .h2,.seed-csp4 .h3,.seed-csp4 .h4,.seed-csp4 .h5,.seed-csp4 .h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.seed-csp4 h1 small,.seed-csp4 h2 small,.seed-csp4 h3 small,.seed-csp4 h4 small,.seed-csp4 h5 small,.seed-csp4 h6 small,.seed-csp4 .h1 small,.seed-csp4 .h2 small,.seed-csp4 .h3 small,.seed-csp4 .h4 small,.seed-csp4 .h5 small,.seed-csp4 .h6 small,.seed-csp4 h1 .small,.seed-csp4 h2 .small,.seed-csp4 h3 .small,.seed-csp4 h4 .small,.seed-csp4 h5 .small,.seed-csp4 h6 .small,.seed-csp4 .h1 .small,.seed-csp4 .h2 .small,.seed-csp4 .h3 .small,.seed-csp4 .h4 .small,.seed-csp4 .h5 .small,.seed-csp4 .h6 .small{font-weight:400;line-height:1;color:#999}.seed-csp4 h1,.seed-csp4 h2,.seed-csp4 h3{margin-top:20px;margin-bottom:10px}.seed-csp4 h1 small,.seed-csp4 h2 small,.seed-csp4 h3 small,.seed-csp4 h1 .small,.seed-csp4 h2 .small,.seed-csp4 h3 .small{font-size:65%}.seed-csp4 h4,.seed-csp4 h5,.seed-csp4 h6{margin-top:10px;margin-bottom:10px}.seed-csp4 h4 small,.seed-csp4 h5 small,.seed-csp4 h6 small,.seed-csp4 h4 .small,.seed-csp4 h5 .small,.seed-csp4 h6 .small{font-size:75%}.seed-csp4 h1,.seed-csp4 .h1{font-size:36px}.seed-csp4 h2,.seed-csp4 .h2{font-size:30px}.seed-csp4 h3,.seed-csp4 .h3{font-size:24px}.seed-csp4 h4,.seed-csp4 .h4{font-size:18px}.seed-csp4 h5,.seed-csp4 .h5{font-size:14px}.seed-csp4 h6,.seed-csp4 .h6{font-size:12px}.seed-csp4 p{margin:0 0 10px}.seed-csp4 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.seed-csp4 .lead{font-size:21px}}.seed-csp4 small,.seed-csp4 .small{font-size:85%}.seed-csp4 cite{font-style:normal}.seed-csp4 .text-muted{color:#999}.seed-csp4 .text-primary{color:#428bca}.seed-csp4 .text-primary:hover{color:#3071a9}.seed-csp4 .text-warning{color:#8a6d3b}.seed-csp4 .text-warning:hover{color:#66512c}.seed-csp4 .text-danger{color:#a94442}.seed-csp4 .text-danger:hover{color:#843534}.seed-csp4 .text-success{color:#3c763d}.seed-csp4 .text-success:hover{color:#2b542c}.seed-csp4 .text-info{color:#31708f}.seed-csp4 .text-info:hover{color:#245269}.seed-csp4 .text-left{text-align:left}.seed-csp4 .text-right{text-align:right}.seed-csp4 .text-center{text-align:center}.seed-csp4 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.seed-csp4 ul,.seed-csp4 ol{margin-top:0;margin-bottom:10px}.seed-csp4 ul ul,.seed-csp4 ol ul,.seed-csp4 ul ol,.seed-csp4 ol ol{margin-bottom:0}.seed-csp4 .list-unstyled{padding-left:0;list-style:none}.seed-csp4 .list-inline{padding-left:0;list-style:none}.seed-csp4 .list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.seed-csp4 .list-inline>li:first-child{padding-left:0}.seed-csp4 dl{margin-top:0;margin-bottom:20px}.seed-csp4 dt,.seed-csp4 dd{line-height:1.428571429}.seed-csp4 dt{font-weight:700}.seed-csp4 dd{margin-left:0}@media (min-width:768px){.seed-csp4 .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seed-csp4 .dl-horizontal dd{margin-left:180px}.seed-csp4 .dl-horizontal dd:before,.seed-csp4 .dl-horizontal dd:after{content:" ";display:table}.seed-csp4 .dl-horizontal dd:after{clear:both}.seed-csp4 .dl-horizontal dd:before,.seed-csp4 .dl-horizontal dd:after{content:" ";display:table}.seed-csp4 .dl-horizontal dd:after{clear:both}}.seed-csp4 abbr[title],.seed-csp4 abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.seed-csp4 .initialism{font-size:90%;text-transform:uppercase}.seed-csp4 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.seed-csp4 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.seed-csp4 blockquote p:last-child{margin-bottom:0}.seed-csp4 blockquote small,.seed-csp4 blockquote .small{display:block;line-height:1.428571429;color:#999}.seed-csp4 blockquote small:before,.seed-csp4 blockquote .small:before{content:'\2014 \00A0'}.seed-csp4 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.seed-csp4 blockquote.pull-right p,.seed-csp4 blockquote.pull-right small,.seed-csp4 blockquote.pull-right .small{text-align:right}.seed-csp4 blockquote.pull-right small:before,.seed-csp4 blockquote.pull-right .small:before{content:''}.seed-csp4 blockquote.pull-right small:after,.seed-csp4 blockquote.pull-right .small:after{content:'\00A0 \2014'}.seed-csp4 blockquote:before,.seed-csp4 blockquote:after{content:""}.seed-csp4 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.seed-csp4 code,.seed-csp4 kbd,.seed-csp4 pre,.seed-csp4 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.seed-csp4 code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}.seed-csp4 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.seed-csp4 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.seed-csp4 .pre-scrollable{max-height:340px;overflow-y:scroll}.seed-csp4 .container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.seed-csp4 .container:before,.seed-csp4 .container:after{content:" ";display:table}.seed-csp4 .container:after{clear:both}.seed-csp4 .container:before,.seed-csp4 .container:after{content:" ";display:table}.seed-csp4 .container:after{clear:both}@media (min-width:768px){.seed-csp4 .container{width:750px}}@media (min-width:992px){.seed-csp4 .container{width:970px}}@media (min-width:1200px){.seed-csp4 .container{width:1170px}}.seed-csp4 .row{margin-left:-15px;margin-right:-15px}.seed-csp4 .row:before,.seed-csp4 .row:after{content:" ";display:table}.seed-csp4 .row:after{clear:both}.seed-csp4 .row:before,.seed-csp4 .row:after{content:" ";display:table}.seed-csp4 .row:after{clear:both}.seed-csp4 .col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.seed-csp4 .col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.seed-csp4 .col-xs-12{width:100%}.seed-csp4 .col-xs-11{width:91.66666666666666%}.seed-csp4 .col-xs-10{width:83.33333333333334%}.seed-csp4 .col-xs-9{width:75%}.seed-csp4 .col-xs-8{width:66.66666666666666%}.seed-csp4 .col-xs-7{width:58.333333333333336%}.seed-csp4 .col-xs-6{width:50%}.seed-csp4 .col-xs-5{width:41.66666666666667%}.seed-csp4 .col-xs-4{width:33.33333333333333%}.seed-csp4 .col-xs-3{width:25%}.seed-csp4 .col-xs-2{width:16.666666666666664%}.seed-csp4 .col-xs-1{width:8.333333333333332%}.seed-csp4 .col-xs-pull-12{right:100%}.seed-csp4 .col-xs-pull-11{right:91.66666666666666%}.seed-csp4 .col-xs-pull-10{right:83.33333333333334%}.seed-csp4 .col-xs-pull-9{right:75%}.seed-csp4 .col-xs-pull-8{right:66.66666666666666%}.seed-csp4 .col-xs-pull-7{right:58.333333333333336%}.seed-csp4 .col-xs-pull-6{right:50%}.seed-csp4 .col-xs-pull-5{right:41.66666666666667%}.seed-csp4 .col-xs-pull-4{right:33.33333333333333%}.seed-csp4 .col-xs-pull-3{right:25%}.seed-csp4 .col-xs-pull-2{right:16.666666666666664%}.seed-csp4 .col-xs-pull-1{right:8.333333333333332%}.seed-csp4 .col-xs-pull-0{right:0}.seed-csp4 .col-xs-push-12{left:100%}.seed-csp4 .col-xs-push-11{left:91.66666666666666%}.seed-csp4 .col-xs-push-10{left:83.33333333333334%}.seed-csp4 .col-xs-push-9{left:75%}.seed-csp4 .col-xs-push-8{left:66.66666666666666%}.seed-csp4 .col-xs-push-7{left:58.333333333333336%}.seed-csp4 .col-xs-push-6{left:50%}.seed-csp4 .col-xs-push-5{left:41.66666666666667%}.seed-csp4 .col-xs-push-4{left:33.33333333333333%}.seed-csp4 .col-xs-push-3{left:25%}.seed-csp4 .col-xs-push-2{left:16.666666666666664%}.seed-csp4 .col-xs-push-1{left:8.333333333333332%}.seed-csp4 .col-xs-push-0{left:0}.seed-csp4 .col-xs-offset-12{margin-left:100%}.seed-csp4 .col-xs-offset-11{margin-left:91.66666666666666%}.seed-csp4 .col-xs-offset-10{margin-left:83.33333333333334%}.seed-csp4 .col-xs-offset-9{margin-left:75%}.seed-csp4 .col-xs-offset-8{margin-left:66.66666666666666%}.seed-csp4 .col-xs-offset-7{margin-left:58.333333333333336%}.seed-csp4 .col-xs-offset-6{margin-left:50%}.seed-csp4 .col-xs-offset-5{margin-left:41.66666666666667%}.seed-csp4 .col-xs-offset-4{margin-left:33.33333333333333%}.seed-csp4 .col-xs-offset-3{margin-left:25%}.seed-csp4 .col-xs-offset-2{margin-left:16.666666666666664%}.seed-csp4 .col-xs-offset-1{margin-left:8.333333333333332%}.seed-csp4 .col-xs-offset-0{margin-left:0}@media (min-width:768px){.seed-csp4 .col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.seed-csp4 .col-sm-12{width:100%}.seed-csp4 .col-sm-11{width:91.66666666666666%}.seed-csp4 .col-sm-10{width:83.33333333333334%}.seed-csp4 .col-sm-9{width:75%}.seed-csp4 .col-sm-8{width:66.66666666666666%}.seed-csp4 .col-sm-7{width:58.333333333333336%}.seed-csp4 .col-sm-6{width:50%}.seed-csp4 .col-sm-5{width:41.66666666666667%}.seed-csp4 .col-sm-4{width:33.33333333333333%}.seed-csp4 .col-sm-3{width:25%}.seed-csp4 .col-sm-2{width:16.666666666666664%}.seed-csp4 .col-sm-1{width:8.333333333333332%}.seed-csp4 .col-sm-pull-12{right:100%}.seed-csp4 .col-sm-pull-11{right:91.66666666666666%}.seed-csp4 .col-sm-pull-10{right:83.33333333333334%}.seed-csp4 .col-sm-pull-9{right:75%}.seed-csp4 .col-sm-pull-8{right:66.66666666666666%}.seed-csp4 .col-sm-pull-7{right:58.333333333333336%}.seed-csp4 .col-sm-pull-6{right:50%}.seed-csp4 .col-sm-pull-5{right:41.66666666666667%}.seed-csp4 .col-sm-pull-4{right:33.33333333333333%}.seed-csp4 .col-sm-pull-3{right:25%}.seed-csp4 .col-sm-pull-2{right:16.666666666666664%}.seed-csp4 .col-sm-pull-1{right:8.333333333333332%}.seed-csp4 .col-sm-pull-0{right:0}.seed-csp4 .col-sm-push-12{left:100%}.seed-csp4 .col-sm-push-11{left:91.66666666666666%}.seed-csp4 .col-sm-push-10{left:83.33333333333334%}.seed-csp4 .col-sm-push-9{left:75%}.seed-csp4 .col-sm-push-8{left:66.66666666666666%}.seed-csp4 .col-sm-push-7{left:58.333333333333336%}.seed-csp4 .col-sm-push-6{left:50%}.seed-csp4 .col-sm-push-5{left:41.66666666666667%}.seed-csp4 .col-sm-push-4{left:33.33333333333333%}.seed-csp4 .col-sm-push-3{left:25%}.seed-csp4 .col-sm-push-2{left:16.666666666666664%}.seed-csp4 .col-sm-push-1{left:8.333333333333332%}.seed-csp4 .col-sm-push-0{left:0}.seed-csp4 .col-sm-offset-12{margin-left:100%}.seed-csp4 .col-sm-offset-11{margin-left:91.66666666666666%}.seed-csp4 .col-sm-offset-10{margin-left:83.33333333333334%}.seed-csp4 .col-sm-offset-9{margin-left:75%}.seed-csp4 .col-sm-offset-8{margin-left:66.66666666666666%}.seed-csp4 .col-sm-offset-7{margin-left:58.333333333333336%}.seed-csp4 .col-sm-offset-6{margin-left:50%}.seed-csp4 .col-sm-offset-5{margin-left:41.66666666666667%}.seed-csp4 .col-sm-offset-4{margin-left:33.33333333333333%}.seed-csp4 .col-sm-offset-3{margin-left:25%}.seed-csp4 .col-sm-offset-2{margin-left:16.666666666666664%}.seed-csp4 .col-sm-offset-1{margin-left:8.333333333333332%}.seed-csp4 .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.seed-csp4 .col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.seed-csp4 .col-md-12{width:100%}.seed-csp4 .col-md-11{width:91.66666666666666%}.seed-csp4 .col-md-10{width:83.33333333333334%}.seed-csp4 .col-md-9{width:75%}.seed-csp4 .col-md-8{width:66.66666666666666%}.seed-csp4 .col-md-7{width:58.333333333333336%}.seed-csp4 .col-md-6{width:50%}.seed-csp4 .col-md-5{width:41.66666666666667%}.seed-csp4 .col-md-4{width:33.33333333333333%}.seed-csp4 .col-md-3{width:25%}.seed-csp4 .col-md-2{width:16.666666666666664%}.seed-csp4 .col-md-1{width:8.333333333333332%}.seed-csp4 .col-md-pull-12{right:100%}.seed-csp4 .col-md-pull-11{right:91.66666666666666%}.seed-csp4 .col-md-pull-10{right:83.33333333333334%}.seed-csp4 .col-md-pull-9{right:75%}.seed-csp4 .col-md-pull-8{right:66.66666666666666%}.seed-csp4 .col-md-pull-7{right:58.333333333333336%}.seed-csp4 .col-md-pull-6{right:50%}.seed-csp4 .col-md-pull-5{right:41.66666666666667%}.seed-csp4 .col-md-pull-4{right:33.33333333333333%}.seed-csp4 .col-md-pull-3{right:25%}.seed-csp4 .col-md-pull-2{right:16.666666666666664%}.seed-csp4 .col-md-pull-1{right:8.333333333333332%}.seed-csp4 .col-md-pull-0{right:0}.seed-csp4 .col-md-push-12{left:100%}.seed-csp4 .col-md-push-11{left:91.66666666666666%}.seed-csp4 .col-md-push-10{left:83.33333333333334%}.seed-csp4 .col-md-push-9{left:75%}.seed-csp4 .col-md-push-8{left:66.66666666666666%}.seed-csp4 .col-md-push-7{left:58.333333333333336%}.seed-csp4 .col-md-push-6{left:50%}.seed-csp4 .col-md-push-5{left:41.66666666666667%}.seed-csp4 .col-md-push-4{left:33.33333333333333%}.seed-csp4 .col-md-push-3{left:25%}.seed-csp4 .col-md-push-2{left:16.666666666666664%}.seed-csp4 .col-md-push-1{left:8.333333333333332%}.seed-csp4 .col-md-push-0{left:0}.seed-csp4 .col-md-offset-12{margin-left:100%}.seed-csp4 .col-md-offset-11{margin-left:91.66666666666666%}.seed-csp4 .col-md-offset-10{margin-left:83.33333333333334%}.seed-csp4 .col-md-offset-9{margin-left:75%}.seed-csp4 .col-md-offset-8{margin-left:66.66666666666666%}.seed-csp4 .col-md-offset-7{margin-left:58.333333333333336%}.seed-csp4 .col-md-offset-6{margin-left:50%}.seed-csp4 .col-md-offset-5{margin-left:41.66666666666667%}.seed-csp4 .col-md-offset-4{margin-left:33.33333333333333%}.seed-csp4 .col-md-offset-3{margin-left:25%}.seed-csp4 .col-md-offset-2{margin-left:16.666666666666664%}.seed-csp4 .col-md-offset-1{margin-left:8.333333333333332%}.seed-csp4 .col-md-offset-0{margin-left:0}}@media (min-width:1200px){.seed-csp4 .col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.seed-csp4 .col-lg-12{width:100%}.seed-csp4 .col-lg-11{width:91.66666666666666%}.seed-csp4 .col-lg-10{width:83.33333333333334%}.seed-csp4 .col-lg-9{width:75%}.seed-csp4 .col-lg-8{width:66.66666666666666%}.seed-csp4 .col-lg-7{width:58.333333333333336%}.seed-csp4 .col-lg-6{width:50%}.seed-csp4 .col-lg-5{width:41.66666666666667%}.seed-csp4 .col-lg-4{width:33.33333333333333%}.seed-csp4 .col-lg-3{width:25%}.seed-csp4 .col-lg-2{width:16.666666666666664%}.seed-csp4 .col-lg-1{width:8.333333333333332%}.seed-csp4 .col-lg-pull-12{right:100%}.seed-csp4 .col-lg-pull-11{right:91.66666666666666%}.seed-csp4 .col-lg-pull-10{right:83.33333333333334%}.seed-csp4 .col-lg-pull-9{right:75%}.seed-csp4 .col-lg-pull-8{right:66.66666666666666%}.seed-csp4 .col-lg-pull-7{right:58.333333333333336%}.seed-csp4 .col-lg-pull-6{right:50%}.seed-csp4 .col-lg-pull-5{right:41.66666666666667%}.seed-csp4 .col-lg-pull-4{right:33.33333333333333%}.seed-csp4 .col-lg-pull-3{right:25%}.seed-csp4 .col-lg-pull-2{right:16.666666666666664%}.seed-csp4 .col-lg-pull-1{right:8.333333333333332%}.seed-csp4 .col-lg-pull-0{right:0}.seed-csp4 .col-lg-push-12{left:100%}.seed-csp4 .col-lg-push-11{left:91.66666666666666%}.seed-csp4 .col-lg-push-10{left:83.33333333333334%}.seed-csp4 .col-lg-push-9{left:75%}.seed-csp4 .col-lg-push-8{left:66.66666666666666%}.seed-csp4 .col-lg-push-7{left:58.333333333333336%}.seed-csp4 .col-lg-push-6{left:50%}.seed-csp4 .col-lg-push-5{left:41.66666666666667%}.seed-csp4 .col-lg-push-4{left:33.33333333333333%}.seed-csp4 .col-lg-push-3{left:25%}.seed-csp4 .col-lg-push-2{left:16.666666666666664%}.seed-csp4 .col-lg-push-1{left:8.333333333333332%}.seed-csp4 .col-lg-push-0{left:0}.seed-csp4 .col-lg-offset-12{margin-left:100%}.seed-csp4 .col-lg-offset-11{margin-left:91.66666666666666%}.seed-csp4 .col-lg-offset-10{margin-left:83.33333333333334%}.seed-csp4 .col-lg-offset-9{margin-left:75%}.seed-csp4 .col-lg-offset-8{margin-left:66.66666666666666%}.seed-csp4 .col-lg-offset-7{margin-left:58.333333333333336%}.seed-csp4 .col-lg-offset-6{margin-left:50%}.seed-csp4 .col-lg-offset-5{margin-left:41.66666666666667%}.seed-csp4 .col-lg-offset-4{margin-left:33.33333333333333%}.seed-csp4 .col-lg-offset-3{margin-left:25%}.seed-csp4 .col-lg-offset-2{margin-left:16.666666666666664%}.seed-csp4 .col-lg-offset-1{margin-left:8.333333333333332%}.seed-csp4 .col-lg-offset-0{margin-left:0}}.seed-csp4 table{max-width:100%;background-color:transparent}.seed-csp4 th{text-align:left}.seed-csp4 .table{width:100%;margin-bottom:20px}.seed-csp4 .table>thead>tr>th,.seed-csp4 .table>tbody>tr>th,.seed-csp4 .table>tfoot>tr>th,.seed-csp4 .table>thead>tr>td,.seed-csp4 .table>tbody>tr>td,.seed-csp4 .table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.seed-csp4 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.seed-csp4 .table>caption+thead>tr:first-child>th,.seed-csp4 .table>colgroup+thead>tr:first-child>th,.seed-csp4 .table>thead:first-child>tr:first-child>th,.seed-csp4 .table>caption+thead>tr:first-child>td,.seed-csp4 .table>colgroup+thead>tr:first-child>td,.seed-csp4 .table>thead:first-child>tr:first-child>td{border-top:0}.seed-csp4 .table>tbody+tbody{border-top:2px solid #ddd}.seed-csp4 .table .table{background-color:#fff}.seed-csp4 .table-condensed>thead>tr>th,.seed-csp4 .table-condensed>tbody>tr>th,.seed-csp4 .table-condensed>tfoot>tr>th,.seed-csp4 .table-condensed>thead>tr>td,.seed-csp4 .table-condensed>tbody>tr>td,.seed-csp4 .table-condensed>tfoot>tr>td{padding:5px}.seed-csp4 .table-bordered{border:1px solid #ddd}.seed-csp4 .table-bordered>thead>tr>th,.seed-csp4 .table-bordered>tbody>tr>th,.seed-csp4 .table-bordered>tfoot>tr>th,.seed-csp4 .table-bordered>thead>tr>td,.seed-csp4 .table-bordered>tbody>tr>td,.seed-csp4 .table-bordered>tfoot>tr>td{border:1px solid #ddd}.seed-csp4 .table-bordered>thead>tr>th,.seed-csp4 .table-bordered>thead>tr>td{border-bottom-width:2px}.seed-csp4 .table-striped>tbody>tr:nth-child(odd)>td,.seed-csp4 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.seed-csp4 .table-hover>tbody>tr:hover>td,.seed-csp4 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.seed-csp4 table col[class*=col-]{position:static;float:none;display:table-column}.seed-csp4 table td[class*=col-],.seed-csp4 table th[class*=col-]{float:none;display:table-cell}.seed-csp4 .table>thead>tr>.active,.seed-csp4 .table>tbody>tr>.active,.seed-csp4 .table>tfoot>tr>.active,.seed-csp4 .table>thead>.active>td,.seed-csp4 .table>tbody>.active>td,.seed-csp4 .table>tfoot>.active>td,.seed-csp4 .table>thead>.active>th,.seed-csp4 .table>tbody>.active>th,.seed-csp4 .table>tfoot>.active>th{background-color:#f5f5f5}.seed-csp4 .table-hover>tbody>tr>.active:hover,.seed-csp4 .table-hover>tbody>.active:hover>td,.seed-csp4 .table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.seed-csp4 .table>thead>tr>.success,.seed-csp4 .table>tbody>tr>.success,.seed-csp4 .table>tfoot>tr>.success,.seed-csp4 .table>thead>.success>td,.seed-csp4 .table>tbody>.success>td,.seed-csp4 .table>tfoot>.success>td,.seed-csp4 .table>thead>.success>th,.seed-csp4 .table>tbody>.success>th,.seed-csp4 .table>tfoot>.success>th{background-color:#dff0d8}.seed-csp4 .table-hover>tbody>tr>.success:hover,.seed-csp4 .table-hover>tbody>.success:hover>td,.seed-csp4 .table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.seed-csp4 .table>thead>tr>.danger,.seed-csp4 .table>tbody>tr>.danger,.seed-csp4 .table>tfoot>tr>.danger,.seed-csp4 .table>thead>.danger>td,.seed-csp4 .table>tbody>.danger>td,.seed-csp4 .table>tfoot>.danger>td,.seed-csp4 .table>thead>.danger>th,.seed-csp4 .table>tbody>.danger>th,.seed-csp4 .table>tfoot>.danger>th{background-color:#f2dede}.seed-csp4 .table-hover>tbody>tr>.danger:hover,.seed-csp4 .table-hover>tbody>.danger:hover>td,.seed-csp4 .table-hover>tbody>.danger:hover>th{background-color:#ebcccc}.seed-csp4 .table>thead>tr>.warning,.seed-csp4 .table>tbody>tr>.warning,.seed-csp4 .table>tfoot>tr>.warning,.seed-csp4 .table>thead>.warning>td,.seed-csp4 .table>tbody>.warning>td,.seed-csp4 .table>tfoot>.warning>td,.seed-csp4 .table>thead>.warning>th,.seed-csp4 .table>tbody>.warning>th,.seed-csp4 .table>tfoot>.warning>th{background-color:#fcf8e3}.seed-csp4 .table-hover>tbody>tr>.warning:hover,.seed-csp4 .table-hover>tbody>.warning:hover>td,.seed-csp4 .table-hover>tbody>.warning:hover>th{background-color:#faf2cc}@media (max-width:767px){.seed-csp4 .table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.seed-csp4 .table-responsive>.table{margin-bottom:0}.seed-csp4 .table-responsive>.table>thead>tr>th,.seed-csp4 .table-responsive>.table>tbody>tr>th,.seed-csp4 .table-responsive>.table>tfoot>tr>th,.seed-csp4 .table-responsive>.table>thead>tr>td,.seed-csp4 .table-responsive>.table>tbody>tr>td,.seed-csp4 .table-responsive>.table>tfoot>tr>td{white-space:nowrap}.seed-csp4 .table-responsive>.table-bordered{border:0}.seed-csp4 .table-responsive>.table-bordered>thead>tr>th:first-child,.seed-csp4 .table-responsive>.table-bordered>tbody>tr>th:first-child,.seed-csp4 .table-responsive>.table-bordered>tfoot>tr>th:first-child,.seed-csp4 .table-responsive>.table-bordered>thead>tr>td:first-child,.seed-csp4 .table-responsive>.table-bordered>tbody>tr>td:first-child,.seed-csp4 .table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.seed-csp4 .table-responsive>.table-bordered>thead>tr>th:last-child,.seed-csp4 .table-responsive>.table-bordered>tbody>tr>th:last-child,.seed-csp4 .table-responsive>.table-bordered>tfoot>tr>th:last-child,.seed-csp4 .table-responsive>.table-bordered>thead>tr>td:last-child,.seed-csp4 .table-responsive>.table-bordered>tbody>tr>td:last-child,.seed-csp4 .table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.seed-csp4 .table-responsive>.table-bordered>tbody>tr:last-child>th,.seed-csp4 .table-responsive>.table-bordered>tfoot>tr:last-child>th,.seed-csp4 .table-responsive>.table-bordered>tbody>tr:last-child>td,.seed-csp4 .table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}.seed-csp4 fieldset{padding:0;margin:0;border:0}.seed-csp4 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.seed-csp4 label{display:inline-block;margin-bottom:5px;font-weight:700}.seed-csp4 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.seed-csp4 input[type=radio],.seed-csp4 input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.seed-csp4 input[type=file]{display:block}.seed-csp4 select[multiple],.seed-csp4 select[size]{height:auto}.seed-csp4 select optgroup{font-size:inherit;font-style:inherit;font-family:inherit}.seed-csp4 input[type=file]:focus,.seed-csp4 input[type=radio]:focus,.seed-csp4 input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.seed-csp4 input[type=number]::-webkit-outer-spin-button,.seed-csp4 input[type=number]::-webkit-inner-spin-button{height:auto}.seed-csp4 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.seed-csp4 .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.seed-csp4 .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.seed-csp4 .form-control:-moz-placeholder{color:#999}.seed-csp4 .form-control::-moz-placeholder{color:#999;opacity:1}.seed-csp4 .form-control:-ms-input-placeholder{color:#999}.seed-csp4 .form-control::-webkit-input-placeholder{color:#999}.seed-csp4 .form-control[disabled],.seed-csp4 .form-control[readonly],fieldset[disabled] .seed-csp4 .form-control{cursor:not-allowed;background-color:#eee}textarea.seed-csp4 .form-control{height:auto}.seed-csp4 .form-group{margin-bottom:15px}.seed-csp4 .radio,.seed-csp4 .checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle}.seed-csp4 .radio label,.seed-csp4 .checkbox label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.seed-csp4 .radio input[type=radio],.seed-csp4 .radio-inline input[type=radio],.seed-csp4 .checkbox input[type=checkbox],.seed-csp4 .checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.seed-csp4 .radio+.radio,.seed-csp4 .checkbox+.checkbox{margin-top:-5px}.seed-csp4 .radio-inline,.seed-csp4 .checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.seed-csp4 .radio-inline+.radio-inline,.seed-csp4 .checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}.seed-csp4 input[type=radio][disabled],.seed-csp4 input[type=checkbox][disabled],.seed-csp4 .radio[disabled],.seed-csp4 .radio-inline[disabled],.seed-csp4 .checkbox[disabled],.seed-csp4 .checkbox-inline[disabled],fieldset[disabled] .seed-csp4 input[type=radio],fieldset[disabled] .seed-csp4 input[type=checkbox],fieldset[disabled] .seed-csp4 .radio,fieldset[disabled] .seed-csp4 .radio-inline,fieldset[disabled] .seed-csp4 .checkbox,fieldset[disabled] .seed-csp4 .checkbox-inline{cursor:not-allowed}.seed-csp4 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.seed-csp4 .input-sm{height:30px;line-height:30px}textarea.seed-csp4 .input-sm{height:auto}.seed-csp4 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.seed-csp4 .input-lg{height:46px;line-height:46px}textarea.seed-csp4 .input-lg{height:auto}.seed-csp4 .has-warning .help-block,.seed-csp4 .has-warning .control-label,.seed-csp4 .has-warning .radio,.seed-csp4 .has-warning .checkbox,.seed-csp4 .has-warning .radio-inline,.seed-csp4 .has-warning .checkbox-inline{color:#8a6d3b}.seed-csp4 .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.seed-csp4 .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.seed-csp4 .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.seed-csp4 .has-error .help-block,.seed-csp4 .has-error .control-label,.seed-csp4 .has-error .radio,.seed-csp4 .has-error .checkbox,.seed-csp4 .has-error .radio-inline,.seed-csp4 .has-error .checkbox-inline{color:#a94442}.seed-csp4 .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.seed-csp4 .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.seed-csp4 .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.seed-csp4 .has-success .help-block,.seed-csp4 .has-success .control-label,.seed-csp4 .has-success .radio,.seed-csp4 .has-success .checkbox,.seed-csp4 .has-success .radio-inline,.seed-csp4 .has-success .checkbox-inline{color:#3c763d}.seed-csp4 .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.seed-csp4 .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.seed-csp4 .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.seed-csp4 .form-control-static{margin-bottom:0}.seed-csp4 .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.seed-csp4 .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.seed-csp4 .form-inline .form-control{display:inline-block}.seed-csp4 .form-inline select.form-control{width:auto}.seed-csp4 .form-inline .radio,.seed-csp4 .form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.seed-csp4 .form-inline .radio input[type=radio],.seed-csp4 .form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}}.seed-csp4 .form-horizontal .control-label,.seed-csp4 .form-horizontal .radio,.seed-csp4 .form-horizontal .checkbox,.seed-csp4 .form-horizontal .radio-inline,.seed-csp4 .form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.seed-csp4 .form-horizontal .radio,.seed-csp4 .form-horizontal .checkbox{min-height:27px}.seed-csp4 .form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.seed-csp4 .form-horizontal .form-group:before,.seed-csp4 .form-horizontal .form-group:after{content:" ";display:table}.seed-csp4 .form-horizontal .form-group:after{clear:both}.seed-csp4 .form-horizontal .form-group:before,.seed-csp4 .form-horizontal .form-group:after{content:" ";display:table}.seed-csp4 .form-horizontal .form-group:after{clear:both}.seed-csp4 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.seed-csp4 .form-horizontal .control-label{text-align:right}}.seed-csp4 .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.seed-csp4 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.seed-csp4 .btn:hover,.seed-csp4 .btn:focus{color:#333;text-decoration:none}.seed-csp4 .btn:active,.seed-csp4 .btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.seed-csp4 .btn.disabled,.seed-csp4 .btn[disabled],fieldset[disabled] .seed-csp4 .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.seed-csp4 .btn-default{color:#333;background-color:#fff;border-color:#ccc}.seed-csp4 .btn-default:hover,.seed-csp4 .btn-default:focus,.seed-csp4 .btn-default:active,.seed-csp4 .btn-default.active,.open .dropdown-toggle.seed-csp4 .btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.seed-csp4 .btn-default:active,.seed-csp4 .btn-default.active,.open .dropdown-toggle.seed-csp4 .btn-default{background-image:none}.seed-csp4 .btn-default.disabled,.seed-csp4 .btn-default[disabled],fieldset[disabled] .seed-csp4 .btn-default,.seed-csp4 .btn-default.disabled:hover,.seed-csp4 .btn-default[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-default:hover,.seed-csp4 .btn-default.disabled:focus,.seed-csp4 .btn-default[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-default:focus,.seed-csp4 .btn-default.disabled:active,.seed-csp4 .btn-default[disabled]:active,fieldset[disabled] .seed-csp4 .btn-default:active,.seed-csp4 .btn-default.disabled.active,.seed-csp4 .btn-default[disabled].active,fieldset[disabled] .seed-csp4 .btn-default.active{background-color:#fff;border-color:#ccc}.seed-csp4 .btn-default .badge{color:#fff;background-color:#fff}.seed-csp4 .btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.seed-csp4 .btn-primary:hover,.seed-csp4 .btn-primary:focus,.seed-csp4 .btn-primary:active,.seed-csp4 .btn-primary.active,.open .dropdown-toggle.seed-csp4 .btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.seed-csp4 .btn-primary:active,.seed-csp4 .btn-primary.active,.open .dropdown-toggle.seed-csp4 .btn-primary{background-image:none}.seed-csp4 .btn-primary.disabled,.seed-csp4 .btn-primary[disabled],fieldset[disabled] .seed-csp4 .btn-primary,.seed-csp4 .btn-primary.disabled:hover,.seed-csp4 .btn-primary[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-primary:hover,.seed-csp4 .btn-primary.disabled:focus,.seed-csp4 .btn-primary[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-primary:focus,.seed-csp4 .btn-primary.disabled:active,.seed-csp4 .btn-primary[disabled]:active,fieldset[disabled] .seed-csp4 .btn-primary:active,.seed-csp4 .btn-primary.disabled.active,.seed-csp4 .btn-primary[disabled].active,fieldset[disabled] .seed-csp4 .btn-primary.active{background-color:#428bca;border-color:#357ebd}.seed-csp4 .btn-primary .badge{color:#428bca;background-color:#fff}.seed-csp4 .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.seed-csp4 .btn-warning:hover,.seed-csp4 .btn-warning:focus,.seed-csp4 .btn-warning:active,.seed-csp4 .btn-warning.active,.open .dropdown-toggle.seed-csp4 .btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.seed-csp4 .btn-warning:active,.seed-csp4 .btn-warning.active,.open .dropdown-toggle.seed-csp4 .btn-warning{background-image:none}.seed-csp4 .btn-warning.disabled,.seed-csp4 .btn-warning[disabled],fieldset[disabled] .seed-csp4 .btn-warning,.seed-csp4 .btn-warning.disabled:hover,.seed-csp4 .btn-warning[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-warning:hover,.seed-csp4 .btn-warning.disabled:focus,.seed-csp4 .btn-warning[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-warning:focus,.seed-csp4 .btn-warning.disabled:active,.seed-csp4 .btn-warning[disabled]:active,fieldset[disabled] .seed-csp4 .btn-warning:active,.seed-csp4 .btn-warning.disabled.active,.seed-csp4 .btn-warning[disabled].active,fieldset[disabled] .seed-csp4 .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.seed-csp4 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.seed-csp4 .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.seed-csp4 .btn-danger:hover,.seed-csp4 .btn-danger:focus,.seed-csp4 .btn-danger:active,.seed-csp4 .btn-danger.active,.open .dropdown-toggle.seed-csp4 .btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.seed-csp4 .btn-danger:active,.seed-csp4 .btn-danger.active,.open .dropdown-toggle.seed-csp4 .btn-danger{background-image:none}.seed-csp4 .btn-danger.disabled,.seed-csp4 .btn-danger[disabled],fieldset[disabled] .seed-csp4 .btn-danger,.seed-csp4 .btn-danger.disabled:hover,.seed-csp4 .btn-danger[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-danger:hover,.seed-csp4 .btn-danger.disabled:focus,.seed-csp4 .btn-danger[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-danger:focus,.seed-csp4 .btn-danger.disabled:active,.seed-csp4 .btn-danger[disabled]:active,fieldset[disabled] .seed-csp4 .btn-danger:active,.seed-csp4 .btn-danger.disabled.active,.seed-csp4 .btn-danger[disabled].active,fieldset[disabled] .seed-csp4 .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.seed-csp4 .btn-danger .badge{color:#d9534f;background-color:#fff}.seed-csp4 .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.seed-csp4 .btn-success:hover,.seed-csp4 .btn-success:focus,.seed-csp4 .btn-success:active,.seed-csp4 .btn-success.active,.open .dropdown-toggle.seed-csp4 .btn-success{color:#fff;background-color:#47a447;border-color:#398439}.seed-csp4 .btn-success:active,.seed-csp4 .btn-success.active,.open .dropdown-toggle.seed-csp4 .btn-success{background-image:none}.seed-csp4 .btn-success.disabled,.seed-csp4 .btn-success[disabled],fieldset[disabled] .seed-csp4 .btn-success,.seed-csp4 .btn-success.disabled:hover,.seed-csp4 .btn-success[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-success:hover,.seed-csp4 .btn-success.disabled:focus,.seed-csp4 .btn-success[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-success:focus,.seed-csp4 .btn-success.disabled:active,.seed-csp4 .btn-success[disabled]:active,fieldset[disabled] .seed-csp4 .btn-success:active,.seed-csp4 .btn-success.disabled.active,.seed-csp4 .btn-success[disabled].active,fieldset[disabled] .seed-csp4 .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.seed-csp4 .btn-success .badge{color:#5cb85c;background-color:#fff}.seed-csp4 .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.seed-csp4 .btn-info:hover,.seed-csp4 .btn-info:focus,.seed-csp4 .btn-info:active,.seed-csp4 .btn-info.active,.open .dropdown-toggle.seed-csp4 .btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.seed-csp4 .btn-info:active,.seed-csp4 .btn-info.active,.open .dropdown-toggle.seed-csp4 .btn-info{background-image:none}.seed-csp4 .btn-info.disabled,.seed-csp4 .btn-info[disabled],fieldset[disabled] .seed-csp4 .btn-info,.seed-csp4 .btn-info.disabled:hover,.seed-csp4 .btn-info[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-info:hover,.seed-csp4 .btn-info.disabled:focus,.seed-csp4 .btn-info[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-info:focus,.seed-csp4 .btn-info.disabled:active,.seed-csp4 .btn-info[disabled]:active,fieldset[disabled] .seed-csp4 .btn-info:active,.seed-csp4 .btn-info.disabled.active,.seed-csp4 .btn-info[disabled].active,fieldset[disabled] .seed-csp4 .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.seed-csp4 .btn-info .badge{color:#5bc0de;background-color:#fff}.seed-csp4 .btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.seed-csp4 .btn-link,.seed-csp4 .btn-link:active,.seed-csp4 .btn-link[disabled],fieldset[disabled] .seed-csp4 .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.seed-csp4 .btn-link,.seed-csp4 .btn-link:hover,.seed-csp4 .btn-link:focus,.seed-csp4 .btn-link:active{border-color:transparent}.seed-csp4 .btn-link:hover,.seed-csp4 .btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.seed-csp4 .btn-link[disabled]:hover,fieldset[disabled] .seed-csp4 .btn-link:hover,.seed-csp4 .btn-link[disabled]:focus,fieldset[disabled] .seed-csp4 .btn-link:focus{color:#999;text-decoration:none}.seed-csp4 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.seed-csp4 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.seed-csp4 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.seed-csp4 .btn-block{display:block;width:100%;padding-left:0;padding-right:0}.seed-csp4 .btn-block+.btn-block{margin-top:5px}.seed-csp4 input[type=submit].btn-block,.seed-csp4 input[type=reset].btn-block,.seed-csp4 input[type=button].btn-block{width:100%}.seed-csp4 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.seed-csp4 .fade.in{opacity:1}.seed-csp4 .collapse{display:none}.seed-csp4 .collapse.in{display:block}.seed-csp4 .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format('svg')}.seed-csp4 .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.seed-csp4 .glyphicon:empty{width:1em}.seed-csp4 .glyphicon-asterisk:before{content:"\2a"}.seed-csp4 .glyphicon-plus:before{content:"\2b"}.seed-csp4 .glyphicon-euro:before{content:"\20ac"}.seed-csp4 .glyphicon-minus:before{content:"\2212"}.seed-csp4 .glyphicon-cloud:before{content:"\2601"}.seed-csp4 .glyphicon-envelope:before{content:"\2709"}.seed-csp4 .glyphicon-pencil:before{content:"\270f"}.seed-csp4 .glyphicon-glass:before{content:"\e001"}.seed-csp4 .glyphicon-music:before{content:"\e002"}.seed-csp4 .glyphicon-search:before{content:"\e003"}.seed-csp4 .glyphicon-heart:before{content:"\e005"}.seed-csp4 .glyphicon-star:before{content:"\e006"}.seed-csp4 .glyphicon-star-empty:before{content:"\e007"}.seed-csp4 .glyphicon-user:before{content:"\e008"}.seed-csp4 .glyphicon-film:before{content:"\e009"}.seed-csp4 .glyphicon-th-large:before{content:"\e010"}.seed-csp4 .glyphicon-th:before{content:"\e011"}.seed-csp4 .glyphicon-th-list:before{content:"\e012"}.seed-csp4 .glyphicon-ok:before{content:"\e013"}.seed-csp4 .glyphicon-remove:before{content:"\e014"}.seed-csp4 .glyphicon-zoom-in:before{content:"\e015"}.seed-csp4 .glyphicon-zoom-out:before{content:"\e016"}.seed-csp4 .glyphicon-off:before{content:"\e017"}.seed-csp4 .glyphicon-signal:before{content:"\e018"}.seed-csp4 .glyphicon-cog:before{content:"\e019"}.seed-csp4 .glyphicon-trash:before{content:"\e020"}.seed-csp4 .glyphicon-home:before{content:"\e021"}.seed-csp4 .glyphicon-file:before{content:"\e022"}.seed-csp4 .glyphicon-time:before{content:"\e023"}.seed-csp4 .glyphicon-road:before{content:"\e024"}.seed-csp4 .glyphicon-download-alt:before{content:"\e025"}.seed-csp4 .glyphicon-download:before{content:"\e026"}.seed-csp4 .glyphicon-upload:before{content:"\e027"}.seed-csp4 .glyphicon-inbox:before{content:"\e028"}.seed-csp4 .glyphicon-play-circle:before{content:"\e029"}.seed-csp4 .glyphicon-repeat:before{content:"\e030"}.seed-csp4 .glyphicon-refresh:before{content:"\e031"}.seed-csp4 .glyphicon-list-alt:before{content:"\e032"}.seed-csp4 .glyphicon-lock:before{content:"\e033"}.seed-csp4 .glyphicon-flag:before{content:"\e034"}.seed-csp4 .glyphicon-headphones:before{content:"\e035"}.seed-csp4 .glyphicon-volume-off:before{content:"\e036"}.seed-csp4 .glyphicon-volume-down:before{content:"\e037"}.seed-csp4 .glyphicon-volume-up:before{content:"\e038"}.seed-csp4 .glyphicon-qrcode:before{content:"\e039"}.seed-csp4 .glyphicon-barcode:before{content:"\e040"}.seed-csp4 .glyphicon-tag:before{content:"\e041"}.seed-csp4 .glyphicon-tags:before{content:"\e042"}.seed-csp4 .glyphicon-book:before{content:"\e043"}.seed-csp4 .glyphicon-bookmark:before{content:"\e044"}.seed-csp4 .glyphicon-print:before{content:"\e045"}.seed-csp4 .glyphicon-camera:before{content:"\e046"}.seed-csp4 .glyphicon-font:before{content:"\e047"}.seed-csp4 .glyphicon-bold:before{content:"\e048"}.seed-csp4 .glyphicon-italic:before{content:"\e049"}.seed-csp4 .glyphicon-text-height:before{content:"\e050"}.seed-csp4 .glyphicon-text-width:before{content:"\e051"}.seed-csp4 .glyphicon-align-left:before{content:"\e052"}.seed-csp4 .glyphicon-align-center:before{content:"\e053"}.seed-csp4 .glyphicon-align-right:before{content:"\e054"}.seed-csp4 .glyphicon-align-justify:before{content:"\e055"}.seed-csp4 .glyphicon-list:before{content:"\e056"}.seed-csp4 .glyphicon-indent-left:before{content:"\e057"}.seed-csp4 .glyphicon-indent-right:before{content:"\e058"}.seed-csp4 .glyphicon-facetime-video:before{content:"\e059"}.seed-csp4 .glyphicon-picture:before{content:"\e060"}.seed-csp4 .glyphicon-map-marker:before{content:"\e062"}.seed-csp4 .glyphicon-adjust:before{content:"\e063"}.seed-csp4 .glyphicon-tint:before{content:"\e064"}.seed-csp4 .glyphicon-edit:before{content:"\e065"}.seed-csp4 .glyphicon-share:before{content:"\e066"}.seed-csp4 .glyphicon-check:before{content:"\e067"}.seed-csp4 .glyphicon-move:before{content:"\e068"}.seed-csp4 .glyphicon-step-backward:before{content:"\e069"}.seed-csp4 .glyphicon-fast-backward:before{content:"\e070"}.seed-csp4 .glyphicon-backward:before{content:"\e071"}.seed-csp4 .glyphicon-play:before{content:"\e072"}.seed-csp4 .glyphicon-pause:before{content:"\e073"}.seed-csp4 .glyphicon-stop:before{content:"\e074"}.seed-csp4 .glyphicon-forward:before{content:"\e075"}.seed-csp4 .glyphicon-fast-forward:before{content:"\e076"}.seed-csp4 .glyphicon-step-forward:before{content:"\e077"}.seed-csp4 .glyphicon-eject:before{content:"\e078"}.seed-csp4 .glyphicon-chevron-left:before{content:"\e079"}.seed-csp4 .glyphicon-chevron-right:before{content:"\e080"}.seed-csp4 .glyphicon-plus-sign:before{content:"\e081"}.seed-csp4 .glyphicon-minus-sign:before{content:"\e082"}.seed-csp4 .glyphicon-remove-sign:before{content:"\e083"}.seed-csp4 .glyphicon-ok-sign:before{content:"\e084"}.seed-csp4 .glyphicon-question-sign:before{content:"\e085"}.seed-csp4 .glyphicon-info-sign:before{content:"\e086"}.seed-csp4 .glyphicon-screenshot:before{content:"\e087"}.seed-csp4 .glyphicon-remove-circle:before{content:"\e088"}.seed-csp4 .glyphicon-ok-circle:before{content:"\e089"}.seed-csp4 .glyphicon-ban-circle:before{content:"\e090"}.seed-csp4 .glyphicon-arrow-left:before{content:"\e091"}.seed-csp4 .glyphicon-arrow-right:before{content:"\e092"}.seed-csp4 .glyphicon-arrow-up:before{content:"\e093"}.seed-csp4 .glyphicon-arrow-down:before{content:"\e094"}.seed-csp4 .glyphicon-share-alt:before{content:"\e095"}.seed-csp4 .glyphicon-resize-full:before{content:"\e096"}.seed-csp4 .glyphicon-resize-small:before{content:"\e097"}.seed-csp4 .glyphicon-exclamation-sign:before{content:"\e101"}.seed-csp4 .glyphicon-gift:before{content:"\e102"}.seed-csp4 .glyphicon-leaf:before{content:"\e103"}.seed-csp4 .glyphicon-fire:before{content:"\e104"}.seed-csp4 .glyphicon-eye-open:before{content:"\e105"}.seed-csp4 .glyphicon-eye-close:before{content:"\e106"}.seed-csp4 .glyphicon-warning-sign:before{content:"\e107"}.seed-csp4 .glyphicon-plane:before{content:"\e108"}.seed-csp4 .glyphicon-calendar:before{content:"\e109"}.seed-csp4 .glyphicon-random:before{content:"\e110"}.seed-csp4 .glyphicon-comment:before{content:"\e111"}.seed-csp4 .glyphicon-magnet:before{content:"\e112"}.seed-csp4 .glyphicon-chevron-up:before{content:"\e113"}.seed-csp4 .glyphicon-chevron-down:before{content:"\e114"}.seed-csp4 .glyphicon-retweet:before{content:"\e115"}.seed-csp4 .glyphicon-shopping-cart:before{content:"\e116"}.seed-csp4 .glyphicon-folder-close:before{content:"\e117"}.seed-csp4 .glyphicon-folder-open:before{content:"\e118"}.seed-csp4 .glyphicon-resize-vertical:before{content:"\e119"}.seed-csp4 .glyphicon-resize-horizontal:before{content:"\e120"}.seed-csp4 .glyphicon-hdd:before{content:"\e121"}.seed-csp4 .glyphicon-bullhorn:before{content:"\e122"}.seed-csp4 .glyphicon-bell:before{content:"\e123"}.seed-csp4 .glyphicon-certificate:before{content:"\e124"}.seed-csp4 .glyphicon-thumbs-up:before{content:"\e125"}.seed-csp4 .glyphicon-thumbs-down:before{content:"\e126"}.seed-csp4 .glyphicon-hand-right:before{content:"\e127"}.seed-csp4 .glyphicon-hand-left:before{content:"\e128"}.seed-csp4 .glyphicon-hand-up:before{content:"\e129"}.seed-csp4 .glyphicon-hand-down:before{content:"\e130"}.seed-csp4 .glyphicon-circle-arrow-right:before{content:"\e131"}.seed-csp4 .glyphicon-circle-arrow-left:before{content:"\e132"}.seed-csp4 .glyphicon-circle-arrow-up:before{content:"\e133"}.seed-csp4 .glyphicon-circle-arrow-down:before{content:"\e134"}.seed-csp4 .glyphicon-globe:before{content:"\e135"}.seed-csp4 .glyphicon-wrench:before{content:"\e136"}.seed-csp4 .glyphicon-tasks:before{content:"\e137"}.seed-csp4 .glyphicon-filter:before{content:"\e138"}.seed-csp4 .glyphicon-briefcase:before{content:"\e139"}.seed-csp4 .glyphicon-fullscreen:before{content:"\e140"}.seed-csp4 .glyphicon-dashboard:before{content:"\e141"}.seed-csp4 .glyphicon-paperclip:before{content:"\e142"}.seed-csp4 .glyphicon-heart-empty:before{content:"\e143"}.seed-csp4 .glyphicon-link:before{content:"\e144"}.seed-csp4 .glyphicon-phone:before{content:"\e145"}.seed-csp4 .glyphicon-pushpin:before{content:"\e146"}.seed-csp4 .glyphicon-usd:before{content:"\e148"}.seed-csp4 .glyphicon-gbp:before{content:"\e149"}.seed-csp4 .glyphicon-sort:before{content:"\e150"}.seed-csp4 .glyphicon-sort-by-alphabet:before{content:"\e151"}.seed-csp4 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.seed-csp4 .glyphicon-sort-by-order:before{content:"\e153"}.seed-csp4 .glyphicon-sort-by-order-alt:before{content:"\e154"}.seed-csp4 .glyphicon-sort-by-attributes:before{content:"\e155"}.seed-csp4 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.seed-csp4 .glyphicon-unchecked:before{content:"\e157"}.seed-csp4 .glyphicon-expand:before{content:"\e158"}.seed-csp4 .glyphicon-collapse-down:before{content:"\e159"}.seed-csp4 .glyphicon-collapse-up:before{content:"\e160"}.seed-csp4 .glyphicon-log-in:before{content:"\e161"}.seed-csp4 .glyphicon-flash:before{content:"\e162"}.seed-csp4 .glyphicon-log-out:before{content:"\e163"}.seed-csp4 .glyphicon-new-window:before{content:"\e164"}.seed-csp4 .glyphicon-record:before{content:"\e165"}.seed-csp4 .glyphicon-save:before{content:"\e166"}.seed-csp4 .glyphicon-open:before{content:"\e167"}.seed-csp4 .glyphicon-saved:before{content:"\e168"}.seed-csp4 .glyphicon-import:before{content:"\e169"}.seed-csp4 .glyphicon-export:before{content:"\e170"}.seed-csp4 .glyphicon-send:before{content:"\e171"}.seed-csp4 .glyphicon-floppy-disk:before{content:"\e172"}.seed-csp4 .glyphicon-floppy-saved:before{content:"\e173"}.seed-csp4 .glyphicon-floppy-remove:before{content:"\e174"}.seed-csp4 .glyphicon-floppy-save:before{content:"\e175"}.seed-csp4 .glyphicon-floppy-open:before{content:"\e176"}.seed-csp4 .glyphicon-credit-card:before{content:"\e177"}.seed-csp4 .glyphicon-transfer:before{content:"\e178"}.seed-csp4 .glyphicon-cutlery:before{content:"\e179"}.seed-csp4 .glyphicon-header:before{content:"\e180"}.seed-csp4 .glyphicon-compressed:before{content:"\e181"}.seed-csp4 .glyphicon-earphone:before{content:"\e182"}.seed-csp4 .glyphicon-phone-alt:before{content:"\e183"}.seed-csp4 .glyphicon-tower:before{content:"\e184"}.seed-csp4 .glyphicon-stats:before{content:"\e185"}.seed-csp4 .glyphicon-sd-video:before{content:"\e186"}.seed-csp4 .glyphicon-hd-video:before{content:"\e187"}.seed-csp4 .glyphicon-subtitles:before{content:"\e188"}.seed-csp4 .glyphicon-sound-stereo:before{content:"\e189"}.seed-csp4 .glyphicon-sound-dolby:before{content:"\e190"}.seed-csp4 .glyphicon-sound-5-1:before{content:"\e191"}.seed-csp4 .glyphicon-sound-6-1:before{content:"\e192"}.seed-csp4 .glyphicon-sound-7-1:before{content:"\e193"}.seed-csp4 .glyphicon-copyright-mark:before{content:"\e194"}.seed-csp4 .glyphicon-registration-mark:before{content:"\e195"}.seed-csp4 .glyphicon-cloud-download:before{content:"\e197"}.seed-csp4 .glyphicon-cloud-upload:before{content:"\e198"}.seed-csp4 .glyphicon-tree-conifer:before{content:"\e199"}.seed-csp4 .glyphicon-tree-deciduous:before{content:"\e200"}.seed-csp4 .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.seed-csp4 .dropdown{position:relative}.seed-csp4 .dropdown-toggle:focus{outline:0}.seed-csp4 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.seed-csp4 .dropdown-menu.pull-right{right:0;left:auto}.seed-csp4 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.seed-csp4 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.seed-csp4 .dropdown-menu>li>a:hover,.seed-csp4 .dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.seed-csp4 .dropdown-menu>.active>a,.seed-csp4 .dropdown-menu>.active>a:hover,.seed-csp4 .dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.seed-csp4 .dropdown-menu>.disabled>a,.seed-csp4 .dropdown-menu>.disabled>a:hover,.seed-csp4 .dropdown-menu>.disabled>a:focus{color:#999}.seed-csp4 .dropdown-menu>.disabled>a:hover,.seed-csp4 .dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.seed-csp4 .open>.dropdown-menu{display:block}.seed-csp4 .open>a{outline:0}.seed-csp4 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.seed-csp4 .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.seed-csp4 .pull-right>.dropdown-menu{right:0;left:auto}.seed-csp4 .dropup .caret,.seed-csp4 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.seed-csp4 .dropup .dropdown-menu,.seed-csp4 .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.seed-csp4 .navbar-right .dropdown-menu{right:0;left:auto}}.seed-csp4 .btn-group,.seed-csp4 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.seed-csp4 .btn-group>.btn,.seed-csp4 .btn-group-vertical>.btn{position:relative;float:left}.seed-csp4 .btn-group>.btn:hover,.seed-csp4 .btn-group-vertical>.btn:hover,.seed-csp4 .btn-group>.btn:focus,.seed-csp4 .btn-group-vertical>.btn:focus,.seed-csp4 .btn-group>.btn:active,.seed-csp4 .btn-group-vertical>.btn:active,.seed-csp4 .btn-group>.btn.active,.seed-csp4 .btn-group-vertical>.btn.active{z-index:2}.seed-csp4 .btn-group>.btn:focus,.seed-csp4 .btn-group-vertical>.btn:focus{outline:0}.seed-csp4 .btn-group .btn+.btn,.seed-csp4 .btn-group .btn+.btn-group,.seed-csp4 .btn-group .btn-group+.btn,.seed-csp4 .btn-group .btn-group+.btn-group{margin-left:-1px}.seed-csp4 .btn-toolbar:before,.seed-csp4 .btn-toolbar:after{content:" ";display:table}.seed-csp4 .btn-toolbar:after{clear:both}.seed-csp4 .btn-toolbar:before,.seed-csp4 .btn-toolbar:after{content:" ";display:table}.seed-csp4 .btn-toolbar:after{clear:both}.seed-csp4 .btn-toolbar .btn-group{float:left}.seed-csp4 .btn-toolbar>.btn+.btn,.seed-csp4 .btn-toolbar>.btn-group+.btn,.seed-csp4 .btn-toolbar>.btn+.btn-group,.seed-csp4 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.seed-csp4 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.seed-csp4 .btn-group>.btn:first-child{margin-left:0}.seed-csp4 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.seed-csp4 .btn-group>.btn:last-child:not(:first-child),.seed-csp4 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.seed-csp4 .btn-group>.btn-group{float:left}.seed-csp4 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.seed-csp4 .btn-group>.btn-group:first-child>.btn:last-child,.seed-csp4 .btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.seed-csp4 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.seed-csp4 .btn-group .dropdown-toggle:active,.seed-csp4 .btn-group.open .dropdown-toggle{outline:0}.seed-csp4 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.seed-csp4 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.seed-csp4 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.seed-csp4 .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.seed-csp4 .btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.seed-csp4 .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.seed-csp4 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.seed-csp4 .btn .caret{margin-left:0}.seed-csp4 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.seed-csp4 .dropup .btn-lg .caret{border-width:0 5px 5px}.seed-csp4 .btn-group-vertical>.btn,.seed-csp4 .btn-group-vertical>.btn-group,.seed-csp4 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.seed-csp4 .btn-group-vertical>.btn-group:before,.seed-csp4 .btn-group-vertical>.btn-group:after{content:" ";display:table}.seed-csp4 .btn-group-vertical>.btn-group:after{clear:both}.seed-csp4 .btn-group-vertical>.btn-group:before,.seed-csp4 .btn-group-vertical>.btn-group:after{content:" ";display:table}.seed-csp4 .btn-group-vertical>.btn-group:after{clear:both}.seed-csp4 .btn-group-vertical>.btn-group>.btn{float:none}.seed-csp4 .btn-group-vertical>.btn+.btn,.seed-csp4 .btn-group-vertical>.btn+.btn-group,.seed-csp4 .btn-group-vertical>.btn-group+.btn,.seed-csp4 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.seed-csp4 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.seed-csp4 .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.seed-csp4 .btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.seed-csp4 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.seed-csp4 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.seed-csp4 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.seed-csp4 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.seed-csp4 .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.seed-csp4 .btn-group-justified>.btn,.seed-csp4 .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.seed-csp4 .btn-group-justified>.btn-group .btn{width:100%}.seed-csp4 [data-toggle=buttons]>.btn>input[type=radio],.seed-csp4 [data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.seed-csp4 .input-group{position:relative;display:table;border-collapse:separate}.seed-csp4 .input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.seed-csp4 .input-group .form-control{width:100%;margin-bottom:0}.seed-csp4 .input-group-lg>.form-control,.seed-csp4 .input-group-lg>.input-group-addon,.seed-csp4 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.seed-csp4 .input-group-lg>.form-control,select.seed-csp4 .input-group-lg>.input-group-addon,select.seed-csp4 .input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.seed-csp4 .input-group-lg>.form-control,textarea.seed-csp4 .input-group-lg>.input-group-addon,textarea.seed-csp4 .input-group-lg>.input-group-btn>.btn{height:auto}.seed-csp4 .input-group-sm>.form-control,.seed-csp4 .input-group-sm>.input-group-addon,.seed-csp4 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.seed-csp4 .input-group-sm>.form-control,select.seed-csp4 .input-group-sm>.input-group-addon,select.seed-csp4 .input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.seed-csp4 .input-group-sm>.form-control,textarea.seed-csp4 .input-group-sm>.input-group-addon,textarea.seed-csp4 .input-group-sm>.input-group-btn>.btn{height:auto}.seed-csp4 .input-group-addon,.seed-csp4 .input-group-btn,.seed-csp4 .input-group .form-control{display:table-cell}.seed-csp4 .input-group-addon:not(:first-child):not(:last-child),.seed-csp4 .input-group-btn:not(:first-child):not(:last-child),.seed-csp4 .input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.seed-csp4 .input-group-addon,.seed-csp4 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.seed-csp4 .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.seed-csp4 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.seed-csp4 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.seed-csp4 .input-group-addon input[type=radio],.seed-csp4 .input-group-addon input[type=checkbox]{margin-top:0}.seed-csp4 .input-group .form-control:first-child,.seed-csp4 .input-group-addon:first-child,.seed-csp4 .input-group-btn:first-child>.btn,.seed-csp4 .input-group-btn:first-child>.dropdown-toggle,.seed-csp4 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.seed-csp4 .input-group-addon:first-child{border-right:0}.seed-csp4 .input-group .form-control:last-child,.seed-csp4 .input-group-addon:last-child,.seed-csp4 .input-group-btn:last-child>.btn,.seed-csp4 .input-group-btn:last-child>.dropdown-toggle,.seed-csp4 .input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.seed-csp4 .input-group-addon:last-child{border-left:0}.seed-csp4 .input-group-btn{position:relative;white-space:nowrap}.seed-csp4 .input-group-btn:first-child>.btn{margin-right:-1px}.seed-csp4 .input-group-btn:last-child>.btn{margin-left:-1px}.seed-csp4 .input-group-btn>.btn{position:relative}.seed-csp4 .input-group-btn>.btn+.btn{margin-left:-4px}.seed-csp4 .input-group-btn>.btn:hover,.seed-csp4 .input-group-btn>.btn:active{z-index:2}.seed-csp4 .nav{margin-bottom:0;padding-left:0;list-style:none}.seed-csp4 .nav:before,.seed-csp4 .nav:after{content:" ";display:table}.seed-csp4 .nav:after{clear:both}.seed-csp4 .nav:before,.seed-csp4 .nav:after{content:" ";display:table}.seed-csp4 .nav:after{clear:both}.seed-csp4 .nav>li{position:relative;display:block}.seed-csp4 .nav>li>a{position:relative;display:block;padding:10px 15px}.seed-csp4 .nav>li>a:hover,.seed-csp4 .nav>li>a:focus{text-decoration:none;background-color:#eee}.seed-csp4 .nav>li.disabled>a{color:#999}.seed-csp4 .nav>li.disabled>a:hover,.seed-csp4 .nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.seed-csp4 .nav .open>a,.seed-csp4 .nav .open>a:hover,.seed-csp4 .nav .open>a:focus{background-color:#eee;border-color:#428bca}.seed-csp4 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.seed-csp4 .nav>li>a>img{max-width:none}.seed-csp4 .nav-tabs{border-bottom:1px solid #ddd}.seed-csp4 .nav-tabs>li{float:left;margin-bottom:-1px}.seed-csp4 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.seed-csp4 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.seed-csp4 .nav-tabs>li.active>a,.seed-csp4 .nav-tabs>li.active>a:hover,.seed-csp4 .nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.seed-csp4 .nav-tabs.nav-justified{width:100%;border-bottom:0}.seed-csp4 .nav-tabs.nav-justified>li{float:none}.seed-csp4 .nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.seed-csp4 .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.seed-csp4 .nav-tabs.nav-justified>li{display:table-cell;width:1%}.seed-csp4 .nav-tabs.nav-justified>li>a{margin-bottom:0}}.seed-csp4 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.seed-csp4 .nav-tabs.nav-justified>.active>a,.seed-csp4 .nav-tabs.nav-justified>.active>a:hover,.seed-csp4 .nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.seed-csp4 .nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.seed-csp4 .nav-tabs.nav-justified>.active>a,.seed-csp4 .nav-tabs.nav-justified>.active>a:hover,.seed-csp4 .nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.seed-csp4 .nav-pills>li{float:left}.seed-csp4 .nav-pills>li>a{border-radius:4px}.seed-csp4 .nav-pills>li+li{margin-left:2px}.seed-csp4 .nav-pills>li.active>a,.seed-csp4 .nav-pills>li.active>a:hover,.seed-csp4 .nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.seed-csp4 .nav-stacked>li{float:none}.seed-csp4 .nav-stacked>li+li{margin-top:2px;margin-left:0}.seed-csp4 .nav-justified{width:100%}.seed-csp4 .nav-justified>li{float:none}.seed-csp4 .nav-justified>li>a{text-align:center;margin-bottom:5px}.seed-csp4 .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.seed-csp4 .nav-justified>li{display:table-cell;width:1%}.seed-csp4 .nav-justified>li>a{margin-bottom:0}}.seed-csp4 .nav-tabs-justified{border-bottom:0}.seed-csp4 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.seed-csp4 .nav-tabs-justified>.active>a,.seed-csp4 .nav-tabs-justified>.active>a:hover,.seed-csp4 .nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.seed-csp4 .nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.seed-csp4 .nav-tabs-justified>.active>a,.seed-csp4 .nav-tabs-justified>.active>a:hover,.seed-csp4 .nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.seed-csp4 .tab-content>.tab-pane{display:none}.seed-csp4 .tab-content>.active{display:block}.seed-csp4 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.seed-csp4 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.seed-csp4 .navbar:before,.seed-csp4 .navbar:after{content:" ";display:table}.seed-csp4 .navbar:after{clear:both}.seed-csp4 .navbar:before,.seed-csp4 .navbar:after{content:" ";display:table}.seed-csp4 .navbar:after{clear:both}@media (min-width:768px){.seed-csp4 .navbar{border-radius:4px}}.seed-csp4 .navbar-header:before,.seed-csp4 .navbar-header:after{content:" ";display:table}.seed-csp4 .navbar-header:after{clear:both}.seed-csp4 .navbar-header:before,.seed-csp4 .navbar-header:after{content:" ";display:table}.seed-csp4 .navbar-header:after{clear:both}@media (min-width:768px){.seed-csp4 .navbar-header{float:left}}.seed-csp4 .navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.seed-csp4 .navbar-collapse:before,.seed-csp4 .navbar-collapse:after{content:" ";display:table}.seed-csp4 .navbar-collapse:after{clear:both}.seed-csp4 .navbar-collapse:before,.seed-csp4 .navbar-collapse:after{content:" ";display:table}.seed-csp4 .navbar-collapse:after{clear:both}.seed-csp4 .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.seed-csp4 .navbar-collapse{width:auto;border-top:0;box-shadow:none}.seed-csp4 .navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.seed-csp4 .navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .seed-csp4 .navbar-collapse,.navbar-static-top .seed-csp4 .navbar-collapse,.navbar-fixed-bottom .seed-csp4 .navbar-collapse{padding-left:0;padding-right:0}}.seed-csp4 .container>.navbar-header,.seed-csp4 .container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.seed-csp4 .container>.navbar-header,.seed-csp4 .container>.navbar-collapse{margin-right:0;margin-left:0}}.seed-csp4 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.seed-csp4 .navbar-static-top{border-radius:0}}.seed-csp4 .navbar-fixed-top,.seed-csp4 .navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.seed-csp4 .navbar-fixed-top,.seed-csp4 .navbar-fixed-bottom{border-radius:0}}.seed-csp4 .navbar-fixed-top{top:0;border-width:0 0 1px}.seed-csp4 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.seed-csp4 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.seed-csp4 .navbar-brand:hover,.seed-csp4 .navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .seed-csp4 .navbar-brand{margin-left:-15px}}.seed-csp4 .navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.seed-csp4 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.seed-csp4 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.seed-csp4 .navbar-toggle{display:none}}.seed-csp4 .navbar-nav{margin:7.5px -15px}.seed-csp4 .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.seed-csp4 .navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.seed-csp4 .navbar-nav .open .dropdown-menu>li>a,.seed-csp4 .navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.seed-csp4 .navbar-nav .open .dropdown-menu>li>a{line-height:20px}.seed-csp4 .navbar-nav .open .dropdown-menu>li>a:hover,.seed-csp4 .navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.seed-csp4 .navbar-nav{float:left;margin:0}.seed-csp4 .navbar-nav>li{float:left}.seed-csp4 .navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.seed-csp4 .navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.seed-csp4 .navbar-left{float:left!important}.seed-csp4 .navbar-right{float:right!important}}.seed-csp4 .navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.seed-csp4 .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.seed-csp4 .navbar-form .form-control{display:inline-block}.seed-csp4 .navbar-form select.form-control{width:auto}.seed-csp4 .navbar-form .radio,.seed-csp4 .navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0}.seed-csp4 .navbar-form .radio input[type=radio],.seed-csp4 .navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}}@media (max-width:767px){.seed-csp4 .navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.seed-csp4 .navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.seed-csp4 .navbar-form.navbar-right:last-child{margin-right:-15px}}.seed-csp4 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.seed-csp4 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.seed-csp4 .navbar-nav.pull-right>li>.dropdown-menu,.seed-csp4 .navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0}.seed-csp4 .navbar-btn{margin-top:8px;margin-bottom:8px}.seed-csp4 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.seed-csp4 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.seed-csp4 .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.seed-csp4 .navbar-text{float:left;margin-left:15px;margin-right:15px}.seed-csp4 .navbar-text.navbar-right:last-child{margin-right:0}}.seed-csp4 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.seed-csp4 .navbar-default .navbar-brand{color:#777}.seed-csp4 .navbar-default .navbar-brand:hover,.seed-csp4 .navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.seed-csp4 .navbar-default .navbar-text{color:#777}.seed-csp4 .navbar-default .navbar-nav>li>a{color:#777}.seed-csp4 .navbar-default .navbar-nav>li>a:hover,.seed-csp4 .navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.seed-csp4 .navbar-default .navbar-nav>.active>a,.seed-csp4 .navbar-default .navbar-nav>.active>a:hover,.seed-csp4 .navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.seed-csp4 .navbar-default .navbar-nav>.disabled>a,.seed-csp4 .navbar-default .navbar-nav>.disabled>a:hover,.seed-csp4 .navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.seed-csp4 .navbar-default .navbar-toggle{border-color:#ddd}.seed-csp4 .navbar-default .navbar-toggle:hover,.seed-csp4 .navbar-default .navbar-toggle:focus{background-color:#ddd}.seed-csp4 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.seed-csp4 .navbar-default .navbar-collapse,.seed-csp4 .navbar-default .navbar-form{border-color:#e7e7e7}.seed-csp4 .navbar-default .navbar-nav>.open>a,.seed-csp4 .navbar-default .navbar-nav>.open>a:hover,.seed-csp4 .navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.seed-csp4 .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.seed-csp4 .navbar-default .navbar-link{color:#777}.seed-csp4 .navbar-default .navbar-link:hover{color:#333}.seed-csp4 .navbar-inverse{background-color:#222;border-color:#080808}.seed-csp4 .navbar-inverse .navbar-brand{color:#999}.seed-csp4 .navbar-inverse .navbar-brand:hover,.seed-csp4 .navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.seed-csp4 .navbar-inverse .navbar-text{color:#999}.seed-csp4 .navbar-inverse .navbar-nav>li>a{color:#999}.seed-csp4 .navbar-inverse .navbar-nav>li>a:hover,.seed-csp4 .navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.seed-csp4 .navbar-inverse .navbar-nav>.active>a,.seed-csp4 .navbar-inverse .navbar-nav>.active>a:hover,.seed-csp4 .navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.seed-csp4 .navbar-inverse .navbar-nav>.disabled>a,.seed-csp4 .navbar-inverse .navbar-nav>.disabled>a:hover,.seed-csp4 .navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.seed-csp4 .navbar-inverse .navbar-toggle{border-color:#333}.seed-csp4 .navbar-inverse .navbar-toggle:hover,.seed-csp4 .navbar-inverse .navbar-toggle:focus{background-color:#333}.seed-csp4 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.seed-csp4 .navbar-inverse .navbar-collapse,.seed-csp4 .navbar-inverse .navbar-form{border-color:#101010}.seed-csp4 .navbar-inverse .navbar-nav>.open>a,.seed-csp4 .navbar-inverse .navbar-nav>.open>a:hover,.seed-csp4 .navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.seed-csp4 .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.seed-csp4 .navbar-inverse .navbar-link{color:#999}.seed-csp4 .navbar-inverse .navbar-link:hover{color:#fff}.seed-csp4 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.seed-csp4 .breadcrumb>li{display:inline-block}.seed-csp4 .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.seed-csp4 .breadcrumb>.active{color:#999}.seed-csp4 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.seed-csp4 .pagination>li{display:inline}.seed-csp4 .pagination>li>a,.seed-csp4 .pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.seed-csp4 .pagination>li:first-child>a,.seed-csp4 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.seed-csp4 .pagination>li:last-child>a,.seed-csp4 .pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.seed-csp4 .pagination>li>a:hover,.seed-csp4 .pagination>li>span:hover,.seed-csp4 .pagination>li>a:focus,.seed-csp4 .pagination>li>span:focus{background-color:#eee}.seed-csp4 .pagination>.active>a,.seed-csp4 .pagination>.active>span,.seed-csp4 .pagination>.active>a:hover,.seed-csp4 .pagination>.active>span:hover,.seed-csp4 .pagination>.active>a:focus,.seed-csp4 .pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.seed-csp4 .pagination>.disabled>span,.seed-csp4 .pagination>.disabled>span:hover,.seed-csp4 .pagination>.disabled>span:focus,.seed-csp4 .pagination>.disabled>a,.seed-csp4 .pagination>.disabled>a:hover,.seed-csp4 .pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.seed-csp4 .pagination-lg>li>a,.seed-csp4 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.seed-csp4 .pagination-lg>li:first-child>a,.seed-csp4 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.seed-csp4 .pagination-lg>li:last-child>a,.seed-csp4 .pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.seed-csp4 .pagination-sm>li>a,.seed-csp4 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.seed-csp4 .pagination-sm>li:first-child>a,.seed-csp4 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.seed-csp4 .pagination-sm>li:last-child>a,.seed-csp4 .pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.seed-csp4 .pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.seed-csp4 .pager:before,.seed-csp4 .pager:after{content:" ";display:table}.seed-csp4 .pager:after{clear:both}.seed-csp4 .pager:before,.seed-csp4 .pager:after{content:" ";display:table}.seed-csp4 .pager:after{clear:both}.seed-csp4 .pager li{display:inline}.seed-csp4 .pager li>a,.seed-csp4 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.seed-csp4 .pager li>a:hover,.seed-csp4 .pager li>a:focus{text-decoration:none;background-color:#eee}.seed-csp4 .pager .next>a,.seed-csp4 .pager .next>span{float:right}.seed-csp4 .pager .previous>a,.seed-csp4 .pager .previous>span{float:left}.seed-csp4 .pager .disabled>a,.seed-csp4 .pager .disabled>a:hover,.seed-csp4 .pager .disabled>a:focus,.seed-csp4 .pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.seed-csp4 .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.seed-csp4 .label[href]:hover,.seed-csp4 .label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.seed-csp4 .label:empty{display:none}.btn .seed-csp4 .label{position:relative;top:-1px}.seed-csp4 .label-default{background-color:#999}.seed-csp4 .label-default[href]:hover,.seed-csp4 .label-default[href]:focus{background-color:gray}.seed-csp4 .label-primary{background-color:#428bca}.seed-csp4 .label-primary[href]:hover,.seed-csp4 .label-primary[href]:focus{background-color:#3071a9}.seed-csp4 .label-success{background-color:#5cb85c}.seed-csp4 .label-success[href]:hover,.seed-csp4 .label-success[href]:focus{background-color:#449d44}.seed-csp4 .label-info{background-color:#5bc0de}.seed-csp4 .label-info[href]:hover,.seed-csp4 .label-info[href]:focus{background-color:#31b0d5}.seed-csp4 .label-warning{background-color:#f0ad4e}.seed-csp4 .label-warning[href]:hover,.seed-csp4 .label-warning[href]:focus{background-color:#ec971f}.seed-csp4 .label-danger{background-color:#d9534f}.seed-csp4 .label-danger[href]:hover,.seed-csp4 .label-danger[href]:focus{background-color:#c9302c}.seed-csp4 .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.seed-csp4 .badge:empty{display:none}.btn .seed-csp4 .badge{position:relative;top:-1px}.seed-csp4 a.badge:hover,.seed-csp4 a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.seed-csp4 a.list-group-item.active>.badge,.seed-csp4 .nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.seed-csp4 .nav-pills>li>a>.badge{margin-left:3px}.seed-csp4 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.seed-csp4 .jumbotron h1,.seed-csp4 .jumbotron .h1{line-height:1;color:inherit}.seed-csp4 .jumbotron p{line-height:1.4}.container .seed-csp4 .jumbotron{border-radius:6px}.seed-csp4 .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.seed-csp4 .jumbotron{padding-top:48px;padding-bottom:48px}.container .seed-csp4 .jumbotron{padding-left:60px;padding-right:60px}.seed-csp4 .jumbotron h1,.seed-csp4 .jumbotron .h1{font-size:63px}}.seed-csp4 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.seed-csp4 .thumbnail>img,.seed-csp4 .thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}a.seed-csp4 .thumbnail:hover,a.seed-csp4 .thumbnail:focus,a.seed-csp4 .thumbnail.active{border-color:#428bca}.seed-csp4 .thumbnail .caption{padding:9px;color:#333}.seed-csp4 .alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.seed-csp4 .alert h4{margin-top:0;color:inherit}.seed-csp4 .alert .alert-link{font-weight:700}.seed-csp4 .alert>p,.seed-csp4 .alert>ul{margin-bottom:0}.seed-csp4 .alert>p+p{margin-top:5px}.seed-csp4 .alert-dismissable{padding-right:35px}.seed-csp4 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.seed-csp4 .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.seed-csp4 .alert-success hr{border-top-color:#c9e2b3}.seed-csp4 .alert-success .alert-link{color:#2b542c}.seed-csp4 .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.seed-csp4 .alert-info hr{border-top-color:#a6e1ec}.seed-csp4 .alert-info .alert-link{color:#245269}.seed-csp4 .alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.seed-csp4 .alert-warning hr{border-top-color:#f7e1b5}.seed-csp4 .alert-warning .alert-link{color:#66512c}.seed-csp4 .alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.seed-csp4 .alert-danger hr{border-top-color:#e4b9c0}.seed-csp4 .alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.seed-csp4 .progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.seed-csp4 .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.seed-csp4 .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.seed-csp4 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.seed-csp4 .progress-bar-success{background-color:#5cb85c}.progress-striped .seed-csp4 .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.seed-csp4 .progress-bar-info{background-color:#5bc0de}.progress-striped .seed-csp4 .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.seed-csp4 .progress-bar-warning{background-color:#f0ad4e}.progress-striped .seed-csp4 .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.seed-csp4 .progress-bar-danger{background-color:#d9534f}.progress-striped .seed-csp4 .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.seed-csp4 .media,.seed-csp4 .media-body{overflow:hidden;zoom:1}.seed-csp4 .media,.seed-csp4 .media .media{margin-top:15px}.seed-csp4 .media:first-child{margin-top:0}.seed-csp4 .media-object{display:block}.seed-csp4 .media-heading{margin:0 0 5px}.seed-csp4 .media>.pull-left{margin-right:10px}.seed-csp4 .media>.pull-right{margin-left:10px}.seed-csp4 .media-list{padding-left:0;list-style:none}.seed-csp4 .list-group{margin-bottom:20px;padding-left:0}.seed-csp4 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.seed-csp4 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.seed-csp4 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.seed-csp4 .list-group-item>.badge{float:right}.seed-csp4 .list-group-item>.badge+.badge{margin-right:5px}.seed-csp4 a.list-group-item{color:#555}.seed-csp4 a.list-group-item .list-group-item-heading{color:#333}.seed-csp4 a.list-group-item:hover,.seed-csp4 a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.seed-csp4 a.list-group-item.active,.seed-csp4 a.list-group-item.active:hover,.seed-csp4 a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.seed-csp4 a.list-group-item.active .list-group-item-heading,.seed-csp4 a.list-group-item.active:hover .list-group-item-heading,.seed-csp4 a.list-group-item.active:focus .list-group-item-heading{color:inherit}.seed-csp4 a.list-group-item.active .list-group-item-text,.seed-csp4 a.list-group-item.active:hover .list-group-item-text,.seed-csp4 a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.seed-csp4 .list-group-item-heading{margin-top:0;margin-bottom:5px}.seed-csp4 .list-group-item-text{margin-bottom:0;line-height:1.3}.seed-csp4 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.seed-csp4 .panel-body{padding:15px}.seed-csp4 .panel-body:before,.seed-csp4 .panel-body:after{content:" ";display:table}.seed-csp4 .panel-body:after{clear:both}.seed-csp4 .panel-body:before,.seed-csp4 .panel-body:after{content:" ";display:table}.seed-csp4 .panel-body:after{clear:both}.seed-csp4 .panel>.list-group{margin-bottom:0}.seed-csp4 .panel>.list-group .list-group-item{border-width:1px 0}.seed-csp4 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.seed-csp4 .panel>.list-group .list-group-item:last-child{border-bottom:0}.seed-csp4 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.seed-csp4 .panel>.table,.seed-csp4 .panel>.table-responsive>.table{margin-bottom:0}.seed-csp4 .panel>.panel-body+.table,.seed-csp4 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.seed-csp4 .panel>.table>tbody:first-child th,.seed-csp4 .panel>.table>tbody:first-child td{border-top:0}.seed-csp4 .panel>.table-bordered,.seed-csp4 .panel>.table-responsive>.table-bordered{border:0}.seed-csp4 .panel>.table-bordered>thead>tr>th:first-child,.seed-csp4 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.seed-csp4 .panel>.table-bordered>tbody>tr>th:first-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.seed-csp4 .panel>.table-bordered>tfoot>tr>th:first-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.seed-csp4 .panel>.table-bordered>thead>tr>td:first-child,.seed-csp4 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.seed-csp4 .panel>.table-bordered>tbody>tr>td:first-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.seed-csp4 .panel>.table-bordered>tfoot>tr>td:first-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.seed-csp4 .panel>.table-bordered>thead>tr>th:last-child,.seed-csp4 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.seed-csp4 .panel>.table-bordered>tbody>tr>th:last-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.seed-csp4 .panel>.table-bordered>tfoot>tr>th:last-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.seed-csp4 .panel>.table-bordered>thead>tr>td:last-child,.seed-csp4 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.seed-csp4 .panel>.table-bordered>tbody>tr>td:last-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.seed-csp4 .panel>.table-bordered>tfoot>tr>td:last-child,.seed-csp4 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.seed-csp4 .panel>.table-bordered>thead>tr:last-child>th,.seed-csp4 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.seed-csp4 .panel>.table-bordered>tbody>tr:last-child>th,.seed-csp4 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.seed-csp4 .panel>.table-bordered>tfoot>tr:last-child>th,.seed-csp4 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.seed-csp4 .panel>.table-bordered>thead>tr:last-child>td,.seed-csp4 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.seed-csp4 .panel>.table-bordered>tbody>tr:last-child>td,.seed-csp4 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.seed-csp4 .panel>.table-bordered>tfoot>tr:last-child>td,.seed-csp4 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.seed-csp4 .panel>.table-responsive{border:0;margin-bottom:0}.seed-csp4 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.seed-csp4 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.seed-csp4 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.seed-csp4 .panel-title>a{color:inherit}.seed-csp4 .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.seed-csp4 .panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.seed-csp4 .panel-group .panel+.panel{margin-top:5px}.seed-csp4 .panel-group .panel-heading{border-bottom:0}.seed-csp4 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.seed-csp4 .panel-group .panel-footer{border-top:0}.seed-csp4 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.seed-csp4 .panel-default{border-color:#ddd}.seed-csp4 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.seed-csp4 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.seed-csp4 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.seed-csp4 .panel-primary{border-color:#428bca}.seed-csp4 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.seed-csp4 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.seed-csp4 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.seed-csp4 .panel-success{border-color:#d6e9c6}.seed-csp4 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.seed-csp4 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.seed-csp4 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.seed-csp4 .panel-warning{border-color:#faebcc}.seed-csp4 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.seed-csp4 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.seed-csp4 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.seed-csp4 .panel-danger{border-color:#ebccd1}.seed-csp4 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.seed-csp4 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.seed-csp4 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.seed-csp4 .panel-info{border-color:#bce8f1}.seed-csp4 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.seed-csp4 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.seed-csp4 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.seed-csp4 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.seed-csp4 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.seed-csp4 .well-lg{padding:24px;border-radius:6px}.seed-csp4 .well-sm{padding:9px;border-radius:3px}.seed-csp4 .close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.seed-csp4 .close:hover,.seed-csp4 .close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.seed-csp4 .close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.seed-csp4 .modal-open{overflow:hidden}.seed-csp4 .modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040}.seed-csp4 .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.seed-csp4 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.seed-csp4 .modal-dialog{position:relative;width:auto;margin:10px;z-index:1050}.seed-csp4 .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.seed-csp4 .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.seed-csp4 .modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.seed-csp4 .modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.seed-csp4 .modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.428571429px}.seed-csp4 .modal-header .close{margin-top:-2px}.seed-csp4 .modal-title{margin:0;line-height:1.428571429}.seed-csp4 .modal-body{position:relative;padding:20px}.seed-csp4 .modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.seed-csp4 .modal-footer:before,.seed-csp4 .modal-footer:after{content:" ";display:table}.seed-csp4 .modal-footer:after{clear:both}.seed-csp4 .modal-footer:before,.seed-csp4 .modal-footer:after{content:" ";display:table}.seed-csp4 .modal-footer:after{clear:both}.seed-csp4 .modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.seed-csp4 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.seed-csp4 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.seed-csp4 .modal-dialog{width:600px;margin:30px auto}.seed-csp4 .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.seed-csp4 .tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.seed-csp4 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.seed-csp4 .tooltip.top{margin-top:-3px;padding:5px 0}.seed-csp4 .tooltip.right{margin-left:3px;padding:0 5px}.seed-csp4 .tooltip.bottom{margin-top:3px;padding:5px 0}.seed-csp4 .tooltip.left{margin-left:-3px;padding:0 5px}.seed-csp4 .tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.seed-csp4 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.seed-csp4 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.seed-csp4 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.seed-csp4 .tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.seed-csp4 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.seed-csp4 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.seed-csp4 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.seed-csp4 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.seed-csp4 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.seed-csp4 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.seed-csp4 .popover.top{margin-top:-10px}.seed-csp4 .popover.right{margin-left:10px}.seed-csp4 .popover.bottom{margin-top:10px}.seed-csp4 .popover.left{margin-left:-10px}.seed-csp4 .popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.seed-csp4 .popover-content{padding:9px 14px}.seed-csp4 .popover .arrow,.seed-csp4 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.seed-csp4 .popover .arrow{border-width:11px}.seed-csp4 .popover .arrow:after{border-width:10px;content:""}.seed-csp4 .popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.seed-csp4 .popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.seed-csp4 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.seed-csp4 .popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.seed-csp4 .popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.seed-csp4 .popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.seed-csp4 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.seed-csp4 .popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.seed-csp4 .carousel{position:relative}.seed-csp4 .carousel-inner{position:relative;overflow:hidden;width:100%}.seed-csp4 .carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.seed-csp4 .carousel-inner>.item>img,.seed-csp4 .carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}.seed-csp4 .carousel-inner>.active,.seed-csp4 .carousel-inner>.next,.seed-csp4 .carousel-inner>.prev{display:block}.seed-csp4 .carousel-inner>.active{left:0}.seed-csp4 .carousel-inner>.next,.seed-csp4 .carousel-inner>.prev{position:absolute;top:0;width:100%}.seed-csp4 .carousel-inner>.next{left:100%}.seed-csp4 .carousel-inner>.prev{left:-100%}.seed-csp4 .carousel-inner>.next.left,.seed-csp4 .carousel-inner>.prev.right{left:0}.seed-csp4 .carousel-inner>.active.left{left:-100%}.seed-csp4 .carousel-inner>.active.right{left:100%}.seed-csp4 .carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.seed-csp4 .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.seed-csp4 .carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.seed-csp4 .carousel-control:hover,.seed-csp4 .carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.seed-csp4 .carousel-control .icon-prev,.seed-csp4 .carousel-control .icon-next,.seed-csp4 .carousel-control .glyphicon-chevron-left,.seed-csp4 .carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.seed-csp4 .carousel-control .icon-prev,.seed-csp4 .carousel-control .glyphicon-chevron-left{left:50%}.seed-csp4 .carousel-control .icon-next,.seed-csp4 .carousel-control .glyphicon-chevron-right{right:50%}.seed-csp4 .carousel-control .icon-prev,.seed-csp4 .carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.seed-csp4 .carousel-control .icon-prev:before{content:'\2039'}.seed-csp4 .carousel-control .icon-next:before{content:'\203a'}.seed-csp4 .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.seed-csp4 .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.seed-csp4 .carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.seed-csp4 .carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.seed-csp4 .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.seed-csp4 .carousel-control .glyphicons-chevron-left,.seed-csp4 .carousel-control .glyphicons-chevron-right,.seed-csp4 .carousel-control .icon-prev,.seed-csp4 .carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.seed-csp4 .carousel-caption{left:20%;right:20%;padding-bottom:30px}.seed-csp4 .carousel-indicators{bottom:20px}}.seed-csp4 .clearfix:before,.seed-csp4 .clearfix:after{content:" ";display:table}.seed-csp4 .clearfix:after{clear:both}.seed-csp4 .center-block{display:block;margin-left:auto;margin-right:auto}.seed-csp4 .pull-right{float:right!important}.seed-csp4 .pull-left{float:left!important}.seed-csp4 .hide{display:none!important}.seed-csp4 .show{display:block!important}.seed-csp4 .invisible{visibility:hidden}.seed-csp4 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.seed-csp4 .hidden{display:none!important;visibility:hidden!important}.seed-csp4 .affix{position:fixed}@-ms-viewport{width:device-width}.seed-csp4 .visible-xs,tr.seed-csp4 .visible-xs,th.seed-csp4 .visible-xs,td.seed-csp4 .visible-xs{display:none!important}@media (max-width:767px){.seed-csp4 .visible-xs{display:block!important}table.seed-csp4 .visible-xs{display:table}tr.seed-csp4 .visible-xs{display:table-row!important}th.seed-csp4 .visible-xs,td.seed-csp4 .visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .visible-xs.visible-sm{display:block!important}table.seed-csp4 .visible-xs.visible-sm{display:table}tr.seed-csp4 .visible-xs.visible-sm{display:table-row!important}th.seed-csp4 .visible-xs.visible-sm,td.seed-csp4 .visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .visible-xs.visible-md{display:block!important}table.seed-csp4 .visible-xs.visible-md{display:table}tr.seed-csp4 .visible-xs.visible-md{display:table-row!important}th.seed-csp4 .visible-xs.visible-md,td.seed-csp4 .visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.seed-csp4 .visible-xs.visible-lg{display:block!important}table.seed-csp4 .visible-xs.visible-lg{display:table}tr.seed-csp4 .visible-xs.visible-lg{display:table-row!important}th.seed-csp4 .visible-xs.visible-lg,td.seed-csp4 .visible-xs.visible-lg{display:table-cell!important}}.seed-csp4 .visible-sm,tr.seed-csp4 .visible-sm,th.seed-csp4 .visible-sm,td.seed-csp4 .visible-sm{display:none!important}@media (max-width:767px){.seed-csp4 .visible-sm.visible-xs{display:block!important}table.seed-csp4 .visible-sm.visible-xs{display:table}tr.seed-csp4 .visible-sm.visible-xs{display:table-row!important}th.seed-csp4 .visible-sm.visible-xs,td.seed-csp4 .visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .visible-sm{display:block!important}table.seed-csp4 .visible-sm{display:table}tr.seed-csp4 .visible-sm{display:table-row!important}th.seed-csp4 .visible-sm,td.seed-csp4 .visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .visible-sm.visible-md{display:block!important}table.seed-csp4 .visible-sm.visible-md{display:table}tr.seed-csp4 .visible-sm.visible-md{display:table-row!important}th.seed-csp4 .visible-sm.visible-md,td.seed-csp4 .visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.seed-csp4 .visible-sm.visible-lg{display:block!important}table.seed-csp4 .visible-sm.visible-lg{display:table}tr.seed-csp4 .visible-sm.visible-lg{display:table-row!important}th.seed-csp4 .visible-sm.visible-lg,td.seed-csp4 .visible-sm.visible-lg{display:table-cell!important}}.seed-csp4 .visible-md,tr.seed-csp4 .visible-md,th.seed-csp4 .visible-md,td.seed-csp4 .visible-md{display:none!important}@media (max-width:767px){.seed-csp4 .visible-md.visible-xs{display:block!important}table.seed-csp4 .visible-md.visible-xs{display:table}tr.seed-csp4 .visible-md.visible-xs{display:table-row!important}th.seed-csp4 .visible-md.visible-xs,td.seed-csp4 .visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .visible-md.visible-sm{display:block!important}table.seed-csp4 .visible-md.visible-sm{display:table}tr.seed-csp4 .visible-md.visible-sm{display:table-row!important}th.seed-csp4 .visible-md.visible-sm,td.seed-csp4 .visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .visible-md{display:block!important}table.seed-csp4 .visible-md{display:table}tr.seed-csp4 .visible-md{display:table-row!important}th.seed-csp4 .visible-md,td.seed-csp4 .visible-md{display:table-cell!important}}@media (min-width:1200px){.seed-csp4 .visible-md.visible-lg{display:block!important}table.seed-csp4 .visible-md.visible-lg{display:table}tr.seed-csp4 .visible-md.visible-lg{display:table-row!important}th.seed-csp4 .visible-md.visible-lg,td.seed-csp4 .visible-md.visible-lg{display:table-cell!important}}.seed-csp4 .visible-lg,tr.seed-csp4 .visible-lg,th.seed-csp4 .visible-lg,td.seed-csp4 .visible-lg{display:none!important}@media (max-width:767px){.seed-csp4 .visible-lg.visible-xs{display:block!important}table.seed-csp4 .visible-lg.visible-xs{display:table}tr.seed-csp4 .visible-lg.visible-xs{display:table-row!important}th.seed-csp4 .visible-lg.visible-xs,td.seed-csp4 .visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .visible-lg.visible-sm{display:block!important}table.seed-csp4 .visible-lg.visible-sm{display:table}tr.seed-csp4 .visible-lg.visible-sm{display:table-row!important}th.seed-csp4 .visible-lg.visible-sm,td.seed-csp4 .visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .visible-lg.visible-md{display:block!important}table.seed-csp4 .visible-lg.visible-md{display:table}tr.seed-csp4 .visible-lg.visible-md{display:table-row!important}th.seed-csp4 .visible-lg.visible-md,td.seed-csp4 .visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.seed-csp4 .visible-lg{display:block!important}table.seed-csp4 .visible-lg{display:table}tr.seed-csp4 .visible-lg{display:table-row!important}th.seed-csp4 .visible-lg,td.seed-csp4 .visible-lg{display:table-cell!important}}.seed-csp4 .hidden-xs{display:block!important}table.seed-csp4 .hidden-xs{display:table}tr.seed-csp4 .hidden-xs{display:table-row!important}th.seed-csp4 .hidden-xs,td.seed-csp4 .hidden-xs{display:table-cell!important}@media (max-width:767px){.seed-csp4 .hidden-xs,tr.seed-csp4 .hidden-xs,th.seed-csp4 .hidden-xs,td.seed-csp4 .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .hidden-xs.hidden-sm,tr.seed-csp4 .hidden-xs.hidden-sm,th.seed-csp4 .hidden-xs.hidden-sm,td.seed-csp4 .hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .hidden-xs.hidden-md,tr.seed-csp4 .hidden-xs.hidden-md,th.seed-csp4 .hidden-xs.hidden-md,td.seed-csp4 .hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.seed-csp4 .hidden-xs.hidden-lg,tr.seed-csp4 .hidden-xs.hidden-lg,th.seed-csp4 .hidden-xs.hidden-lg,td.seed-csp4 .hidden-xs.hidden-lg{display:none!important}}.seed-csp4 .hidden-sm{display:block!important}table.seed-csp4 .hidden-sm{display:table}tr.seed-csp4 .hidden-sm{display:table-row!important}th.seed-csp4 .hidden-sm,td.seed-csp4 .hidden-sm{display:table-cell!important}@media (max-width:767px){.seed-csp4 .hidden-sm.hidden-xs,tr.seed-csp4 .hidden-sm.hidden-xs,th.seed-csp4 .hidden-sm.hidden-xs,td.seed-csp4 .hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .hidden-sm,tr.seed-csp4 .hidden-sm,th.seed-csp4 .hidden-sm,td.seed-csp4 .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .hidden-sm.hidden-md,tr.seed-csp4 .hidden-sm.hidden-md,th.seed-csp4 .hidden-sm.hidden-md,td.seed-csp4 .hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.seed-csp4 .hidden-sm.hidden-lg,tr.seed-csp4 .hidden-sm.hidden-lg,th.seed-csp4 .hidden-sm.hidden-lg,td.seed-csp4 .hidden-sm.hidden-lg{display:none!important}}.seed-csp4 .hidden-md{display:block!important}table.seed-csp4 .hidden-md{display:table}tr.seed-csp4 .hidden-md{display:table-row!important}th.seed-csp4 .hidden-md,td.seed-csp4 .hidden-md{display:table-cell!important}@media (max-width:767px){.seed-csp4 .hidden-md.hidden-xs,tr.seed-csp4 .hidden-md.hidden-xs,th.seed-csp4 .hidden-md.hidden-xs,td.seed-csp4 .hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .hidden-md.hidden-sm,tr.seed-csp4 .hidden-md.hidden-sm,th.seed-csp4 .hidden-md.hidden-sm,td.seed-csp4 .hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .hidden-md,tr.seed-csp4 .hidden-md,th.seed-csp4 .hidden-md,td.seed-csp4 .hidden-md{display:none!important}}@media (min-width:1200px){.seed-csp4 .hidden-md.hidden-lg,tr.seed-csp4 .hidden-md.hidden-lg,th.seed-csp4 .hidden-md.hidden-lg,td.seed-csp4 .hidden-md.hidden-lg{display:none!important}}.seed-csp4 .hidden-lg{display:block!important}table.seed-csp4 .hidden-lg{display:table}tr.seed-csp4 .hidden-lg{display:table-row!important}th.seed-csp4 .hidden-lg,td.seed-csp4 .hidden-lg{display:table-cell!important}@media (max-width:767px){.seed-csp4 .hidden-lg.hidden-xs,tr.seed-csp4 .hidden-lg.hidden-xs,th.seed-csp4 .hidden-lg.hidden-xs,td.seed-csp4 .hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.seed-csp4 .hidden-lg.hidden-sm,tr.seed-csp4 .hidden-lg.hidden-sm,th.seed-csp4 .hidden-lg.hidden-sm,td.seed-csp4 .hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.seed-csp4 .hidden-lg.hidden-md,tr.seed-csp4 .hidden-lg.hidden-md,th.seed-csp4 .hidden-lg.hidden-md,td.seed-csp4 .hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.seed-csp4 .hidden-lg,tr.seed-csp4 .hidden-lg,th.seed-csp4 .hidden-lg,td.seed-csp4 .hidden-lg{display:none!important}}.seed-csp4 .visible-print,tr.seed-csp4 .visible-print,th.seed-csp4 .visible-print,td.seed-csp4 .visible-print{display:none!important}@media print{.seed-csp4 .visible-print{display:block!important}table.seed-csp4 .visible-print{display:table}tr.seed-csp4 .visible-print{display:table-row!important}th.seed-csp4 .visible-print,td.seed-csp4 .visible-print{display:table-cell!important}.seed-csp4 .hidden-print,tr.seed-csp4 .hidden-print,th.seed-csp4 .hidden-print,td.seed-csp4 .hidden-print{display:none!important}}
themes/default/bootstrap/js/bootstrap.js ADDED
@@ -0,0 +1,2006 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.0.3 (http://getbootstrap.com)
3
+ * Copyright 2013 Twitter, Inc.
4
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+
7
+ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery") }
8
+
9
+ /* ========================================================================
10
+ * Bootstrap: transition.js v3.0.3
11
+ * http://getbootstrap.com/javascript/#transitions
12
+ * ========================================================================
13
+ * Copyright 2013 Twitter, Inc.
14
+ *
15
+ * Licensed under the Apache License, Version 2.0 (the "License");
16
+ * you may not use this file except in compliance with the License.
17
+ * You may obtain a copy of the License at
18
+ *
19
+ * http://www.apache.org/licenses/LICENSE-2.0
20
+ *
21
+ * Unless required by applicable law or agreed to in writing, software
22
+ * distributed under the License is distributed on an "AS IS" BASIS,
23
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ * See the License for the specific language governing permissions and
25
+ * limitations under the License.
26
+ * ======================================================================== */
27
+
28
+
29
+ +function ($) { "use strict";
30
+
31
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
32
+ // ============================================================
33
+
34
+ function transitionEnd() {
35
+ var el = document.createElement('bootstrap')
36
+
37
+ var transEndEventNames = {
38
+ 'WebkitTransition' : 'webkitTransitionEnd'
39
+ , 'MozTransition' : 'transitionend'
40
+ , 'OTransition' : 'oTransitionEnd otransitionend'
41
+ , 'transition' : 'transitionend'
42
+ }
43
+
44
+ for (var name in transEndEventNames) {
45
+ if (el.style[name] !== undefined) {
46
+ return { end: transEndEventNames[name] }
47
+ }
48
+ }
49
+ }
50
+
51
+ // http://blog.alexmaccaw.com/css-transitions
52
+ $.fn.emulateTransitionEnd = function (duration) {
53
+ var called = false, $el = this
54
+ $(this).one($.support.transition.end, function () { called = true })
55
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
56
+ setTimeout(callback, duration)
57
+ return this
58
+ }
59
+
60
+ $(function () {
61
+ $.support.transition = transitionEnd()
62
+ })
63
+
64
+ }(jQuery);
65
+
66
+ /* ========================================================================
67
+ * Bootstrap: alert.js v3.0.3
68
+ * http://getbootstrap.com/javascript/#alerts
69
+ * ========================================================================
70
+ * Copyright 2013 Twitter, Inc.
71
+ *
72
+ * Licensed under the Apache License, Version 2.0 (the "License");
73
+ * you may not use this file except in compliance with the License.
74
+ * You may obtain a copy of the License at
75
+ *
76
+ * http://www.apache.org/licenses/LICENSE-2.0
77
+ *
78
+ * Unless required by applicable law or agreed to in writing, software
79
+ * distributed under the License is distributed on an "AS IS" BASIS,
80
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
81
+ * See the License for the specific language governing permissions and
82
+ * limitations under the License.
83
+ * ======================================================================== */
84
+
85
+
86
+ +function ($) { "use strict";
87
+
88
+ // ALERT CLASS DEFINITION
89
+ // ======================
90
+
91
+ var dismiss = '[data-dismiss="alert"]'
92
+ var Alert = function (el) {
93
+ $(el).on('click', dismiss, this.close)
94
+ }
95
+
96
+ Alert.prototype.close = function (e) {
97
+ var $this = $(this)
98
+ var selector = $this.attr('data-target')
99
+
100
+ if (!selector) {
101
+ selector = $this.attr('href')
102
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
103
+ }
104
+
105
+ var $parent = $(selector)
106
+
107
+ if (e) e.preventDefault()
108
+
109
+ if (!$parent.length) {
110
+ $parent = $this.hasClass('alert') ? $this : $this.parent()
111
+ }
112
+
113
+ $parent.trigger(e = $.Event('close.bs.alert'))
114
+
115
+ if (e.isDefaultPrevented()) return
116
+
117
+ $parent.removeClass('in')
118
+
119
+ function removeElement() {
120
+ $parent.trigger('closed.bs.alert').remove()
121
+ }
122
+
123
+ $.support.transition && $parent.hasClass('fade') ?
124
+ $parent
125
+ .one($.support.transition.end, removeElement)
126
+ .emulateTransitionEnd(150) :
127
+ removeElement()
128
+ }
129
+
130
+
131
+ // ALERT PLUGIN DEFINITION
132
+ // =======================
133
+
134
+ var old = $.fn.alert
135
+
136
+ $.fn.alert = function (option) {
137
+ return this.each(function () {
138
+ var $this = $(this)
139
+ var data = $this.data('bs.alert')
140
+
141
+ if (!data) $this.data('bs.alert', (data = new Alert(this)))
142
+ if (typeof option == 'string') data[option].call($this)
143
+ })
144
+ }
145
+
146
+ $.fn.alert.Constructor = Alert
147
+
148
+
149
+ // ALERT NO CONFLICT
150
+ // =================
151
+
152
+ $.fn.alert.noConflict = function () {
153
+ $.fn.alert = old
154
+ return this
155
+ }
156
+
157
+
158
+ // ALERT DATA-API
159
+ // ==============
160
+
161
+ $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
162
+
163
+ }(jQuery);
164
+
165
+ /* ========================================================================
166
+ * Bootstrap: button.js v3.0.3
167
+ * http://getbootstrap.com/javascript/#buttons
168
+ * ========================================================================
169
+ * Copyright 2013 Twitter, Inc.
170
+ *
171
+ * Licensed under the Apache License, Version 2.0 (the "License");
172
+ * you may not use this file except in compliance with the License.
173
+ * You may obtain a copy of the License at
174
+ *
175
+ * http://www.apache.org/licenses/LICENSE-2.0
176
+ *
177
+ * Unless required by applicable law or agreed to in writing, software
178
+ * distributed under the License is distributed on an "AS IS" BASIS,
179
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
180
+ * See the License for the specific language governing permissions and
181
+ * limitations under the License.
182
+ * ======================================================================== */
183
+
184
+
185
+ +function ($) { "use strict";
186
+
187
+ // BUTTON PUBLIC CLASS DEFINITION
188
+ // ==============================
189
+
190
+ var Button = function (element, options) {
191
+ this.$element = $(element)
192
+ this.options = $.extend({}, Button.DEFAULTS, options)
193
+ }
194
+
195
+ Button.DEFAULTS = {
196
+ loadingText: 'loading...'
197
+ }
198
+
199
+ Button.prototype.setState = function (state) {
200
+ var d = 'disabled'
201
+ var $el = this.$element
202
+ var val = $el.is('input') ? 'val' : 'html'
203
+ var data = $el.data()
204
+
205
+ state = state + 'Text'
206
+
207
+ if (!data.resetText) $el.data('resetText', $el[val]())
208
+
209
+ $el[val](data[state] || this.options[state])
210
+
211
+ // push to event loop to allow forms to submit
212
+ setTimeout(function () {
213
+ state == 'loadingText' ?
214
+ $el.addClass(d).attr(d, d) :
215
+ $el.removeClass(d).removeAttr(d);
216
+ }, 0)
217
+ }
218
+
219
+ Button.prototype.toggle = function () {
220
+ var $parent = this.$element.closest('[data-toggle="buttons"]')
221
+ var changed = true
222
+
223
+ if ($parent.length) {
224
+ var $input = this.$element.find('input')
225
+ if ($input.prop('type') === 'radio') {
226
+ // see if clicking on current one
227
+ if ($input.prop('checked') && this.$element.hasClass('active'))
228
+ changed = false
229
+ else
230
+ $parent.find('.active').removeClass('active')
231
+ }
232
+ if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
233
+ }
234
+
235
+ if (changed) this.$element.toggleClass('active')
236
+ }
237
+
238
+
239
+ // BUTTON PLUGIN DEFINITION
240
+ // ========================
241
+
242
+ var old = $.fn.button
243
+
244
+ $.fn.button = function (option) {
245
+ return this.each(function () {
246
+ var $this = $(this)
247
+ var data = $this.data('bs.button')
248
+ var options = typeof option == 'object' && option
249
+
250
+ if (!data) $this.data('bs.button', (data = new Button(this, options)))
251
+
252
+ if (option == 'toggle') data.toggle()
253
+ else if (option) data.setState(option)
254
+ })
255
+ }
256
+
257
+ $.fn.button.Constructor = Button
258
+
259
+
260
+ // BUTTON NO CONFLICT
261
+ // ==================
262
+
263
+ $.fn.button.noConflict = function () {
264
+ $.fn.button = old
265
+ return this
266
+ }
267
+
268
+
269
+ // BUTTON DATA-API
270
+ // ===============
271
+
272
+ $(document).on('click.bs.button.data-api', '[data-toggle^=button]', function (e) {
273
+ var $btn = $(e.target)
274
+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
275
+ $btn.button('toggle')
276
+ e.preventDefault()
277
+ })
278
+
279
+ }(jQuery);
280
+
281
+ /* ========================================================================
282
+ * Bootstrap: carousel.js v3.0.3
283
+ * http://getbootstrap.com/javascript/#carousel
284
+ * ========================================================================
285
+ * Copyright 2013 Twitter, Inc.
286
+ *
287
+ * Licensed under the Apache License, Version 2.0 (the "License");
288
+ * you may not use this file except in compliance with the License.
289
+ * You may obtain a copy of the License at
290
+ *
291
+ * http://www.apache.org/licenses/LICENSE-2.0
292
+ *
293
+ * Unless required by applicable law or agreed to in writing, software
294
+ * distributed under the License is distributed on an "AS IS" BASIS,
295
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
296
+ * See the License for the specific language governing permissions and
297
+ * limitations under the License.
298
+ * ======================================================================== */
299
+
300
+
301
+ +function ($) { "use strict";
302
+
303
+ // CAROUSEL CLASS DEFINITION
304
+ // =========================
305
+
306
+ var Carousel = function (element, options) {
307
+ this.$element = $(element)
308
+ this.$indicators = this.$element.find('.carousel-indicators')
309
+ this.options = options
310
+ this.paused =
311
+ this.sliding =
312
+ this.interval =
313
+ this.$active =
314
+ this.$items = null
315
+
316
+ this.options.pause == 'hover' && this.$element
317
+ .on('mouseenter', $.proxy(this.pause, this))
318
+ .on('mouseleave', $.proxy(this.cycle, this))
319
+ }
320
+
321
+ Carousel.DEFAULTS = {
322
+ interval: 5000
323
+ , pause: 'hover'
324
+ , wrap: true
325
+ }
326
+
327
+ Carousel.prototype.cycle = function (e) {
328
+ e || (this.paused = false)
329
+
330
+ this.interval && clearInterval(this.interval)
331
+
332
+ this.options.interval
333
+ && !this.paused
334
+ && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
335
+
336
+ return this
337
+ }
338
+
339
+ Carousel.prototype.getActiveIndex = function () {
340
+ this.$active = this.$element.find('.item.active')
341
+ this.$items = this.$active.parent().children()
342
+
343
+ return this.$items.index(this.$active)
344
+ }
345
+
346
+ Carousel.prototype.to = function (pos) {
347
+ var that = this
348
+ var activeIndex = this.getActiveIndex()
349
+
350
+ if (pos > (this.$items.length - 1) || pos < 0) return
351
+
352
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
353
+ if (activeIndex == pos) return this.pause().cycle()
354
+
355
+ return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
356
+ }
357
+
358
+ Carousel.prototype.pause = function (e) {
359
+ e || (this.paused = true)
360
+
361
+ if (this.$element.find('.next, .prev').length && $.support.transition.end) {
362
+ this.$element.trigger($.support.transition.end)
363
+ this.cycle(true)
364
+ }
365
+
366
+ this.interval = clearInterval(this.interval)
367
+
368
+ return this
369
+ }
370
+
371
+ Carousel.prototype.next = function () {
372
+ if (this.sliding) return
373
+ return this.slide('next')
374
+ }
375
+
376
+ Carousel.prototype.prev = function () {
377
+ if (this.sliding) return
378
+ return this.slide('prev')
379
+ }
380
+
381
+ Carousel.prototype.slide = function (type, next) {
382
+ var $active = this.$element.find('.item.active')
383
+ var $next = next || $active[type]()
384
+ var isCycling = this.interval
385
+ var direction = type == 'next' ? 'left' : 'right'
386
+ var fallback = type == 'next' ? 'first' : 'last'
387
+ var that = this
388
+
389
+ if (!$next.length) {
390
+ if (!this.options.wrap) return
391
+ $next = this.$element.find('.item')[fallback]()
392
+ }
393
+
394
+ this.sliding = true
395
+
396
+ isCycling && this.pause()
397
+
398
+ var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
399
+
400
+ if ($next.hasClass('active')) return
401
+
402
+ if (this.$indicators.length) {
403
+ this.$indicators.find('.active').removeClass('active')
404
+ this.$element.one('slid.bs.carousel', function () {
405
+ var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
406
+ $nextIndicator && $nextIndicator.addClass('active')
407
+ })
408
+ }
409
+
410
+ if ($.support.transition && this.$element.hasClass('slide')) {
411
+ this.$element.trigger(e)
412
+ if (e.isDefaultPrevented()) return
413
+ $next.addClass(type)
414
+ $next[0].offsetWidth // force reflow
415
+ $active.addClass(direction)
416
+ $next.addClass(direction)
417
+ $active
418
+ .one($.support.transition.end, function () {
419
+ $next.removeClass([type, direction].join(' ')).addClass('active')
420
+ $active.removeClass(['active', direction].join(' '))
421
+ that.sliding = false
422
+ setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
423
+ })
424
+ .emulateTransitionEnd(600)
425
+ } else {
426
+ this.$element.trigger(e)
427
+ if (e.isDefaultPrevented()) return
428
+ $active.removeClass('active')
429
+ $next.addClass('active')
430
+ this.sliding = false
431
+ this.$element.trigger('slid.bs.carousel')
432
+ }
433
+
434
+ isCycling && this.cycle()
435
+
436
+ return this
437
+ }
438
+
439
+
440
+ // CAROUSEL PLUGIN DEFINITION
441
+ // ==========================
442
+
443
+ var old = $.fn.carousel
444
+
445
+ $.fn.carousel = function (option) {
446
+ return this.each(function () {
447
+ var $this = $(this)
448
+ var data = $this.data('bs.carousel')
449
+ var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
450
+ var action = typeof option == 'string' ? option : options.slide
451
+
452
+ if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
453
+ if (typeof option == 'number') data.to(option)
454
+ else if (action) data[action]()
455
+ else if (options.interval) data.pause().cycle()
456
+ })
457
+ }
458
+
459
+ $.fn.carousel.Constructor = Carousel
460
+
461
+
462
+ // CAROUSEL NO CONFLICT
463
+ // ====================
464
+
465
+ $.fn.carousel.noConflict = function () {
466
+ $.fn.carousel = old
467
+ return this
468
+ }
469
+
470
+
471
+ // CAROUSEL DATA-API
472
+ // =================
473
+
474
+ $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
475
+ var $this = $(this), href
476
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
477
+ var options = $.extend({}, $target.data(), $this.data())
478
+ var slideIndex = $this.attr('data-slide-to')
479
+ if (slideIndex) options.interval = false
480
+
481
+ $target.carousel(options)
482
+
483
+ if (slideIndex = $this.attr('data-slide-to')) {
484
+ $target.data('bs.carousel').to(slideIndex)
485
+ }
486
+
487
+ e.preventDefault()
488
+ })
489
+
490
+ $(window).on('load', function () {
491
+ $('[data-ride="carousel"]').each(function () {
492
+ var $carousel = $(this)
493
+ $carousel.carousel($carousel.data())
494
+ })
495
+ })
496
+
497
+ }(jQuery);
498
+
499
+ /* ========================================================================
500
+ * Bootstrap: collapse.js v3.0.3
501
+ * http://getbootstrap.com/javascript/#collapse
502
+ * ========================================================================
503
+ * Copyright 2013 Twitter, Inc.
504
+ *
505
+ * Licensed under the Apache License, Version 2.0 (the "License");
506
+ * you may not use this file except in compliance with the License.
507
+ * You may obtain a copy of the License at
508
+ *
509
+ * http://www.apache.org/licenses/LICENSE-2.0
510
+ *
511
+ * Unless required by applicable law or agreed to in writing, software
512
+ * distributed under the License is distributed on an "AS IS" BASIS,
513
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
514
+ * See the License for the specific language governing permissions and
515
+ * limitations under the License.
516
+ * ======================================================================== */
517
+
518
+
519
+ +function ($) { "use strict";
520
+
521
+ // COLLAPSE PUBLIC CLASS DEFINITION
522
+ // ================================
523
+
524
+ var Collapse = function (element, options) {
525
+ this.$element = $(element)
526
+ this.options = $.extend({}, Collapse.DEFAULTS, options)
527
+ this.transitioning = null
528
+
529
+ if (this.options.parent) this.$parent = $(this.options.parent)
530
+ if (this.options.toggle) this.toggle()
531
+ }
532
+
533
+ Collapse.DEFAULTS = {
534
+ toggle: true
535
+ }
536
+
537
+ Collapse.prototype.dimension = function () {
538
+ var hasWidth = this.$element.hasClass('width')
539
+ return hasWidth ? 'width' : 'height'
540
+ }
541
+
542
+ Collapse.prototype.show = function () {
543
+ if (this.transitioning || this.$element.hasClass('in')) return
544
+
545
+ var startEvent = $.Event('show.bs.collapse')
546
+ this.$element.trigger(startEvent)
547
+ if (startEvent.isDefaultPrevented()) return
548
+
549
+ var actives = this.$parent && this.$parent.find('> .panel > .in')
550
+
551
+ if (actives && actives.length) {
552
+ var hasData = actives.data('bs.collapse')
553
+ if (hasData && hasData.transitioning) return
554
+ actives.collapse('hide')
555
+ hasData || actives.data('bs.collapse', null)
556
+ }
557
+
558
+ var dimension = this.dimension()
559
+
560
+ this.$element
561
+ .removeClass('collapse')
562
+ .addClass('collapsing')
563
+ [dimension](0)
564
+
565
+ this.transitioning = 1
566
+
567
+ var complete = function () {
568
+ this.$element
569
+ .removeClass('collapsing')
570
+ .addClass('in')
571
+ [dimension]('auto')
572
+ this.transitioning = 0
573
+ this.$element.trigger('shown.bs.collapse')
574
+ }
575
+
576
+ if (!$.support.transition) return complete.call(this)
577
+
578
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'))
579
+
580
+ this.$element
581
+ .one($.support.transition.end, $.proxy(complete, this))
582
+ .emulateTransitionEnd(350)
583
+ [dimension](this.$element[0][scrollSize])
584
+ }
585
+
586
+ Collapse.prototype.hide = function () {
587
+ if (this.transitioning || !this.$element.hasClass('in')) return
588
+
589
+ var startEvent = $.Event('hide.bs.collapse')
590
+ this.$element.trigger(startEvent)
591
+ if (startEvent.isDefaultPrevented()) return
592
+
593
+ var dimension = this.dimension()
594
+
595
+ this.$element
596
+ [dimension](this.$element[dimension]())
597
+ [0].offsetHeight
598
+
599
+ this.$element
600
+ .addClass('collapsing')
601
+ .removeClass('collapse')
602
+ .removeClass('in')
603
+
604
+ this.transitioning = 1
605
+
606
+ var complete = function () {
607
+ this.transitioning = 0
608
+ this.$element
609
+ .trigger('hidden.bs.collapse')
610
+ .removeClass('collapsing')
611
+ .addClass('collapse')
612
+ }
613
+
614
+ if (!$.support.transition) return complete.call(this)
615
+
616
+ this.$element
617
+ [dimension](0)
618
+ .one($.support.transition.end, $.proxy(complete, this))
619
+ .emulateTransitionEnd(350)
620
+ }
621
+
622
+ Collapse.prototype.toggle = function () {
623
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
624
+ }
625
+
626
+
627
+ // COLLAPSE PLUGIN DEFINITION
628
+ // ==========================
629
+
630
+ var old = $.fn.collapse
631
+
632
+ $.fn.collapse = function (option) {
633
+ return this.each(function () {
634
+ var $this = $(this)
635
+ var data = $this.data('bs.collapse')
636
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
637
+
638
+ if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
639
+ if (typeof option == 'string') data[option]()
640
+ })
641
+ }
642
+
643
+ $.fn.collapse.Constructor = Collapse
644
+
645
+
646
+ // COLLAPSE NO CONFLICT
647
+ // ====================
648
+
649
+ $.fn.collapse.noConflict = function () {
650
+ $.fn.collapse = old
651
+ return this
652
+ }
653
+
654
+
655
+ // COLLAPSE DATA-API
656
+ // =================
657
+
658
+ $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
659
+ var $this = $(this), href
660
+ var target = $this.attr('data-target')
661
+ || e.preventDefault()
662
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
663
+ var $target = $(target)
664
+ var data = $target.data('bs.collapse')
665
+ var option = data ? 'toggle' : $this.data()
666
+ var parent = $this.attr('data-parent')
667
+ var $parent = parent && $(parent)
668
+
669
+ if (!data || !data.transitioning) {
670
+ if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
671
+ $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
672
+ }
673
+
674
+ $target.collapse(option)
675
+ })
676
+
677
+ }(jQuery);
678
+
679
+ /* ========================================================================
680
+ * Bootstrap: dropdown.js v3.0.3
681
+ * http://getbootstrap.com/javascript/#dropdowns
682
+ * ========================================================================
683
+ * Copyright 2013 Twitter, Inc.
684
+ *
685
+ * Licensed under the Apache License, Version 2.0 (the "License");
686
+ * you may not use this file except in compliance with the License.
687
+ * You may obtain a copy of the License at
688
+ *
689
+ * http://www.apache.org/licenses/LICENSE-2.0
690
+ *
691
+ * Unless required by applicable law or agreed to in writing, software
692
+ * distributed under the License is distributed on an "AS IS" BASIS,
693
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
694
+ * See the License for the specific language governing permissions and
695
+ * limitations under the License.
696
+ * ======================================================================== */
697
+
698
+
699
+ +function ($) { "use strict";
700
+
701
+ // DROPDOWN CLASS DEFINITION
702
+ // =========================
703
+
704
+ var backdrop = '.dropdown-backdrop'
705
+ var toggle = '[data-toggle=dropdown]'
706
+ var Dropdown = function (element) {
707
+ $(element).on('click.bs.dropdown', this.toggle)
708
+ }
709
+
710
+ Dropdown.prototype.toggle = function (e) {
711
+ var $this = $(this)
712
+
713
+ if ($this.is('.disabled, :disabled')) return
714
+
715
+ var $parent = getParent($this)
716
+ var isActive = $parent.hasClass('open')
717
+
718
+ clearMenus()
719
+
720
+ if (!isActive) {
721
+ if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
722
+ // if mobile we use a backdrop because click events don't delegate
723
+ $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
724
+ }
725
+
726
+ $parent.trigger(e = $.Event('show.bs.dropdown'))
727
+
728
+ if (e.isDefaultPrevented()) return
729
+
730
+ $parent
731
+ .toggleClass('open')
732
+ .trigger('shown.bs.dropdown')
733
+
734
+ $this.focus()
735
+ }
736
+
737
+ return false
738
+ }
739
+
740
+ Dropdown.prototype.keydown = function (e) {
741
+ if (!/(38|40|27)/.test(e.keyCode)) return
742
+
743
+ var $this = $(this)
744
+
745
+ e.preventDefault()
746
+ e.stopPropagation()
747
+
748
+ if ($this.is('.disabled, :disabled')) return
749
+
750
+ var $parent = getParent($this)
751
+ var isActive = $parent.hasClass('open')
752
+
753
+ if (!isActive || (isActive && e.keyCode == 27)) {
754
+ if (e.which == 27) $parent.find(toggle).focus()
755
+ return $this.click()
756
+ }
757
+
758
+ var $items = $('[role=menu] li:not(.divider):visible a', $parent)
759
+
760
+ if (!$items.length) return
761
+
762
+ var index = $items.index($items.filter(':focus'))
763
+
764
+ if (e.keyCode == 38 && index > 0) index-- // up
765
+ if (e.keyCode == 40 && index < $items.length - 1) index++ // down
766
+ if (!~index) index=0
767
+
768
+ $items.eq(index).focus()
769
+ }
770
+
771
+ function clearMenus() {
772
+ $(backdrop).remove()
773
+ $(toggle).each(function (e) {
774
+ var $parent = getParent($(this))
775
+ if (!$parent.hasClass('open')) return
776
+ $parent.trigger(e = $.Event('hide.bs.dropdown'))
777
+ if (e.isDefaultPrevented()) return
778
+ $parent.removeClass('open').trigger('hidden.bs.dropdown')
779
+ })
780
+ }
781
+
782
+ function getParent($this) {
783
+ var selector = $this.attr('data-target')
784
+
785
+ if (!selector) {
786
+ selector = $this.attr('href')
787
+ selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
788
+ }
789
+
790
+ var $parent = selector && $(selector)
791
+
792
+ return $parent && $parent.length ? $parent : $this.parent()
793
+ }
794
+
795
+
796
+ // DROPDOWN PLUGIN DEFINITION
797
+ // ==========================
798
+
799
+ var old = $.fn.dropdown
800
+
801
+ $.fn.dropdown = function (option) {
802
+ return this.each(function () {
803
+ var $this = $(this)
804
+ var data = $this.data('bs.dropdown')
805
+
806
+ if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
807
+ if (typeof option == 'string') data[option].call($this)
808
+ })
809
+ }
810
+
811
+ $.fn.dropdown.Constructor = Dropdown
812
+
813
+
814
+ // DROPDOWN NO CONFLICT
815
+ // ====================
816
+
817
+ $.fn.dropdown.noConflict = function () {
818
+ $.fn.dropdown = old
819
+ return this
820
+ }
821
+
822
+
823
+ // APPLY TO STANDARD DROPDOWN ELEMENTS
824
+ // ===================================
825
+
826
+ $(document)
827
+ .on('click.bs.dropdown.data-api', clearMenus)
828
+ .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
829
+ .on('click.bs.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
830
+ .on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
831
+
832
+ }(jQuery);
833
+
834
+ /* ========================================================================
835
+ * Bootstrap: modal.js v3.0.3
836
+ * http://getbootstrap.com/javascript/#modals
837
+ * ========================================================================
838
+ * Copyright 2013 Twitter, Inc.
839
+ *
840
+ * Licensed under the Apache License, Version 2.0 (the "License");
841
+ * you may not use this file except in compliance with the License.
842
+ * You may obtain a copy of the License at
843
+ *
844
+ * http://www.apache.org/licenses/LICENSE-2.0
845
+ *
846
+ * Unless required by applicable law or agreed to in writing, software
847
+ * distributed under the License is distributed on an "AS IS" BASIS,
848
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
849
+ * See the License for the specific language governing permissions and
850
+ * limitations under the License.
851
+ * ======================================================================== */
852
+
853
+
854
+ +function ($) { "use strict";
855
+
856
+ // MODAL CLASS DEFINITION
857
+ // ======================
858
+
859
+ var Modal = function (element, options) {
860
+ this.options = options
861
+ this.$element = $(element)
862
+ this.$backdrop =
863
+ this.isShown = null
864
+
865
+ if (this.options.remote) this.$element.load(this.options.remote)
866
+ }
867
+
868
+ Modal.DEFAULTS = {
869
+ backdrop: true
870
+ , keyboard: true
871
+ , show: true
872
+ }
873
+
874
+ Modal.prototype.toggle = function (_relatedTarget) {
875
+ return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
876
+ }
877
+
878
+ Modal.prototype.show = function (_relatedTarget) {
879
+ var that = this
880
+ var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
881
+
882
+ this.$element.trigger(e)
883
+
884
+ if (this.isShown || e.isDefaultPrevented()) return
885
+
886
+ this.isShown = true
887
+
888
+ this.escape()
889
+
890
+ this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
891
+
892
+ this.backdrop(function () {
893
+ var transition = $.support.transition && that.$element.hasClass('fade')
894
+
895
+ if (!that.$element.parent().length) {
896
+ that.$element.appendTo(document.body) // don't move modals dom position
897
+ }
898
+
899
+ that.$element.show()
900
+
901
+ if (transition) {
902
+ that.$element[0].offsetWidth // force reflow
903
+ }
904
+
905
+ that.$element
906
+ .addClass('in')
907
+ .attr('aria-hidden', false)
908
+
909
+ that.enforceFocus()
910
+
911
+ var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
912
+
913
+ transition ?
914
+ that.$element.find('.modal-dialog') // wait for modal to slide in
915
+ .one($.support.transition.end, function () {
916
+ that.$element.focus().trigger(e)
917
+ })
918
+ .emulateTransitionEnd(300) :
919
+ that.$element.focus().trigger(e)
920
+ })
921
+ }
922
+
923
+ Modal.prototype.hide = function (e) {
924
+ if (e) e.preventDefault()
925
+
926
+ e = $.Event('hide.bs.modal')
927
+
928
+ this.$element.trigger(e)
929
+
930
+ if (!this.isShown || e.isDefaultPrevented()) return
931
+
932
+ this.isShown = false
933
+
934
+ this.escape()
935
+
936
+ $(document).off('focusin.bs.modal')
937
+
938
+ this.$element
939
+ .removeClass('in')
940
+ .attr('aria-hidden', true)
941
+ .off('click.dismiss.modal')
942
+
943
+ $.support.transition && this.$element.hasClass('fade') ?
944
+ this.$element
945
+ .one($.support.transition.end, $.proxy(this.hideModal, this))
946
+ .emulateTransitionEnd(300) :
947
+ this.hideModal()
948
+ }
949
+
950
+ Modal.prototype.enforceFocus = function () {
951
+ $(document)
952
+ .off('focusin.bs.modal') // guard against infinite focus loop
953
+ .on('focusin.bs.modal', $.proxy(function (e) {
954
+ if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
955
+ this.$element.focus()
956
+ }
957
+ }, this))
958
+ }
959
+
960
+ Modal.prototype.escape = function () {
961
+ if (this.isShown && this.options.keyboard) {
962
+ this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
963
+ e.which == 27 && this.hide()
964
+ }, this))
965
+ } else if (!this.isShown) {
966
+ this.$element.off('keyup.dismiss.bs.modal')
967
+ }
968
+ }
969
+
970
+ Modal.prototype.hideModal = function () {
971
+ var that = this
972
+ this.$element.hide()
973
+ this.backdrop(function () {
974
+ that.removeBackdrop()
975
+ that.$element.trigger('hidden.bs.modal')
976
+ })
977
+ }
978
+
979
+ Modal.prototype.removeBackdrop = function () {
980
+ this.$backdrop && this.$backdrop.remove()
981
+ this.$backdrop = null
982
+ }
983
+
984
+ Modal.prototype.backdrop = function (callback) {
985
+ var that = this
986
+ var animate = this.$element.hasClass('fade') ? 'fade' : ''
987
+
988
+ if (this.isShown && this.options.backdrop) {
989
+ var doAnimate = $.support.transition && animate
990
+
991
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
992
+ .appendTo(document.body)
993
+
994
+ this.$element.on('click.dismiss.modal', $.proxy(function (e) {
995
+ if (e.target !== e.currentTarget) return
996
+ this.options.backdrop == 'static'
997
+ ? this.$element[0].focus.call(this.$element[0])
998
+ : this.hide.call(this)
999
+ }, this))
1000
+
1001
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
1002
+
1003
+ this.$backdrop.addClass('in')
1004
+
1005
+ if (!callback) return
1006
+
1007
+ doAnimate ?
1008
+ this.$backdrop
1009
+ .one($.support.transition.end, callback)
1010
+ .emulateTransitionEnd(150) :
1011
+ callback()
1012
+
1013
+ } else if (!this.isShown && this.$backdrop) {
1014
+ this.$backdrop.removeClass('in')
1015
+
1016
+ $.support.transition && this.$element.hasClass('fade')?
1017
+ this.$backdrop
1018
+ .one($.support.transition.end, callback)
1019
+ .emulateTransitionEnd(150) :
1020
+ callback()
1021
+
1022
+ } else if (callback) {
1023
+ callback()
1024
+ }
1025
+ }
1026
+
1027
+
1028
+ // MODAL PLUGIN DEFINITION
1029
+ // =======================
1030
+
1031
+ var old = $.fn.modal
1032
+
1033
+ $.fn.modal = function (option, _relatedTarget) {
1034
+ return this.each(function () {
1035
+ var $this = $(this)
1036
+ var data = $this.data('bs.modal')
1037
+ var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1038
+
1039
+ if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1040
+ if (typeof option == 'string') data[option](_relatedTarget)
1041
+ else if (options.show) data.show(_relatedTarget)
1042
+ })
1043
+ }
1044
+
1045
+ $.fn.modal.Constructor = Modal
1046
+
1047
+
1048
+ // MODAL NO CONFLICT
1049
+ // =================
1050
+
1051
+ $.fn.modal.noConflict = function () {
1052
+ $.fn.modal = old
1053
+ return this
1054
+ }
1055
+
1056
+
1057
+ // MODAL DATA-API
1058
+ // ==============
1059
+
1060
+ $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1061
+ var $this = $(this)
1062
+ var href = $this.attr('href')
1063
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1064
+ var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1065
+
1066
+ e.preventDefault()
1067
+
1068
+ $target
1069
+ .modal(option, this)
1070
+ .one('hide', function () {
1071
+ $this.is(':visible') && $this.focus()
1072
+ })
1073
+ })
1074
+
1075
+ $(document)
1076
+ .on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
1077
+ .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
1078
+
1079
+ }(jQuery);
1080
+
1081
+ /* ========================================================================
1082
+ * Bootstrap: tooltip.js v3.0.3
1083
+ * http://getbootstrap.com/javascript/#tooltip
1084
+ * Inspired by the original jQuery.tipsy by Jason Frame
1085
+ * ========================================================================
1086
+ * Copyright 2013 Twitter, Inc.
1087
+ *
1088
+ * Licensed under the Apache License, Version 2.0 (the "License");
1089
+ * you may not use this file except in compliance with the License.
1090
+ * You may obtain a copy of the License at
1091
+ *
1092
+ * http://www.apache.org/licenses/LICENSE-2.0
1093
+ *
1094
+ * Unless required by applicable law or agreed to in writing, software
1095
+ * distributed under the License is distributed on an "AS IS" BASIS,
1096
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1097
+ * See the License for the specific language governing permissions and
1098
+ * limitations under the License.
1099
+ * ======================================================================== */
1100
+
1101
+
1102
+ +function ($) { "use strict";
1103
+
1104
+ // TOOLTIP PUBLIC CLASS DEFINITION
1105
+ // ===============================
1106
+
1107
+ var Tooltip = function (element, options) {
1108
+ this.type =
1109
+ this.options =
1110
+ this.enabled =
1111
+ this.timeout =
1112
+ this.hoverState =
1113
+ this.$element = null
1114
+
1115
+ this.init('tooltip', element, options)
1116
+ }
1117
+
1118
+ Tooltip.DEFAULTS = {
1119
+ animation: true
1120
+ , placement: 'top'
1121
+ , selector: false
1122
+ , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1123
+ , trigger: 'hover focus'
1124
+ , title: ''
1125
+ , delay: 0
1126
+ , html: false
1127
+ , container: false
1128
+ }
1129
+
1130
+ Tooltip.prototype.init = function (type, element, options) {
1131
+ this.enabled = true
1132
+ this.type = type
1133
+ this.$element = $(element)
1134
+ this.options = this.getOptions(options)
1135
+
1136
+ var triggers = this.options.trigger.split(' ')
1137
+
1138
+ for (var i = triggers.length; i--;) {
1139
+ var trigger = triggers[i]
1140
+
1141
+ if (trigger == 'click') {
1142
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1143
+ } else if (trigger != 'manual') {
1144
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1145
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1146
+
1147
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1148
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1149
+ }
1150
+ }
1151
+
1152
+ this.options.selector ?
1153
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1154
+ this.fixTitle()
1155
+ }
1156
+
1157
+ Tooltip.prototype.getDefaults = function () {
1158
+ return Tooltip.DEFAULTS
1159
+ }
1160
+
1161
+ Tooltip.prototype.getOptions = function (options) {
1162
+ options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1163
+
1164
+ if (options.delay && typeof options.delay == 'number') {
1165
+ options.delay = {
1166
+ show: options.delay
1167
+ , hide: options.delay
1168
+ }
1169
+ }
1170
+
1171
+ return options
1172
+ }
1173
+
1174
+ Tooltip.prototype.getDelegateOptions = function () {
1175
+ var options = {}
1176
+ var defaults = this.getDefaults()
1177
+
1178
+ this._options && $.each(this._options, function (key, value) {
1179
+ if (defaults[key] != value) options[key] = value
1180
+ })
1181
+
1182
+ return options
1183
+ }
1184
+
1185
+ Tooltip.prototype.enter = function (obj) {
1186
+ var self = obj instanceof this.constructor ?
1187
+ obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1188
+
1189
+ clearTimeout(self.timeout)
1190
+
1191
+ self.hoverState = 'in'
1192
+
1193
+ if (!self.options.delay || !self.options.delay.show) return self.show()
1194
+
1195
+ self.timeout = setTimeout(function () {
1196
+ if (self.hoverState == 'in') self.show()
1197
+ }, self.options.delay.show)
1198
+ }
1199
+
1200
+ Tooltip.prototype.leave = function (obj) {
1201
+ var self = obj instanceof this.constructor ?
1202
+ obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1203
+
1204
+ clearTimeout(self.timeout)
1205
+
1206
+ self.hoverState = 'out'
1207
+
1208
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
1209
+
1210
+ self.timeout = setTimeout(function () {
1211
+ if (self.hoverState == 'out') self.hide()
1212
+ }, self.options.delay.hide)
1213
+ }
1214
+
1215
+ Tooltip.prototype.show = function () {
1216
+ var e = $.Event('show.bs.'+ this.type)
1217
+
1218
+ if (this.hasContent() && this.enabled) {
1219
+ this.$element.trigger(e)
1220
+
1221
+ if (e.isDefaultPrevented()) return
1222
+
1223
+ var $tip = this.tip()
1224
+
1225
+ this.setContent()
1226
+
1227
+ if (this.options.animation) $tip.addClass('fade')
1228
+
1229
+ var placement = typeof this.options.placement == 'function' ?
1230
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
1231
+ this.options.placement
1232
+
1233
+ var autoToken = /\s?auto?\s?/i
1234
+ var autoPlace = autoToken.test(placement)
1235
+ if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1236
+
1237
+ $tip
1238
+ .detach()
1239
+ .css({ top: 0, left: 0, display: 'block' })
1240
+ .addClass(placement)
1241
+
1242
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1243
+
1244
+ var pos = this.getPosition()
1245
+ var actualWidth = $tip[0].offsetWidth
1246
+ var actualHeight = $tip[0].offsetHeight
1247
+
1248
+ if (autoPlace) {
1249
+ var $parent = this.$element.parent()
1250
+
1251
+ var orgPlacement = placement
1252
+ var docScroll = document.documentElement.scrollTop || document.body.scrollTop
1253
+ var parentWidth = this.options.container == 'body' ? window.innerWidth : $parent.outerWidth()
1254
+ var parentHeight = this.options.container == 'body' ? window.innerHeight : $parent.outerHeight()
1255
+ var parentLeft = this.options.container == 'body' ? 0 : $parent.offset().left
1256
+
1257
+ placement = placement == 'bottom' && pos.top + pos.height + actualHeight - docScroll > parentHeight ? 'top' :
1258
+ placement == 'top' && pos.top - docScroll - actualHeight < 0 ? 'bottom' :
1259
+ placement == 'right' && pos.right + actualWidth > parentWidth ? 'left' :
1260
+ placement == 'left' && pos.left - actualWidth < parentLeft ? 'right' :
1261
+ placement
1262
+
1263
+ $tip
1264
+ .removeClass(orgPlacement)
1265
+ .addClass(placement)
1266
+ }
1267
+
1268
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1269
+
1270
+ this.applyPlacement(calculatedOffset, placement)
1271
+ this.$element.trigger('shown.bs.' + this.type)
1272
+ }
1273
+ }
1274
+
1275
+ Tooltip.prototype.applyPlacement = function(offset, placement) {
1276
+ var replace
1277
+ var $tip = this.tip()
1278
+ var width = $tip[0].offsetWidth
1279
+ var height = $tip[0].offsetHeight
1280
+
1281
+ // manually read margins because getBoundingClientRect includes difference
1282
+ var marginTop = parseInt($tip.css('margin-top'), 10)
1283
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
1284
+
1285
+ // we must check for NaN for ie 8/9
1286
+ if (isNaN(marginTop)) marginTop = 0
1287
+ if (isNaN(marginLeft)) marginLeft = 0
1288
+
1289
+ offset.top = offset.top + marginTop
1290
+ offset.left = offset.left + marginLeft
1291
+
1292
+ $tip
1293
+ .offset(offset)
1294
+ .addClass('in')
1295
+
1296
+ // check to see if placing tip in new offset caused the tip to resize itself
1297
+ var actualWidth = $tip[0].offsetWidth
1298
+ var actualHeight = $tip[0].offsetHeight
1299
+
1300
+ if (placement == 'top' && actualHeight != height) {
1301
+ replace = true
1302
+ offset.top = offset.top + height - actualHeight
1303
+ }
1304
+
1305
+ if (/bottom|top/.test(placement)) {
1306
+ var delta = 0
1307
+
1308
+ if (offset.left < 0) {
1309
+ delta = offset.left * -2
1310
+ offset.left = 0
1311
+
1312
+ $tip.offset(offset)
1313
+
1314
+ actualWidth = $tip[0].offsetWidth
1315
+ actualHeight = $tip[0].offsetHeight
1316
+ }
1317
+
1318
+ this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
1319
+ } else {
1320
+ this.replaceArrow(actualHeight - height, actualHeight, 'top')
1321
+ }
1322
+
1323
+ if (replace) $tip.offset(offset)
1324
+ }
1325
+
1326
+ Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
1327
+ this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
1328
+ }
1329
+
1330
+ Tooltip.prototype.setContent = function () {
1331
+ var $tip = this.tip()
1332
+ var title = this.getTitle()
1333
+
1334
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1335
+ $tip.removeClass('fade in top bottom left right')
1336
+ }
1337
+
1338
+ Tooltip.prototype.hide = function () {
1339
+ var that = this
1340
+ var $tip = this.tip()
1341
+ var e = $.Event('hide.bs.' + this.type)
1342
+
1343
+ function complete() {
1344
+ if (that.hoverState != 'in') $tip.detach()
1345
+ }
1346
+
1347
+ this.$element.trigger(e)
1348
+
1349
+ if (e.isDefaultPrevented()) return
1350
+
1351
+ $tip.removeClass('in')
1352
+
1353
+ $.support.transition && this.$tip.hasClass('fade') ?
1354
+ $tip
1355
+ .one($.support.transition.end, complete)
1356
+ .emulateTransitionEnd(150) :
1357
+ complete()
1358
+
1359
+ this.$element.trigger('hidden.bs.' + this.type)
1360
+
1361
+ return this
1362
+ }
1363
+
1364
+ Tooltip.prototype.fixTitle = function () {
1365
+ var $e = this.$element
1366
+ if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
1367
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1368
+ }
1369
+ }
1370
+
1371
+ Tooltip.prototype.hasContent = function () {
1372
+ return this.getTitle()
1373
+ }
1374
+
1375
+ Tooltip.prototype.getPosition = function () {
1376
+ var el = this.$element[0]
1377
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
1378
+ width: el.offsetWidth
1379
+ , height: el.offsetHeight
1380
+ }, this.$element.offset())
1381
+ }
1382
+
1383
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1384
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1385
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1386
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1387
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1388
+ }
1389
+
1390
+ Tooltip.prototype.getTitle = function () {
1391
+ var title
1392
+ var $e = this.$element
1393
+ var o = this.options
1394
+
1395
+ title = $e.attr('data-original-title')
1396
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1397
+
1398
+ return title
1399
+ }
1400
+
1401
+ Tooltip.prototype.tip = function () {
1402
+ return this.$tip = this.$tip || $(this.options.template)
1403
+ }
1404
+
1405
+ Tooltip.prototype.arrow = function () {
1406
+ return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
1407
+ }
1408
+
1409
+ Tooltip.prototype.validate = function () {
1410
+ if (!this.$element[0].parentNode) {
1411
+ this.hide()
1412
+ this.$element = null
1413
+ this.options = null
1414
+ }
1415
+ }
1416
+
1417
+ Tooltip.prototype.enable = function () {
1418
+ this.enabled = true
1419
+ }
1420
+
1421
+ Tooltip.prototype.disable = function () {
1422
+ this.enabled = false
1423
+ }
1424
+
1425
+ Tooltip.prototype.toggleEnabled = function () {
1426
+ this.enabled = !this.enabled
1427
+ }
1428
+
1429
+ Tooltip.prototype.toggle = function (e) {
1430
+ var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
1431
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1432
+ }
1433
+
1434
+ Tooltip.prototype.destroy = function () {
1435
+ this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
1436
+ }
1437
+
1438
+
1439
+ // TOOLTIP PLUGIN DEFINITION
1440
+ // =========================
1441
+
1442
+ var old = $.fn.tooltip
1443
+
1444
+ $.fn.tooltip = function (option) {
1445
+ return this.each(function () {
1446
+ var $this = $(this)
1447
+ var data = $this.data('bs.tooltip')
1448
+ var options = typeof option == 'object' && option
1449
+
1450
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1451
+ if (typeof option == 'string') data[option]()
1452
+ })
1453
+ }
1454
+
1455
+ $.fn.tooltip.Constructor = Tooltip
1456
+
1457
+
1458
+ // TOOLTIP NO CONFLICT
1459
+ // ===================
1460
+
1461
+ $.fn.tooltip.noConflict = function () {
1462
+ $.fn.tooltip = old
1463
+ return this
1464
+ }
1465
+
1466
+ }(jQuery);
1467
+
1468
+ /* ========================================================================
1469
+ * Bootstrap: popover.js v3.0.3
1470
+ * http://getbootstrap.com/javascript/#popovers
1471
+ * ========================================================================
1472
+ * Copyright 2013 Twitter, Inc.
1473
+ *
1474
+ * Licensed under the Apache License, Version 2.0 (the "License");
1475
+ * you may not use this file except in compliance with the License.
1476
+ * You may obtain a copy of the License at
1477
+ *
1478
+ * http://www.apache.org/licenses/LICENSE-2.0
1479
+ *
1480
+ * Unless required by applicable law or agreed to in writing, software
1481
+ * distributed under the License is distributed on an "AS IS" BASIS,
1482
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1483
+ * See the License for the specific language governing permissions and
1484
+ * limitations under the License.
1485
+ * ======================================================================== */
1486
+
1487
+
1488
+ +function ($) { "use strict";
1489
+
1490
+ // POPOVER PUBLIC CLASS DEFINITION
1491
+ // ===============================
1492
+
1493
+ var Popover = function (element, options) {
1494
+ this.init('popover', element, options)
1495
+ }
1496
+
1497
+ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1498
+
1499
+ Popover.DEFAULTS = $.extend({} , $.fn.tooltip.Constructor.DEFAULTS, {
1500
+ placement: 'right'
1501
+ , trigger: 'click'
1502
+ , content: ''
1503
+ , template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1504
+ })
1505
+
1506
+
1507
+ // NOTE: POPOVER EXTENDS tooltip.js
1508
+ // ================================
1509
+
1510
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1511
+
1512
+ Popover.prototype.constructor = Popover
1513
+
1514
+ Popover.prototype.getDefaults = function () {
1515
+ return Popover.DEFAULTS
1516
+ }
1517
+
1518
+ Popover.prototype.setContent = function () {
1519
+ var $tip = this.tip()
1520
+ var title = this.getTitle()
1521
+ var content = this.getContent()
1522
+
1523
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1524
+ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
1525
+
1526
+ $tip.removeClass('fade top bottom left right in')
1527
+
1528
+ // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1529
+ // this manually by checking the contents.
1530
+ if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1531
+ }
1532
+
1533
+ Popover.prototype.hasContent = function () {
1534
+ return this.getTitle() || this.getContent()
1535
+ }
1536
+
1537
+ Popover.prototype.getContent = function () {
1538
+ var $e = this.$element
1539
+ var o = this.options
1540
+
1541
+ return $e.attr('data-content')
1542
+ || (typeof o.content == 'function' ?
1543
+ o.content.call($e[0]) :
1544
+ o.content)
1545
+ }
1546
+
1547
+ Popover.prototype.arrow = function () {
1548
+ return this.$arrow = this.$arrow || this.tip().find('.arrow')
1549
+ }
1550
+
1551
+ Popover.prototype.tip = function () {
1552
+ if (!this.$tip) this.$tip = $(this.options.template)
1553
+ return this.$tip
1554
+ }
1555
+
1556
+
1557
+ // POPOVER PLUGIN DEFINITION
1558
+ // =========================
1559
+
1560
+ var old = $.fn.popover
1561
+
1562
+ $.fn.popover = function (option) {
1563
+ return this.each(function () {
1564
+ var $this = $(this)
1565
+ var data = $this.data('bs.popover')
1566
+ var options = typeof option == 'object' && option
1567
+
1568
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1569
+ if (typeof option == 'string') data[option]()
1570
+ })
1571
+ }
1572
+
1573
+ $.fn.popover.Constructor = Popover
1574
+
1575
+
1576
+ // POPOVER NO CONFLICT
1577
+ // ===================
1578
+
1579
+ $.fn.popover.noConflict = function () {
1580
+ $.fn.popover = old
1581
+ return this
1582
+ }
1583
+
1584
+ }(jQuery);
1585
+
1586
+ /* ========================================================================
1587
+ * Bootstrap: scrollspy.js v3.0.3
1588
+ * http://getbootstrap.com/javascript/#scrollspy
1589
+ * ========================================================================
1590
+ * Copyright 2013 Twitter, Inc.
1591
+ *
1592
+ * Licensed under the Apache License, Version 2.0 (the "License");
1593
+ * you may not use this file except in compliance with the License.
1594
+ * You may obtain a copy of the License at
1595
+ *
1596
+ * http://www.apache.org/licenses/LICENSE-2.0
1597
+ *
1598
+ * Unless required by applicable law or agreed to in writing, software
1599
+ * distributed under the License is distributed on an "AS IS" BASIS,
1600
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1601
+ * See the License for the specific language governing permissions and
1602
+ * limitations under the License.
1603
+ * ======================================================================== */
1604
+
1605
+
1606
+ +function ($) { "use strict";
1607
+
1608
+ // SCROLLSPY CLASS DEFINITION
1609
+ // ==========================
1610
+
1611
+ function ScrollSpy(element, options) {
1612
+ var href
1613
+ var process = $.proxy(this.process, this)
1614
+
1615
+ this.$element = $(element).is('body') ? $(window) : $(element)
1616
+ this.$body = $('body')
1617
+ this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', process)
1618
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1619
+ this.selector = (this.options.target
1620
+ || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
1621
+ || '') + ' .nav li > a'
1622
+ this.offsets = $([])
1623
+ this.targets = $([])
1624
+ this.activeTarget = null
1625
+
1626
+ this.refresh()
1627
+ this.process()
1628
+ }
1629
+
1630
+ ScrollSpy.DEFAULTS = {
1631
+ offset: 10
1632
+ }
1633
+
1634
+ ScrollSpy.prototype.refresh = function () {
1635
+ var offsetMethod = this.$element[0] == window ? 'offset' : 'position'
1636
+
1637
+ this.offsets = $([])
1638
+ this.targets = $([])
1639
+
1640
+ var self = this
1641
+ var $targets = this.$body
1642
+ .find(this.selector)
1643
+ .map(function () {
1644
+ var $el = $(this)
1645
+ var href = $el.data('target') || $el.attr('href')
1646
+ var $href = /^#\w/.test(href) && $(href)
1647
+
1648
+ return ($href
1649
+ && $href.length
1650
+ && [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
1651
+ })
1652
+ .sort(function (a, b) { return a[0] - b[0] })
1653
+ .each(function () {
1654
+ self.offsets.push(this[0])
1655
+ self.targets.push(this[1])
1656
+ })
1657
+ }
1658
+
1659
+ ScrollSpy.prototype.process = function () {
1660
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1661
+ var scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
1662
+ var maxScroll = scrollHeight - this.$scrollElement.height()
1663
+ var offsets = this.offsets
1664
+ var targets = this.targets
1665
+ var activeTarget = this.activeTarget
1666
+ var i
1667
+
1668
+ if (scrollTop >= maxScroll) {
1669
+ return activeTarget != (i = targets.last()[0]) && this.activate(i)
1670
+ }
1671
+
1672
+ for (i = offsets.length; i--;) {
1673
+ activeTarget != targets[i]
1674
+ && scrollTop >= offsets[i]
1675
+ && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1676
+ && this.activate( targets[i] )
1677
+ }
1678
+ }
1679
+
1680
+ ScrollSpy.prototype.activate = function (target) {
1681
+ this.activeTarget = target
1682
+
1683
+ $(this.selector)
1684
+ .parents('.active')
1685
+ .removeClass('active')
1686
+
1687
+ var selector = this.selector
1688
+ + '[data-target="' + target + '"],'
1689
+ + this.selector + '[href="' + target + '"]'
1690
+
1691
+ var active = $(selector)
1692
+ .parents('li')
1693
+ .addClass('active')
1694
+
1695
+ if (active.parent('.dropdown-menu').length) {
1696
+ active = active
1697
+ .closest('li.dropdown')
1698
+ .addClass('active')
1699
+ }
1700
+
1701
+ active.trigger('activate.bs.scrollspy')
1702
+ }
1703
+
1704
+
1705
+ // SCROLLSPY PLUGIN DEFINITION
1706
+ // ===========================
1707
+
1708
+ var old = $.fn.scrollspy
1709
+
1710
+ $.fn.scrollspy = function (option) {
1711
+ return this.each(function () {
1712
+ var $this = $(this)
1713
+ var data = $this.data('bs.scrollspy')
1714
+ var options = typeof option == 'object' && option
1715
+
1716
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1717
+ if (typeof option == 'string') data[option]()
1718
+ })
1719
+ }
1720
+
1721
+ $.fn.scrollspy.Constructor = ScrollSpy
1722
+
1723
+
1724
+ // SCROLLSPY NO CONFLICT
1725
+ // =====================
1726
+
1727
+ $.fn.scrollspy.noConflict = function () {
1728
+ $.fn.scrollspy = old
1729
+ return this
1730
+ }
1731
+
1732
+
1733
+ // SCROLLSPY DATA-API
1734
+ // ==================
1735
+
1736
+ $(window).on('load', function () {
1737
+ $('[data-spy="scroll"]').each(function () {
1738
+ var $spy = $(this)
1739
+ $spy.scrollspy($spy.data())
1740
+ })
1741
+ })
1742
+
1743
+ }(jQuery);
1744
+
1745
+ /* ========================================================================
1746
+ * Bootstrap: tab.js v3.0.3
1747
+ * http://getbootstrap.com/javascript/#tabs
1748
+ * ========================================================================
1749
+ * Copyright 2013 Twitter, Inc.
1750
+ *
1751
+ * Licensed under the Apache License, Version 2.0 (the "License");
1752
+ * you may not use this file except in compliance with the License.
1753
+ * You may obtain a copy of the License at
1754
+ *
1755
+ * http://www.apache.org/licenses/LICENSE-2.0
1756
+ *
1757
+ * Unless required by applicable law or agreed to in writing, software
1758
+ * distributed under the License is distributed on an "AS IS" BASIS,
1759
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1760
+ * See the License for the specific language governing permissions and
1761
+ * limitations under the License.
1762
+ * ======================================================================== */
1763
+
1764
+
1765
+ +function ($) { "use strict";
1766
+
1767
+ // TAB CLASS DEFINITION
1768
+ // ====================
1769
+
1770
+ var Tab = function (element) {
1771
+ this.element = $(element)
1772
+ }
1773
+
1774
+ Tab.prototype.show = function () {
1775
+ var $this = this.element
1776
+ var $ul = $this.closest('ul:not(.dropdown-menu)')
1777
+ var selector = $this.data('target')
1778
+
1779
+ if (!selector) {
1780
+ selector = $this.attr('href')
1781
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
1782
+ }
1783
+
1784
+ if ($this.parent('li').hasClass('active')) return
1785
+
1786
+ var previous = $ul.find('.active:last a')[0]
1787
+ var e = $.Event('show.bs.tab', {
1788
+ relatedTarget: previous
1789
+ })
1790
+
1791
+ $this.trigger(e)
1792
+
1793
+ if (e.isDefaultPrevented()) return
1794
+
1795
+ var $target = $(selector)
1796
+
1797
+ this.activate($this.parent('li'), $ul)
1798
+ this.activate($target, $target.parent(), function () {
1799
+ $this.trigger({
1800
+ type: 'shown.bs.tab'
1801
+ , relatedTarget: previous
1802
+ })
1803
+ })
1804
+ }
1805
+
1806
+ Tab.prototype.activate = function (element, container, callback) {
1807
+ var $active = container.find('> .active')
1808
+ var transition = callback
1809
+ && $.support.transition
1810
+ && $active.hasClass('fade')
1811
+
1812
+ function next() {
1813
+ $active
1814
+ .removeClass('active')
1815
+ .find('> .dropdown-menu > .active')
1816
+ .removeClass('active')
1817
+
1818
+ element.addClass('active')
1819
+
1820
+ if (transition) {
1821
+ element[0].offsetWidth // reflow for transition
1822
+ element.addClass('in')
1823
+ } else {
1824
+ element.removeClass('fade')
1825
+ }
1826
+
1827
+ if (element.parent('.dropdown-menu')) {
1828
+ element.closest('li.dropdown').addClass('active')
1829
+ }
1830
+
1831
+ callback && callback()
1832
+ }
1833
+
1834
+ transition ?
1835
+ $active
1836
+ .one($.support.transition.end, next)
1837
+ .emulateTransitionEnd(150) :
1838
+ next()
1839
+
1840
+ $active.removeClass('in')
1841
+ }
1842
+
1843
+
1844
+ // TAB PLUGIN DEFINITION
1845
+ // =====================
1846
+
1847
+ var old = $.fn.tab
1848
+
1849
+ $.fn.tab = function ( option ) {
1850
+ return this.each(function () {
1851
+ var $this = $(this)
1852
+ var data = $this.data('bs.tab')
1853
+
1854
+ if (!data) $this.data('bs.tab', (data = new Tab(this)))
1855
+ if (typeof option == 'string') data[option]()
1856
+ })
1857
+ }
1858
+
1859
+ $.fn.tab.Constructor = Tab
1860
+
1861
+
1862
+ // TAB NO CONFLICT
1863
+ // ===============
1864
+
1865
+ $.fn.tab.noConflict = function () {
1866
+ $.fn.tab = old
1867
+ return this
1868
+ }
1869
+
1870
+
1871
+ // TAB DATA-API
1872
+ // ============
1873
+
1874
+ $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1875
+ e.preventDefault()
1876
+ $(this).tab('show')
1877
+ })
1878
+
1879
+ }(jQuery);
1880
+
1881
+ /* ========================================================================
1882
+ * Bootstrap: affix.js v3.0.3
1883
+ * http://getbootstrap.com/javascript/#affix
1884
+ * ========================================================================
1885
+ * Copyright 2013 Twitter, Inc.
1886
+ *
1887
+ * Licensed under the Apache License, Version 2.0 (the "License");
1888
+ * you may not use this file except in compliance with the License.
1889
+ * You may obtain a copy of the License at
1890
+ *
1891
+ * http://www.apache.org/licenses/LICENSE-2.0
1892
+ *
1893
+ * Unless required by applicable law or agreed to in writing, software
1894
+ * distributed under the License is distributed on an "AS IS" BASIS,
1895
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1896
+ * See the License for the specific language governing permissions and
1897
+ * limitations under the License.
1898
+ * ======================================================================== */
1899
+
1900
+
1901
+ +function ($) { "use strict";
1902
+
1903
+ // AFFIX CLASS DEFINITION
1904
+ // ======================
1905
+
1906
+ var Affix = function (element, options) {
1907
+ this.options = $.extend({}, Affix.DEFAULTS, options)
1908
+ this.$window = $(window)
1909
+ .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1910
+ .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1911
+
1912
+ this.$element = $(element)
1913
+ this.affixed =
1914
+ this.unpin = null
1915
+
1916
+ this.checkPosition()
1917
+ }
1918
+
1919
+ Affix.RESET = 'affix affix-top affix-bottom'
1920
+
1921
+ Affix.DEFAULTS = {
1922
+ offset: 0
1923
+ }
1924
+
1925
+ Affix.prototype.checkPositionWithEventLoop = function () {
1926
+ setTimeout($.proxy(this.checkPosition, this), 1)
1927
+ }
1928
+
1929
+ Affix.prototype.checkPosition = function () {
1930
+ if (!this.$element.is(':visible')) return
1931
+
1932
+ var scrollHeight = $(document).height()
1933
+ var scrollTop = this.$window.scrollTop()
1934
+ var position = this.$element.offset()
1935
+ var offset = this.options.offset
1936
+ var offsetTop = offset.top
1937
+ var offsetBottom = offset.bottom
1938
+
1939
+ if (typeof offset != 'object') offsetBottom = offsetTop = offset
1940
+ if (typeof offsetTop == 'function') offsetTop = offset.top()
1941
+ if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
1942
+
1943
+ var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
1944
+ offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
1945
+ offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
1946
+
1947
+ if (this.affixed === affix) return
1948
+ if (this.unpin) this.$element.css('top', '')
1949
+
1950
+ this.affixed = affix
1951
+ this.unpin = affix == 'bottom' ? position.top - scrollTop : null
1952
+
1953
+ this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))
1954
+
1955
+ if (affix == 'bottom') {
1956
+ this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })
1957
+ }
1958
+ }
1959
+
1960
+
1961
+ // AFFIX PLUGIN DEFINITION
1962
+ // =======================
1963
+
1964
+ var old = $.fn.affix
1965
+
1966
+ $.fn.affix = function (option) {
1967
+ return this.each(function () {
1968
+ var $this = $(this)
1969
+ var data = $this.data('bs.affix')
1970
+ var options = typeof option == 'object' && option
1971
+
1972
+ if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
1973
+ if (typeof option == 'string') data[option]()
1974
+ })
1975
+ }
1976
+
1977
+ $.fn.affix.Constructor = Affix
1978
+
1979
+
1980
+ // AFFIX NO CONFLICT
1981
+ // =================
1982
+
1983
+ $.fn.affix.noConflict = function () {
1984
+ $.fn.affix = old
1985
+ return this
1986
+ }
1987
+
1988
+
1989
+ // AFFIX DATA-API
1990
+ // ==============
1991
+
1992
+ $(window).on('load', function () {
1993
+ $('[data-spy="affix"]').each(function () {
1994
+ var $spy = $(this)
1995
+ var data = $spy.data()
1996
+
1997
+ data.offset = data.offset || {}
1998
+
1999
+ if (data.offsetBottom) data.offset.bottom = data.offsetBottom
2000
+ if (data.offsetTop) data.offset.top = data.offsetTop
2001
+
2002
+ $spy.affix(data)
2003
+ })
2004
+ })
2005
+
2006
+ }(jQuery);
themes/default/bootstrap/js/bootstrap.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.0.3 (http://getbootstrap.com)
3
+ * Copyright 2013 Twitter, Inc.
4
+ * Licensed under http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+
7
+ if("undefined"==typeof jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]'),b=!0;if(a.length){var c=this.$element.find("input");"radio"===c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?b=!1:a.find(".active").removeClass("active")),b&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}b&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery);
themes/default/functions.php ADDED
@@ -0,0 +1,291 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Template Tags
3
+ function seed_csp4_title() {
4
+ $o = seed_csp4_get_settings();
5
+ extract( $o );
6
+
7
+ $output = '';
8
+
9
+ if ( !empty( $seo_title ) ) {
10
+ $output = esc_html( $seo_title );
11
+ }
12
+ return $output;
13
+ }
14
+
15
+ function seed_csp4_metadescription() {
16
+ $o = seed_csp4_get_settings();
17
+ extract( $o );
18
+
19
+ $output = '';
20
+
21
+ if ( !empty( $seo_description ) ) {
22
+ $output = '<meta name="description" content="'.esc_attr( $seo_description ).'">';
23
+ }
24
+
25
+ return $output;
26
+ }
27
+
28
+ function seed_csp4_privacy() {
29
+ $output = '';
30
+
31
+ if ( get_option( 'blog_public' ) == 0 ) {
32
+ $output = "<meta name='robots' content='noindex,nofollow' />";
33
+ }
34
+
35
+ return $output;
36
+ }
37
+
38
+ function seed_csp4_favicon() {
39
+ $o = seed_csp4_get_settings();
40
+ extract( $o );
41
+
42
+ $output = '';
43
+
44
+ if ( !empty( $favicon ) ) {
45
+ $output .= "<!-- Favicon -->\n";
46
+ $output .= '<link href="'.esc_attr( $favicon ).'" rel="shortcut icon" type="image/x-icon" />';
47
+ }
48
+
49
+ return $output;
50
+ }
51
+
52
+ function seed_csp4_customcss() {
53
+ $o = seed_csp4_get_settings();
54
+ extract( $o );
55
+
56
+ $output = '';
57
+
58
+ if ( !empty( $custom_css ) ) {
59
+ $output = '<style type="text/css">'.$custom_css.'</style>';
60
+ }
61
+
62
+ return $output;
63
+ }
64
+
65
+ function seed_csp4_head() {
66
+ $o = seed_csp4_get_settings();
67
+ extract( $o );
68
+
69
+ // CSS
70
+ $output = '';
71
+
72
+ $output .= "<!-- Bootstrap and default Style -->\n";
73
+ $output .= '<link rel="stylesheet" href="'.SEED_CSP4_PLUGIN_URL.'themes/default/bootstrap/css/bootstrap.min.css">'."\n";
74
+ $output .= '<link rel="stylesheet" href="'.SEED_CSP4_PLUGIN_URL.'themes/default/style.css">'."\n";
75
+ if ( is_rtl() ) {
76
+ $output .= '<link rel="stylesheet" href="'.SEED_CSP4_PLUGIN_URL.'themes/default/rtl.css">'."\n";
77
+ }
78
+ $output .= '<style type="text/css">'."\n";
79
+
80
+ // Calculated Styles
81
+
82
+ $output .= '/* calculated styles */'."\n";
83
+ ob_start();
84
+ ?>
85
+
86
+ /* Background Style */
87
+ html{
88
+ height:100%;
89
+ <?php if ( !empty( $bg_image ) ): ;?>
90
+ <?php if ( isset( $bg_cover ) && in_array( '1', $bg_cover ) ) : ?>
91
+ background: <?php echo $bg_color;?> url('<?php echo $bg_image; ?>') no-repeat top center fixed;
92
+ -webkit-background-size: cover;
93
+ -moz-background-size: cover;
94
+ -o-background-size: cover;
95
+ background-size: cover;
96
+ <?php else: ?>
97
+ background: <?php echo $bg_color;?> url('<?php echo $bg_image; ?>') <?php echo $bg_repeat;?> <?php echo $bg_position;?> <?php echo $bg_attahcment;?>;
98
+ <?php endif ?>
99
+ <?php else:
100
+ if(!empty($bg_color)):
101
+ ?>
102
+ background: <?php echo $bg_color;?>;
103
+ <?php endif;endif; ?>
104
+ }
105
+ .seed-csp4 body{
106
+ height:100%;
107
+ <?php if ( !empty( $bg_effect ) ) : ?>
108
+ background: transparent url('<?php echo plugins_url( 'images/bg-'.$bg_effect.'.png', __FILE__ ) ; ?>') repeat;
109
+ <?php else: ?>
110
+ background: transparent;
111
+ <?php endif; ?>
112
+ }
113
+
114
+ <?php if ( !empty( $max_width ) ):?>
115
+ #seed-csp4-content{
116
+ max-width: <?php echo intval($max_width);?>px;
117
+ }
118
+ <?php endif;?>
119
+
120
+ <?php if ( !empty( $enable_well ) ):?>
121
+ #seed-csp4-content{
122
+ min-height: 20px;
123
+ padding: 19px;
124
+ background-color: #f5f5f5;
125
+ border: 1px solid #e3e3e3;
126
+ border-radius: 4px;
127
+ }
128
+ <?php endif;?>
129
+
130
+ /* Text Styles */
131
+ <?php if ( !empty( $text_font ) ):?>
132
+ .seed-csp4 body{
133
+ font-family: <?php echo SEED_CSP4::get_font_family($text_font); ?>
134
+ }
135
+
136
+ .seed-csp4 h1, .seed-csp4 h2, .seed-csp4 h3, .seed-csp4 h4, .seed-csp4 h5, .seed-csp4 h6{
137
+ font-family: <?php echo SEED_CSP4::get_font_family($text_font); ?>
138
+ }
139
+ <?php endif;?>
140
+
141
+ <?php if ( !empty( $text_color ) ) { ?>
142
+ .seed-csp4 body{
143
+ color:<?php echo $text_color;?>;
144
+ }
145
+ <?php } ?>
146
+
147
+ <?php if ( !empty( $link_color ) ) { ?>
148
+ <?php if ( empty( $headline_color ) ) { $headline_color = $link_color; }?>
149
+ <?php } ?>
150
+
151
+
152
+ <?php if ( !empty( $headline_color ) ) { ?>
153
+ .seed-csp4 h1, .seed-csp4 h2, .seed-csp4 h3, .seed-csp4 h4, .seed-csp4 h5, .seed-csp4 h6{
154
+ color:<?php echo $headline_color;?>;
155
+ }
156
+ <?php }?>
157
+
158
+
159
+ <?php if ( !empty( $link_color ) ) { ?>
160
+ .seed-csp4 a, .seed-csp4 a:visited, .seed-csp4 a:hover, .seed-csp4 a:active{
161
+ color:<?php echo $link_color;?>;
162
+ }
163
+
164
+
165
+ <?php }
166
+
167
+ $output .= ob_get_clean();
168
+
169
+ $output .= '</style>'."\n";
170
+
171
+
172
+
173
+ // Javascript
174
+ $output .= "<!-- JS -->\n";
175
+ $include_url = includes_url();
176
+ $last = $include_url[strlen( $include_url )-1];
177
+ if ( $last != '/' ) {
178
+ $include_url = $include_url . '/';
179
+ }
180
+ if ( empty( $enable_wp_head_footer ) ) {
181
+ $output .= '<script src="'.$include_url.'js/jquery/jquery.js"></script>'."\n";
182
+ }
183
+ $output .= '<script src="'.SEED_CSP4_PLUGIN_URL.'themes/default/bootstrap/js/bootstrap.js"></script>'."\n";
184
+
185
+ $output .= '<script src="'.SEED_CSP4_PLUGIN_URL.'themes/default/js/script.js"></script>'."\n";
186
+
187
+
188
+ // Header Scripts
189
+ if ( !empty( $header_scripts ) ) {
190
+ $output .= "<!-- Header Scripts -->\n";
191
+ $output .= $header_scripts;
192
+ }
193
+
194
+ // Google Analytics
195
+ if ( !empty( $ga_analytics ) ) {
196
+ $output .= "<!-- Google Analytics -->\n";
197
+ $output .= $ga_analytics;
198
+ }
199
+
200
+ // Modernizr
201
+ $output .= "<!-- Modernizr -->\n";
202
+ $output .= '<script src="'.SEED_CSP4_PLUGIN_URL.'themes/default/js/modernizr.min.js"></script>'."\n";
203
+
204
+ return $output;
205
+ }
206
+
207
+ function seed_csp4_footer() {
208
+ $o = seed_csp4_get_settings();
209
+ extract( $o );
210
+
211
+ $output = '';
212
+
213
+
214
+ if(!empty($bg_cover)){
215
+ $output .= '<!--[if lt IE 9]>
216
+ <script>
217
+ jQuery(document).ready(function($){';
218
+
219
+
220
+ $output .= '$.supersized({';
221
+ $output .= "slides:[ {image : '$bg_image'} ]";
222
+ $output .= '});';
223
+
224
+
225
+ $output .= '});
226
+ </script>
227
+ <![endif]-->';
228
+ }
229
+
230
+
231
+ if ( !empty( $footer_scripts ) ) {
232
+ $output .= "<!-- Footer Scripts -->\n";
233
+ $output .= $footer_scripts;
234
+ }
235
+
236
+ return $output;
237
+ }
238
+
239
+ function seed_csp4_logo() {
240
+ $o = seed_csp4_get_settings();
241
+ extract( $o );
242
+
243
+ $output = '';
244
+
245
+ if ( !empty( $logo ) ) {
246
+ $output .= "<img id='seed-csp4-image' src='$logo'>";
247
+ }
248
+
249
+ return $output;
250
+ }
251
+
252
+ function seed_csp4_headline() {
253
+ $o = seed_csp4_get_settings();
254
+ extract( $o );
255
+
256
+ $output = '';
257
+
258
+ if ( !empty( $headline ) ) {
259
+ $output .= '<h1 id="seed-csp4-headline">'.$headline.'</h1>';
260
+ }
261
+
262
+ return $output;
263
+ }
264
+
265
+ function seed_csp4_description() {
266
+ $o = seed_csp4_get_settings();
267
+ extract( $o );
268
+
269
+ $output = '';
270
+
271
+ if ( !empty( $description ) ) {
272
+ $output .= '<div id="seed-csp4-description">'.shortcode_unautop(wpautop(convert_chars(wptexturize($description)))).'</div>';
273
+ }
274
+
275
+ return $output;
276
+ }
277
+
278
+ function seed_csp4_credit() {
279
+ $o = seed_csp4_get_settings();
280
+ extract( $o );
281
+
282
+ $output = '';
283
+
284
+ if ( !empty( $footer_credit ) ) {
285
+ $output = '<div id="seed-csp4-credit">';
286
+ $output .= '<a target="_blank" href="http://www.seedprod.com/?utm_source=coming-soon-credit-link&utm_medium=banner&utm_campaign=coming-soon-plugin-credit-link"><img src="'.plugins_url('coming-soon',dirname('.')).'/themes/default/images/seedprod-credit.png"></a>';
287
+ $output .= '</div>';
288
+ }
289
+
290
+ return $output;
291
+ }
themes/default/images/ajax-loader.gif ADDED
Binary file
themes/default/images/seedprod-credit.png ADDED
Binary file
themes/default/index.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html class="no-js seed-csp4" lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>{Title}</title>
6
+ {MetaDescription}
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+ {Privacy}
9
+ {Favicon}
10
+ {Head}
11
+ {CustomCSS}
12
+ </head>
13
+ <body>
14
+ <div class="row">
15
+ <div class="col-md-12">
16
+ <div id="seed-csp4-content">
17
+ {Logo}
18
+ {Headline}
19
+ {Description}
20
+ </div><!-- / #seed-csp4-content -->
21
+ </div></div>
22
+ {Credit}
23
+
24
+ {Footer}
25
+ </body>
26
+ </html>
themes/default/js/jquery.fitvids.js ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*global jQuery */
2
+ /*jshint multistr:true browser:true */
3
+ /*!
4
+ * FitVids 1.0.3
5
+ *
6
+ * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
7
+ * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
8
+ * Released under the WTFPL license - http://sam.zoy.org/wtfpl/
9
+ *
10
+ * Date: Thu Sept 01 18:00:00 2011 -0500
11
+ */
12
+
13
+ (function( $ ){
14
+
15
+ "use strict";
16
+
17
+ $.fn.fitVids = function( options ) {
18
+ var settings = {
19
+ customSelector: null
20
+ };
21
+
22
+ if(!document.getElementById('fit-vids-style')) {
23
+
24
+ var div = document.createElement('div'),
25
+ ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0],
26
+ cssStyles = '&shy;<style>.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}</style>';
27
+
28
+ div.className = 'fit-vids-style';
29
+ div.id = 'fit-vids-style';
30
+ div.style.display = 'none';
31
+ div.innerHTML = cssStyles;
32
+
33
+ ref.parentNode.insertBefore(div,ref);
34
+
35
+ }
36
+
37
+ if ( options ) {
38
+ $.extend( settings, options );
39
+ }
40
+
41
+ return this.each(function(){
42
+ var selectors = [
43
+ "iframe[src*='player.vimeo.com']",
44
+ "iframe[src*='youtube.com']",
45
+ "iframe[src*='youtube-nocookie.com']",
46
+ "iframe[src*='kickstarter.com'][src*='video.html']",
47
+ "object",
48
+ "embed"
49
+ ];
50
+
51
+ if (settings.customSelector) {
52
+ selectors.push(settings.customSelector);
53
+ }
54
+
55
+ var $allVideos = $(this).find(selectors.join(','));
56
+ $allVideos = $allVideos.not("object object"); // SwfObj conflict patch
57
+
58
+ $allVideos.each(function(){
59
+ var $this = $(this);
60
+ if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
61
+ var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
62
+ width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
63
+ aspectRatio = height / width;
64
+ if(!$this.attr('id')){
65
+ var videoID = 'fitvid' + Math.floor(Math.random()*999999);
66
+ $this.attr('id', videoID);
67
+ }
68
+ $this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
69
+ $this.removeAttr('height').removeAttr('width');
70
+ });
71
+ });
72
+ };
73
+ // Works with either jQuery or Zepto
74
+ })( window.jQuery || window.Zepto );
themes/default/js/modernizr.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /* Modernizr 2.7.1 (Custom Build) | MIT & BSD
2
+ * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexboxlegacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-shiv-teststyles-testprop-testallprops-prefixes-domprefixes
3
+ */
4
+ ;window.Modernizr=function(a,b,c){function z(a){i.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&i[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.7.1",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j,k=":)",l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var h,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:g+(d+1),l.appendChild(j);return h=["&#173;",'<style id="s',g,'">',a,"</style>"].join(""),l.id=g,(m?l:n).innerHTML+=h,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=f.style.overflow,f.style.overflow="hidden",f.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),f.style.overflow=k),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.flexbox=function(){return F("flexWrap")},q.flexboxlegacy=function(){return F("boxDirection")},q.rgba=function(){return z("background-color:rgba(150,255,150,.5)"),C(i.backgroundColor,"rgba")},q.hsla=function(){return z("background-color:hsla(120,40%,100%,.5)"),C(i.backgroundColor,"rgba")||C(i.backgroundColor,"hsla")},q.multiplebgs=function(){return z("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(i.background)},q.backgroundsize=function(){return F("backgroundSize")},q.borderimage=function(){return F("borderImage")},q.borderradius=function(){return F("borderRadius")},q.boxshadow=function(){return F("boxShadow")},q.textshadow=function(){return b.createElement("div").style.textShadow===""},q.opacity=function(){return A("opacity:.55"),/^0.55$/.test(i.opacity)},q.cssanimations=function(){return F("animationName")},q.csscolumns=function(){return F("columnCount")},q.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return z((a+"-webkit- ".split(" ").join(b+a)+m.join(c+a)).slice(0,-a.length)),C(i.backgroundImage,"gradient")},q.cssreflections=function(){return F("boxReflect")},q.csstransforms=function(){return!!F("transform")},q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in f.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return F("transition")},q.fontface=function(){var a;return w('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},q.generatedcontent=function(){var a;return w(["#",g,"{font:0/0 a}#",g,':after{content:"',k,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof enableClasses!="undefined"&&enableClasses&&(f.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),h=j=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function q(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?o(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function r(a){a||(a=b);var c=n(a);return s.shivCSS&&!g&&!c.hasCSS&&(c.hasCSS=!!l(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||q(a,c),a}var c="3.7.0",d=a.html5||{},e=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,f=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g,h="_html5shiv",i=0,j={},k;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,e}(this,this.document);
themes/default/js/script.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+
3
+ Supersized - Fullscreen Slideshow jQuery Plugin
4
+ Version : 3.2.7
5
+ Site : www.buildinternet.com/project/supersized
6
+
7
+ Author : Sam Dunn
8
+ Company : One Mighty Roar (www.onemightyroar.com)
9
+ License : MIT License / GPL License
10
+
11
+ */(function(e){e(document).ready(function(){e("body").append('<div id="supersized-loader"></div><ul id="supersized"></ul>')});e.supersized=function(t){var n="#supersized",r=this;r.$el=e(n);r.el=n;vars=e.supersized.vars;r.$el.data("supersized",r);api=r.$el.data("supersized");r.init=function(){e.supersized.vars=e.extend(e.supersized.vars,e.supersized.themeVars);e.supersized.vars.options=e.extend({},e.supersized.defaultOptions,e.supersized.themeOptions,t);r.options=e.supersized.vars.options;r._build()};r._build=function(){var t=0,n="",i="",s,o="",u;while(t<=r.options.slides.length-1){switch(r.options.slide_links){case"num":s=t;break;case"name":s=r.options.slides[t].title;break;case"blank":s=""}n=n+'<li class="slide-'+t+'"></li>';if(t==r.options.start_slide-1){r.options.slide_links&&(i=i+'<li class="slide-link-'+t+' current-slide"><a>'+s+"</a></li>");if(r.options.thumb_links){r.options.slides[t].thumb?u=r.options.slides[t].thumb:u=r.options.slides[t].image;o=o+'<li class="thumb'+t+' current-thumb"><img src="'+u+'"/></li>'}}else{r.options.slide_links&&(i=i+'<li class="slide-link-'+t+'" ><a>'+s+"</a></li>");if(r.options.thumb_links){r.options.slides[t].thumb?u=r.options.slides[t].thumb:u=r.options.slides[t].image;o=o+'<li class="thumb'+t+'"><img src="'+u+'"/></li>'}}t++}r.options.slide_links&&e(vars.slide_list).html(i);r.options.thumb_links&&vars.thumb_tray.length&&e(vars.thumb_tray).append('<ul id="'+vars.thumb_list.replace("#","")+'">'+o+"</ul>");e(r.el).append(n);if(r.options.thumbnail_navigation){vars.current_slide-1<0?prevThumb=r.options.slides.length-1:prevThumb=vars.current_slide-1;e(vars.prev_thumb).show().html(e("<img/>").attr("src",r.options.slides[prevThumb].image));vars.current_slide==r.options.slides.length-1?nextThumb=0:nextThumb=vars.current_slide+1;e(vars.next_thumb).show().html(e("<img/>").attr("src",r.options.slides[nextThumb].image))}r._start()};r._start=function(){r.options.start_slide?vars.current_slide=r.options.start_slide-1:vars.current_slide=Math.floor(Math.random()*r.options.slides.length);var t=r.options.new_window?' target="_blank"':"";r.options.performance==3?r.$el.addClass("speed"):(r.options.performance==1||r.options.performance==2)&&r.$el.addClass("quality");if(r.options.random){arr=r.options.slides;for(var n,i,s=arr.length;s;n=parseInt(Math.random()*s),i=arr[--s],arr[s]=arr[n],arr[n]=i);r.options.slides=arr}if(r.options.slides.length>1){if(r.options.slides.length>2){vars.current_slide-1<0?loadPrev=r.options.slides.length-1:loadPrev=vars.current_slide-1;var o=r.options.slides[loadPrev].url?"href='"+r.options.slides[loadPrev].url+"'":"",u=e('<img src="'+r.options.slides[loadPrev].image+'"/>'),a=r.el+" li:eq("+loadPrev+")";u.appendTo(a).wrap("<a "+o+t+"></a>").parent().parent().addClass("image-loading prevslide");u.load(function(){e(this).data("origWidth",e(this).width()).data("origHeight",e(this).height());r.resizeNow()})}}else r.options.slideshow=0;o=api.getField("url")?"href='"+api.getField("url")+"'":"";var f=e('<img src="'+api.getField("image")+'"/>'),l=r.el+" li:eq("+vars.current_slide+")";f.appendTo(l).wrap("<a "+o+t+"></a>").parent().parent().addClass("image-loading activeslide");f.load(function(){r._origDim(e(this));r.resizeNow();r.launch();typeof theme!="undefined"&&typeof theme._init=="function"&&theme._init()});if(r.options.slides.length>1){vars.current_slide==r.options.slides.length-1?loadNext=0:loadNext=vars.current_slide+1;o=r.options.slides[loadNext].url?"href='"+r.options.slides[loadNext].url+"'":"";var c=e('<img src="'+r.options.slides[loadNext].image+'"/>'),h=r.el+" li:eq("+loadNext+")";c.appendTo(h).wrap("<a "+o+t+"></a>").parent().parent().addClass("image-loading");c.load(function(){e(this).data("origWidth",e(this).width()).data("origHeight",e(this).height());r.resizeNow()})}r.$el.css("visibility","hidden");e(".load-item").hide()};r.launch=function(){r.$el.css("visibility","visible");e("#supersized-loader").remove();typeof theme!="undefined"&&typeof theme.beforeAnimation=="function"&&theme.beforeAnimation("next");e(".load-item").show();r.options.keyboard_nav&&e(document.documentElement).keyup(function(e){if(vars.in_animation)return!1;if(e.keyCode==37||e.keyCode==40){clearInterval(vars.slideshow_interval);r.prevSlide()}else if(e.keyCode==39||e.keyCode==38){clearInterval(vars.slideshow_interval);r.nextSlide()}else if(e.keyCode==32&&!vars.hover_pause){clearInterval(vars.slideshow_interval);r.playToggle()}});r.options.slideshow&&r.options.pause_hover&&e(r.el).hover(function(){if(vars.in_animation)return!1;vars.hover_pause=!0;if(!vars.is_paused){vars.hover_pause="resume";r.playToggle()}},function(){if(vars.hover_pause=="resume"){r.playToggle();vars.hover_pause=!1}});r.options.slide_links&&e(vars.slide_list+"> li").click(function(){index=e(vars.slide_list+"> li").index(this);targetSlide=index+1;r.goTo(targetSlide);return!1});r.options.thumb_links&&e(vars.thumb_list+"> li").click(function(){index=e(vars.thumb_list+"> li").index(this);targetSlide=index+1;api.goTo(targetSlide);return!1});if(r.options.slideshow&&r.options.slides.length>1){r.options.autoplay&&r.options.slides.length>1?vars.slideshow_interval=setInterval(r.nextSlide,r.options.slide_interval):vars.is_paused=!0;e(".load-item img").bind("contextmenu mousedown",function(){return!1})}e(window).resize(function(){r.resizeNow()})};r.resizeNow=function(){return r.$el.each(function(){e("img",r.el).each(function(){function o(e){if(e){if(thisSlide.width()<n||thisSlide.width()<r.options.min_width)if(thisSlide.width()*t>=r.options.min_height){thisSlide.width(r.options.min_width);thisSlide.height(thisSlide.width()*t)}else u()}else if(r.options.min_height>=i&&!r.options.fit_landscape){if(n*t>=r.options.min_height||n*t>=r.options.min_height&&t<=1){thisSlide.width(n);thisSlide.height(n*t)}else if(t>1){thisSlide.height(r.options.min_height);thisSlide.width(thisSlide.height()/t)}else if(thisSlide.width()<n){thisSlide.width(n);thisSlide.height(thisSlide.width()*t)}}else{thisSlide.width(n);thisSlide.height(n*t)}}function u(e){if(e){if(thisSlide.height()<i)if(thisSlide.height()/t>=r.options.min_width){thisSlide.height(r.options.min_height);thisSlide.width(thisSlide.height()/t)}else o(!0)}else if(r.options.min_width>=n){if(i/t>=r.options.min_width||t>1){thisSlide.height(i);thisSlide.width(i/t)}else if(t<=1){thisSlide.width(r.options.min_width);thisSlide.height(thisSlide.width()*t)}}else{thisSlide.height(i);thisSlide.width(i/t)}}thisSlide=e(this);var t=(thisSlide.data("origHeight")/thisSlide.data("origWidth")).toFixed(2),n=r.$el.width(),i=r.$el.height(),s;r.options.fit_always?i/n>t?o():u():i<=r.options.min_height&&n<=r.options.min_width?i/n>t?r.options.fit_landscape&&t<1?o(!0):u(!0):r.options.fit_portrait&&t>=1?u(!0):o(!0):n<=r.options.min_width?i/n>t?r.options.fit_landscape&&t<1?o(!0):u():r.options.fit_portrait&&t>=1?u():o(!0):i<=r.options.min_height?i/n>t?r.options.fit_landscape&&t<1?o():u(!0):r.options.fit_portrait&&t>=1?u(!0):o():i/n>t?r.options.fit_landscape&&t<1?o():u():r.options.fit_portrait&&t>=1?u():o();thisSlide.parents("li").hasClass("image-loading")&&e(".image-loading").removeClass("image-loading");r.options.horizontal_center&&e(this).css("left",(n-e(this).width())/2);r.options.vertical_center&&e(this).css("top",(i-e(this).height())/2)});r.options.image_protect&&e("img",r.el).bind("contextmenu mousedown",function(){return!1});return!1})};r.nextSlide=function(){if(vars.in_animation||!api.options.slideshow)return!1;vars.in_animation=!0;clearInterval(vars.slideshow_interval);var t=r.options.slides,n=r.$el.find(".activeslide");e(".prevslide").removeClass("prevslide");n.removeClass("activeslide").addClass("prevslide");vars.current_slide+1==r.options.slides.length?vars.current_slide=0:vars.current_slide++;var i=e(r.el+" li:eq("+vars.current_slide+")"),s=r.$el.find(".prevslide");r.options.performance==1&&r.$el.removeClass("quality").addClass("speed");loadSlide=!1;vars.current_slide==r.options.slides.length-1?loadSlide=0:loadSlide=vars.current_slide+1;var o=r.el+" li:eq("+loadSlide+")";if(!e(o).html()){var u=r.options.new_window?' target="_blank"':"";imageLink=r.options.slides[loadSlide].url?"href='"+r.options.slides[loadSlide].url+"'":"";var a=e('<img src="'+r.options.slides[loadSlide].image+'"/>');a.appendTo(o).wrap("<a "+imageLink+u+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");a.load(function(){r._origDim(e(this));r.resizeNow()})}if(r.options.thumbnail_navigation==1){vars.current_slide-1<0?prevThumb=r.options.slides.length-1:prevThumb=vars.current_slide-1;e(vars.prev_thumb).html(e("<img/>").attr("src",r.options.slides[prevThumb].image));nextThumb=loadSlide;e(vars.next_thumb).html(e("<img/>").attr("src",r.options.slides[nextThumb].image))}typeof theme!="undefined"&&typeof theme.beforeAnimation=="function"&&theme.beforeAnimation("next");if(r.options.slide_links){e(".current-slide").removeClass("current-slide");e(vars.slide_list+"> li").eq(vars.current_slide).addClass("current-slide")}i.css("visibility","hidden").addClass("activeslide");switch(r.options.transition){case 0:case"none":i.css("visibility","visible");vars.in_animation=!1;r.afterAnimation();break;case 1:case"fade":i.css({opacity:0,visibility:"visible"}).animate({opacity:1,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 2:case"slideTop":i.css({top:-r.$el.height(),visibility:"visible"}).animate({top:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 3:case"slideRight":i.css({left:r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 4:case"slideBottom":i.css({top:r.$el.height(),visibility:"visible"}).animate({top:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 5:case"slideLeft":i.css({left:-r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 6:case"carouselRight":i.css({left:r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});n.animate({left:-r.$el.width(),avoidTransforms:!1},r.options.transition_speed);break;case 7:case"carouselLeft":i.css({left:-r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});n.animate({left:r.$el.width(),avoidTransforms:!1},r.options.transition_speed)}return!1};r.prevSlide=function(){if(vars.in_animation||!api.options.slideshow)return!1;vars.in_animation=!0;clearInterval(vars.slideshow_interval);var t=r.options.slides,n=r.$el.find(".activeslide");e(".prevslide").removeClass("prevslide");n.removeClass("activeslide").addClass("prevslide");vars.current_slide==0?vars.current_slide=r.options.slides.length-1:vars.current_slide--;var i=e(r.el+" li:eq("+vars.current_slide+")"),s=r.$el.find(".prevslide");r.options.performance==1&&r.$el.removeClass("quality").addClass("speed");loadSlide=vars.current_slide;var o=r.el+" li:eq("+loadSlide+")";if(!e(o).html()){var u=r.options.new_window?' target="_blank"':"";imageLink=r.options.slides[loadSlide].url?"href='"+r.options.slides[loadSlide].url+"'":"";var a=e('<img src="'+r.options.slides[loadSlide].image+'"/>');a.appendTo(o).wrap("<a "+imageLink+u+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");a.load(function(){r._origDim(e(this));r.resizeNow()})}if(r.options.thumbnail_navigation==1){loadSlide==0?prevThumb=r.options.slides.length-1:prevThumb=loadSlide-1;e(vars.prev_thumb).html(e("<img/>").attr("src",r.options.slides[prevThumb].image));vars.current_slide==r.options.slides.length-1?nextThumb=0:nextThumb=vars.current_slide+1;e(vars.next_thumb).html(e("<img/>").attr("src",r.options.slides[nextThumb].image))}typeof theme!="undefined"&&typeof theme.beforeAnimation=="function"&&theme.beforeAnimation("prev");if(r.options.slide_links){e(".current-slide").removeClass("current-slide");e(vars.slide_list+"> li").eq(vars.current_slide).addClass("current-slide")}i.css("visibility","hidden").addClass("activeslide");switch(r.options.transition){case 0:case"none":i.css("visibility","visible");vars.in_animation=!1;r.afterAnimation();break;case 1:case"fade":i.css({opacity:0,visibility:"visible"}).animate({opacity:1,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 2:case"slideTop":i.css({top:r.$el.height(),visibility:"visible"}).animate({top:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 3:case"slideRight":i.css({left:-r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 4:case"slideBottom":i.css({top:-r.$el.height(),visibility:"visible"}).animate({top:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 5:case"slideLeft":i.css({left:r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});break;case 6:case"carouselRight":i.css({left:-r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});n.css({left:0}).animate({left:r.$el.width(),avoidTransforms:!1},r.options.transition_speed);break;case 7:case"carouselLeft":i.css({left:r.$el.width(),visibility:"visible"}).animate({left:0,avoidTransforms:!1},r.options.transition_speed,function(){r.afterAnimation()});n.css({left:0}).animate({left:-r.$el.width(),avoidTransforms:!1},r.options.transition_speed)}return!1};r.playToggle=function(){if(vars.in_animation||!api.options.slideshow)return!1;if(vars.is_paused){vars.is_paused=!1;typeof theme!="undefined"&&typeof theme.playToggle=="function"&&theme.playToggle("play");vars.slideshow_interval=setInterval(r.nextSlide,r.options.slide_interval)}else{vars.is_paused=!0;typeof theme!="undefined"&&typeof theme.playToggle=="function"&&theme.playToggle("pause");clearInterval(vars.slideshow_interval)}return!1};r.goTo=function(t){if(vars.in_animation||!api.options.slideshow)return!1;var n=r.options.slides.length;t<0?t=n:t>n&&(t=1);t=n-t+1;clearInterval(vars.slideshow_interval);typeof theme!="undefined"&&typeof theme.goTo=="function"&&theme.goTo();if(vars.current_slide==n-t){vars.is_paused||(vars.slideshow_interval=setInterval(r.nextSlide,r.options.slide_interval));return!1}if(n-t>vars.current_slide){vars.current_slide=n-t-1;vars.update_images="next";r._placeSlide(vars.update_images)}else if(n-t<vars.current_slide){vars.current_slide=n-t+1;vars.update_images="prev";r._placeSlide(vars.update_images)}if(r.options.slide_links){e(vars.slide_list+"> .current-slide").removeClass("current-slide");e(vars.slide_list+"> li").eq(n-t).addClass("current-slide")}if(r.options.thumb_links){e(vars.thumb_list+"> .current-thumb").removeClass("current-thumb");e(vars.thumb_list+"> li").eq(n-t).addClass("current-thumb")}};r._placeSlide=function(t){var n=r.options.new_window?' target="_blank"':"";loadSlide=!1;if(t=="next"){vars.current_slide==r.options.slides.length-1?loadSlide=0:loadSlide=vars.current_slide+1;var i=r.el+" li:eq("+loadSlide+")";if(!e(i).html()){var n=r.options.new_window?' target="_blank"':"";imageLink=r.options.slides[loadSlide].url?"href='"+r.options.slides[loadSlide].url+"'":"";var s=e('<img src="'+r.options.slides[loadSlide].image+'"/>');s.appendTo(i).wrap("<a "+imageLink+n+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");s.load(function(){r._origDim(e(this));r.resizeNow()})}r.nextSlide()}else if(t=="prev"){vars.current_slide-1<0?loadSlide=r.options.slides.length-1:loadSlide=vars.current_slide-1;var i=r.el+" li:eq("+loadSlide+")";if(!e(i).html()){var n=r.options.new_window?' target="_blank"':"";imageLink=r.options.slides[loadSlide].url?"href='"+r.options.slides[loadSlide].url+"'":"";var s=e('<img src="'+r.options.slides[loadSlide].image+'"/>');s.appendTo(i).wrap("<a "+imageLink+n+"></a>").parent().parent().addClass("image-loading").css("visibility","hidden");s.load(function(){r._origDim(e(this));r.resizeNow()})}r.prevSlide()}};r._origDim=function(e){e.data("origWidth",e.width()).data("origHeight",e.height())};r.afterAnimation=function(){r.options.performance==1&&r.$el.removeClass("speed").addClass("quality");if(vars.update_images){vars.current_slide-1<0?setPrev=r.options.slides.length-1:setPrev=vars.current_slide-1;vars.update_images=!1;e(".prevslide").removeClass("prevslide");e(r.el+" li:eq("+setPrev+")").addClass("prevslide")}vars.in_animation=!1;if(!vars.is_paused&&r.options.slideshow){vars.slideshow_interval=setInterval(r.nextSlide,r.options.slide_interval);r.options.stop_loop&&vars.current_slide==r.options.slides.length-1&&r.playToggle()}typeof theme!="undefined"&&typeof theme.afterAnimation=="function"&&theme.afterAnimation();return!1};r.getField=function(e){return r.options.slides[vars.current_slide][e]};r.init()};e.supersized.vars={thumb_tray:"#thumb-tray",thumb_list:"#thumb-list",slide_list:"#slide-list",current_slide:0,in_animation:!1,is_paused:!1,hover_pause:!1,slideshow_interval:!1,update_images:!1,options:{}};e.supersized.defaultOptions={slideshow:1,autoplay:1,start_slide:1,stop_loop:0,random:0,slide_interval:5e3,transition:1,transition_speed:750,new_window:1,pause_hover:0,keyboard_nav:1,performance:1,image_protect:1,fit_always:0,fit_landscape:0,fit_portrait:1,min_width:0,min_height:0,horizontal_center:1,vertical_center:1,slide_links:1,thumb_links:1,thumbnail_navigation:0};e.fn.supersized=function(t){return this.each(function(){new e.supersized(t)})}})(jQuery);
12
+
themes/default/rtl.css ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* RTL Support */
2
+
3
+ body {
4
+ direction:rtl;
5
+ unicode-bidi:embed;
6
+ }
7
+
8
+ .input-append .add-on:last-child, .input-append .btn:last-child {
9
+ -webkit-border-radius: 3px 0 0 3px;
10
+ -moz-border-radius: 3px 0 0 3px;
11
+ border-radius: 3px 0 0 3px;
12
+ }
13
+
14
+ .input-append input, .input-append select, .input-append .uneditable-input {
15
+ -webkit-border-radius: 0 3px 3px 0;
16
+ -moz-border-radius: 0 3px 3px 0;
17
+ border-radius: 0 3px 3px 0;
18
+ }
themes/default/style.css ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Styles */
2
+ body{
3
+ text-align:center;
4
+ padding:60px 20px 0;
5
+ }
6
+
7
+ #seed-csp4-content{
8
+ max-width:600px;
9
+ margin:0 auto;
10
+ }
11
+
12
+ #seed-csp4-content img{
13
+ max-width: 100%;
14
+ height: auto;
15
+ }
16
+
17
+ #seed-csp4-image{
18
+ margin-bottom:20px;
19
+ }
20
+
21
+ #seed-csp4-headline{
22
+ margin-top: 0;
23
+ }
24
+
25
+ #seed-csp4-description{
26
+ }
27
+
28
+ #seed-csp4-footer{
29
+
30
+ }
31
+
32
+ #seed-csp4-credit{
33
+ position: fixed;
34
+ bottom:0;
35
+ right:20px;
36
+ background-color: #000;
37
+ background-color: rgba(0, 0, 0, 0.70);
38
+ padding:1px 5px 2px;
39
+ border-radius: 4px 4px 0px 0px;
40
+ }
41
+
42
+ .placeholder { color: #aaa; }
43
+
44
+
45
+ /* =WordPress Core
46
+ -------------------------------------------------------------- */
47
+ .alignnone {
48
+ margin: 5px 20px 20px 0;
49
+ }
50
+
51
+ .aligncenter, div.aligncenter {
52
+ display:block;
53
+ margin: 5px auto 5px auto;
54
+ }
55
+
56
+ .alignright {
57
+ float:right;
58
+ margin: 5px 0 20px 20px;
59
+ }
60
+
61
+ .alignleft {
62
+ float:left;
63
+ margin: 5px 20px 20px 0;
64
+ }
65
+
66
+ .aligncenter {
67
+ display: block;
68
+ margin: 5px auto 5px auto;
69
+ }
70
+
71
+ a img.alignright {
72
+ float:right;
73
+ margin: 5px 0 20px 20px;
74
+ }
75
+
76
+ a img.alignnone {
77
+ margin: 5px 20px 20px 0;
78
+ }
79
+
80
+ a img.alignleft {
81
+ float:left;
82
+ margin: 5px 20px 20px 0;
83
+ }
84
+
85
+ a img.aligncenter {
86
+ display: block;
87
+ margin-left: auto;
88
+ margin-right: auto
89
+ }
90
+
91
+ .wp-caption {
92
+ background: #fff;
93
+ border: 1px solid #f0f0f0;
94
+ max-width: 96%; /* Image does not overflow the content area */
95
+ padding: 5px 3px 10px;
96
+ text-align: center;
97
+ }
98
+
99
+ .wp-caption.alignnone {
100
+ margin: 5px 20px 20px 0;
101
+ }
102
+
103
+ .wp-caption.alignleft {
104
+ margin: 5px 20px 20px 0;
105
+ }
106
+
107
+ .wp-caption.alignright {
108
+ margin: 5px 0 20px 20px;
109
+ }
110
+
111
+ .wp-caption img {
112
+ border: 0 none;
113
+ height: auto;
114
+ margin:0;
115
+ max-width: 98.5%;
116
+ padding:0;
117
+ width: auto;
118
+ }
119
+
120
+ .wp-caption p.wp-caption-text {
121
+ font-size:11px;
122
+ line-height:17px;
123
+ margin:0;
124
+ padding:0 4px 5px;
125
+ }
126
+
127
+
128
+ /* =Supersized
129
+ -------------------------------------------------------------- */
130
+ #supersized-loader { position:absolute; top:50%; left:50%; z-index:0; width:60px; height:60px; margin:-30px 0 0 -30px; text-indent:-999em; }
131
+ #supersized img{max-width:none;}
132
+ #supersized { display:none; position:fixed; left:0; top:0; overflow:hidden; z-index:-999; height:100%; width:100%;margin:0; }
133
+ #supersized img { width:auto; height:auto; position:relative; display:none; outline:none; border:none; }
134
+ #supersized.speed img { -ms-interpolation-mode:nearest-neighbor; image-rendering: -moz-crisp-edges; } /*Speed*/
135
+ #supersized.quality img { -ms-interpolation-mode:bicubic; image-rendering: optimizeQuality; } /*Quality*/
136
+ #supersized li { display:block; list-style:none; z-index:-30; position:fixed; overflow:hidden; top:0; left:0; width:100%; height:100%; background:#111; }
137
+ #supersized a { width:100%; height:100%; display:block; }
138
+ #supersized li.prevslide { z-index:-20; }
139
+ #supersized li.activeslide { z-index:-10; }
140
+ #supersized li.image-loading img{ visibility:hidden; }
141
+ #supersized li.prevslide img, #supersized li.activeslide img{ display:inline; }
themes/index.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+
3
+ // shhhhhh