-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbushido_intro.html
311 lines (230 loc) · 74.2 KB
/
bushido_intro.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Tane Welcome</title>
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
<link rel="shortcut icon" href="http://bushi.do/faviconred-w.png">
<style type="text/css">
#wrap {display:table;height:100%}
</style>
<![endif]-->
<meta name="csrf-param" content="authenticity_token"/>
<meta name="csrf-token" content="P8qAtaA1MPX7p14725fxZyM3sFbvx4bSjokKHFmIs04="/>
<!-- Uncomment if you are specifically targeting less enabled mobile browsers
<link rel="stylesheet" media="handheld" href="css/handheld.css?v=2"> -->
<style type="text/css">
@charset "UTF-8";.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png?1307048560) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png?1307048560) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png?1307048560) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png?1307048560) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png?1307048560) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-widget :active{outline:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png?1307048560) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png?1307048560) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-icon{width:16px;height:16px;background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_222222_256x240.png?1307048560)}.ui-widget-content .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_222222_256x240.png?1307048560)}.ui-widget-header .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_222222_256x240.png?1307048560)}.ui-state-default .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_888888_256x240.png?1307048560)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_454545_256x240.png?1307048560)}.ui-state-active .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_454545_256x240.png?1307048560)}.ui-state-highlight .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_2e83ff_256x240.png?1307048560)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-icons_cd0a0a_256x240.png?1307048560)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px - 48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-off{background-position:-96px -144px}.ui-icon-radio-on{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-corner-top{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-bottom{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-corner-right{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-corner-left{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}.ui-widget-overlay{background:#aaa url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png?1307048560) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(../javascripts/vendor/jquery-ui-1.8.12.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png?1307048560) 50% 50% repeat-x;opacity:.30;filter:Alpha(Opacity=30);-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block;background-image:url(data:)}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion{width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1}.ui-accordion .ui-accordion-li-fix{display:inline}.ui-accordion .ui-accordion-header-active{border-bottom:0!important}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1}.ui-accordion .ui-accordion-content-active{display:block}.ui-autocomplete{position:absolute;cursor:default}* html .ui-autocomplete{width:1px}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left}.ui-menu .ui-menu{margin-top:-3px}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tabs .ui-tabs-hide{display:none!important}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{display:none;display:block;position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-progressbar{height:2em;text-align:left}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.terminal .clipboard{position:absolute;bottom:0;left:0;opacity:.01;filter:alpha(opacity = .01);filter:alpha(opacity=0.01)}.cmd>.clipboard{position:fixed}.terminal{padding:10px;position:relative;overflow:hidden}.cmd{padding:0;margin:0;height:1.3em}.terminal .terminal-output div{display:block}.terminal,.terminal .terminal-output,.terminal .terminal-output div,.terminal .terminal-output div div,.cmd,.terminal .cmd span,.terminal .cmd div{font-family:monospace;color:#aaa;background-color:#000;font-size:12px}.terminal .cmd span{float:left}.terminal div::selection,.terminal span::selection{background-color:#aaa;color:#000}.terminal .cmd span.inverted{background-color:#aaa;color:#000}.terminal div::-moz-selection,.terminal span::-moz-selection{background-color:#aaa;color:#000}.terminal .terminal-output div.error,.terminal .terminal-output div.error div{color:red}.tilda{position:fixed;top:0;left:0;width:100%;z-index:1100}.inputContainer{position:relative;float:left}.formError{position:absolute;top:300px;left:300px;display:block;z-index:5000;cursor:pointer}.ajaxSubmit{padding:20px;background:#55ea55;border:1px solid #999;display:none}.formError .formErrorContent{width:100%;background:#ee0101;position:relative;z-index:5001;color:#fff;width:150px;font-family:tahoma;font-size:11px;border:2px solid #ddd;box-shadow:0 0 6px #000;-moz-box-shadow:0 0 6px #000;-webkit-box-shadow:0 0 6px #000;padding:4px 10px 4px 10px;border-radius:6px;-moz-border-radius:6px;-webkit-border-radius:6px}.greenPopup .formErrorContent{background:#33be40}.blackPopup .formErrorContent{background:#393939;color:#FFF}.formError .formErrorArrow{width:15px;margin:-2px 0 0 13px;position:relative;z-index:5006}.formError .formErrorArrowBottom{box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;margin:0 0 0 12px;top:2px}.formError .formErrorArrow div{border-left:2px solid #ddd;border-right:2px solid #ddd;box-shadow:0 2px 3px #444;-moz-box-shadow:0 2px 3px #444;-webkit-box-shadow:0 2px 3px #444;font-size:0;height:1px;background:#ee0101;margin:0 auto;line-height:0;font-size:0;display:block}.formError .formErrorArrowBottom div{box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none}.greenPopup .formErrorArrow div{background:#33be40}.blackPopup .formErrorArrow div{background:#393939;color:#FFF}.formError .formErrorArrow .line10{width:15px;border:none}.formError .formErrorArrow .line9{width:13px;border:none}.formError .formErrorArrow .line8{width:11px}.formError .formErrorArrow .line7{width:9px}.formError .formErrorArrow .line6{width:7px}.formError .formErrorArrow .line5{width:5px}.formError .formErrorArrow .line4{width:3px}.formError .formErrorArrow .line3{width:1px;border-left:2px solid #ddd;border-right:2px solid #ddd;border-bottom:0 solid #ddd}.formError .formErrorArrow .line2{width:3px;border:none;background:#ddd}.formError .formErrorArrow .line1{width:1px;border:none;background:#ddd}#facebox{position:absolute;top:0;left:0;z-index:100;text-align:left}#facebox .popup{position:relative;border:3px solid rgba(0,0,0,0);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 18px rgba(0,0,0,0.4);-moz-box-shadow:0 0 18px rgba(0,0,0,0.4);box-shadow:0 0 18px rgba(0,0,0,0.4)}#facebox .content{display:table;width:370px;padding:10px;background:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}#facebox .content>p:first-child{margin-top:0}#facebox .content>p:last-child{margin-bottom:0}#facebox .close{position:absolute;top:5px;right:5px;padding:2px;background:#fff}#facebox .close img{opacity:.3}#facebox .close:hover img{opacity:1.0}#facebox .loading{text-align:center}#facebox .image{text-align:center}#facebox img{border:0;margin:0}#facebox_overlay{position:fixed;top:0;left:0;height:100%;width:100%}.facebox_hide{z-index:-100}.facebox_overlayBG{background-color:#000;z-index:99}html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}blockquote,q{quotes:none}blockquote:before,blockquote:after{content:"";content:none}q:before,q:after{content:"";content:none}ins{background-color:#ff9;color:black;text-decoration:none}mark{background-color:#ff9;color:black;font-style:italic;font-weight:bold}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}body{font:13px/1.231 sans-serif;*font-size:small}select,input,textarea,button{font:99% sans-serif}pre,code,kbd,samp{font-family:monospace,sans-serif}html{overflow-y:scroll}a:hover,a:active{outline:none}ul{margin-left:2em}ol{margin-left:2em;list-style-type:decimal}nav ul,nav li{margin:0;list-style:none;list-style-image:none}small{font-size:85%}strong,th{font-weight:bold}td{vertical-align:top}sub{font-size:75%;line-height:0;position:relative}sup{font-size:75%;line-height:0;position:relative;top:-0.5em}sub{bottom:-0.25em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word;padding:15px}textarea{overflow:auto}.ie6 legend,.ie7 legend{margin-left:-7px}input[type="radio"]{vertical-align:text-bottom}input[type="checkbox"]{vertical-align:bottom}.ie7 input[type="checkbox"]{vertical-align:baseline}.ie6 input{vertical-align:text-bottom}label{cursor:pointer}input[type="button"],input[type="submit"],input[type="image"]{cursor:pointer}button{cursor:pointer;margin:0}input,select,textarea{margin:0}input:invalid,textarea:invalid{border-radius:1px;-moz-box-shadow:0 0 5px red;-webkit-box-shadow:0 0 5px red;box-shadow:0 0 5px red}.no-boxshadow input:invalid,.no-boxshadow textarea:invalid{background-color:#f0dddd}button{width:auto;overflow:visible}.ie7 img{-ms-interpolation-mode:bicubic}body,select,input,textarea{color:#444}.ir{display:block;text-indent:-999em;overflow:hidden;background-repeat:no-repeat;text-align:left;direction:ltr}.hidden{display:none;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.clearfix{zoom:1}.clearfix:before{content:"\0020";display:block;height:0;overflow:hidden}.clearfix:after{content:"\0020";display:block;height:0;overflow:hidden;clear:both}@media print{*{background:transparent!important;color:black!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a{color:#444!important;text-decoration:underline}a:visited{color:#444!important;text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after{content:""}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.fancy-button-reset-base-class,button,.button,button.hot,.button.hot,button.cool,.button.cool{font-family:"Lucida Grande",Lucida,Arial,sans-serif;background:url(../images/button_bg.png) repeat-x bottom left;margin:0;width:auto;overflow:visible;display:inline-block;cursor:pointer;text-decoration:none;border-style:solid;font-weight:bold}.fancy-button-reset-base-class::-moz-focus-inner,button::-moz-focus-inner,.button::-moz-focus-inner,button.hot::-moz-focus-inner,.button.hot::-moz-focus-inner,button.cool::-moz-focus-inner,.button.cool::-moz-focus-inner{border:none;padding:0}.fancy-button-reset-base-class:focus,button:focus,.button:focus,button.hot:focus,.button.hot:focus,button.cool:focus,.button.cool:focus{outline:none}.l{float:left}.r{float:right}.alpha{margin-left:0!important;padding-left:0!important}.omega{margin-right:0!important;padding-right:0!important}button,.button{-moz-border-radius:6px;-webkit-border-radius:6px;-o-border-radius:6px;-ms-border-radius:6px;-khtml-border-radius:6px;border-radius:6px;font-size:18px;line-height:1.2em;padding:.3em 1em;border-width:1px;background-color:#444;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#989898),color-stop(10%,#6a6a6a),color-stop(50%,#3d3d3d),color-stop(50%,#353535),color-stop(100%,#4f4f4f));background-image:-moz-linear-gradient(top,#989898 0,#6a6a6a 10%,#3d3d3d 50%,#353535 50%,#4f4f4f 100%);background-image:linear-gradient(top,#989898 0,#6a6a6a 10%,#3d3d3d 50%,#353535 50%,#4f4f4f 100%);border-color:#1e1e1e;text-shadow:#040404 0 1px 1px;-moz-box-shadow:rgba(255,255,255,0.27) 0 0 .1em 1px inset;-webkit-box-shadow:rgba(255,255,255,0.27) 0 0 .1em 1px inset;-o-box-shadow:rgba(255,255,255,0.27) 0 0 .1em 1px inset;box-shadow:rgba(255,255,255,0.27) 0 0 .1em 1px inset;-moz-background-clip:padding;-webkit-background-clip:padding;-o-background-clip:padding-box;-ms-background-clip:padding-box;-khtml-background-clip:padding-box;background-clip:padding-box;font-weight:normal!important;font-size:1em!important}button,button:visited,.button,.button:visited{color:white}button:hover,button:focus,.button:hover,.button:focus{background-color:#3c3c3c;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#909090),color-stop(10%,#626262),color-stop(50%,#353535),color-stop(50%,#2d2d2d),color-stop(100%,#474747));background-image:-moz-linear-gradient(top,#909090 0,#626262 10%,#353535 50%,#2d2d2d 50%,#474747 100%);background-image:linear-gradient(top,#909090 0,#626262 10%,#353535 50%,#2d2d2d 50%,#474747 100%);border-color:#161616;text-shadow:black 0 1px 1px}button:hover,button:hover:visited,button:focus,button:focus:visited,.button:hover,.button:hover:visited,.button:focus,.button:focus:visited{color:white}button:active,.button:active{background-color:#353535;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#353535),color-stop(30%,#3a3a3a),color-stop(50%,#303030),color-stop(50%,#292929),color-stop(100%,#4a4a4a));background-image:-moz-linear-gradient(top,#353535 0,#3a3a3a 30%,#303030 50%,#292929 50%,#4a4a4a 100%);background-image:linear-gradient(top,#353535 0,#3a3a3a 30%,#303030 50%,#292929 50%,#4a4a4a 100%);border-color:#0f0f0f;text-shadow:black 0 -1px -1px;-moz-box-shadow:#1e1e1e 0 .08em .1em 1px inset;-webkit-box-shadow:#1e1e1e 0 .08em .1em 1px inset;-o-box-shadow:#1e1e1e 0 .08em .1em 1px inset;box-shadow:#1e1e1e 0 .08em .1em 1px inset}button:active,button:active:visited,.button:active,.button:active:visited{color:white}button.hot,.button.hot{-moz-border-radius:6px;-webkit-border-radius:6px;-o-border-radius:6px;-ms-border-radius:6px;-khtml-border-radius:6px;border-radius:6px;font-size:18px;line-height:1.2em;padding:.3em 1em;border-width:1px;background-color:#ff1c1c;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#f8cbcb),color-stop(10%,#ed7a7a),color-stop(50%,#e22929),color-stop(50%,#de1e1e),color-stop(100%,#e64949));background-image:-moz-linear-gradient(top,#f8cbcb 0,#ed7a7a 10%,#e22929 50%,#de1e1e 50%,#e64949 100%);background-image:linear-gradient(top,#f8cbcb 0,#ed7a7a 10%,#e22929 50%,#de1e1e 50%,#e64949 100%);border-color:#b61919;text-shadow:#9c0000 0 1px 1px;-moz-box-shadow:rgba(255,255,255,0.55) 0 0 .1em 1px inset;-webkit-box-shadow:rgba(255,255,255,0.55) 0 0 .1em 1px inset;-o-box-shadow:rgba(255,255,255,0.55) 0 0 .1em 1px inset;box-shadow:rgba(255,255,255,0.55) 0 0 .1em 1px inset;-moz-background-clip:padding;-webkit-background-clip:padding;-o-background-clip:padding-box;-ms-background-clip:padding-box;-khtml-background-clip:padding-box;background-clip:padding-box}button.hot,button.hot:visited,.button.hot,.button.hot:visited{color:white}button.hot:hover,button.hot:focus,.button.hot:hover,.button.hot:focus{background-color:#ff0d0d;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#f6bebe),color-stop(10%,#eb6d6d),color-stop(50%,#de1e1e),color-stop(50%,#d11c1c),color-stop(100%,#e53b3b));background-image:-moz-linear-gradient(top,#f6bebe 0,#eb6d6d 10%,#de1e1e 50%,#d11c1c 50%,#e53b3b 100%);background-image:linear-gradient(top,#f6bebe 0,#eb6d6d 10%,#de1e1e 50%,#d11c1c 50%,#e53b3b 100%);border-color:#a91717;text-shadow:#8d0000 0 1px 1px}button.hot:hover,button.hot:hover:visited,button.hot:focus,button.hot:focus:visited,.button.hot:hover,.button.hot:hover:visited,.button.hot:focus,.button.hot:focus:visited{color:white}button.hot:active,.button.hot:active{background-color:#fc0000;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#de1e1e),color-stop(30%,#e22424),color-stop(50%,#d51c1c),color-stop(50%,#c71b1b),color-stop(100%,#e53f3f));background-image:-moz-linear-gradient(top,#de1e1e 0,#e22424 30%,#d51c1c 50%,#c71b1b 50%,#e53f3f 100%);background-image:linear-gradient(top,#de1e1e 0,#e22424 30%,#d51c1c 50%,#c71b1b 50%,#e53f3f 100%);border-color:#9b1515;text-shadow:#7d0000 0 -1px -1px;-moz-box-shadow:#b61919 0 .08em .1em 1px inset;-webkit-box-shadow:#b61919 0 .08em .1em 1px inset;-o-box-shadow:#b61919 0 .08em .1em 1px inset;box-shadow:#b61919 0 .08em .1em 1px inset}button.hot:active,button.hot:active:visited,.button.hot:active,.button.hot:active:visited{color:white}button.cool,.button.cool{-moz-border-radius:6px;-webkit-border-radius:6px;-o-border-radius:6px;-ms-border-radius:6px;-khtml-border-radius:6px;border-radius:6px;font-size:18px;line-height:1.2em;padding:.3em 1em;border-width:1px;background-color:#0d225d;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#6075b3),color-stop(10%,#3b4c7c),color-stop(50%,#1d253d),color-stop(50%,#181f33),color-stop(100%,#283456));background-image:-moz-linear-gradient(top,#6075b3 0,#3b4c7c 10%,#1d253d 50%,#181f33 50%,#283456 100%);background-image:linear-gradient(top,#6075b3 0,#3b4c7c 10%,#1d253d 50%,#181f33 50%,#283456 100%);border-color:#090c14;text-shadow:black 0 1px 1px;-moz-box-shadow:rgba(255,255,255,0.21) 0 0 .1em 1px inset;-webkit-box-shadow:rgba(255,255,255,0.21) 0 0 .1em 1px inset;-o-box-shadow:rgba(255,255,255,0.21) 0 0 .1em 1px inset;box-shadow:rgba(255,255,255,0.21) 0 0 .1em 1px inset;-moz-background-clip:padding;-webkit-background-clip:padding;-o-background-clip:padding-box;-ms-background-clip:padding-box;-khtml-background-clip:padding-box;background-clip:padding-box}button.cool,button.cool:visited,.button.cool,.button.cool:visited{color:white}button.cool:hover,button.cool:focus,.button.cool:hover,.button.cool:focus{background-color:#0b1e50;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#546daf),color-stop(10%,#354672),color-stop(50%,#181f33),color-stop(50%,#131929),color-stop(100%,#232e4c));background-image:-moz-linear-gradient(top,#546daf 0,#354672 10%,#181f33 50%,#131929 50%,#232e4c 100%);background-image:linear-gradient(top,#546daf 0,#354672 10%,#181f33 50%,#131929 50%,#232e4c 100%);border-color:#05060a;text-shadow:black 0 1px 1px}button.cool:hover,button.cool:hover:visited,button.cool:focus,button.cool:focus:visited,.button.cool:hover,.button.cool:hover:visited,.button.cool:focus,.button.cool:focus:visited{color:white}button.cool:active,.button.cool:active{background-color:#091842;background-image:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#181f33),color-stop(30%,#1b233a),color-stop(50%,#141a2c),color-stop(50%,#101421),color-stop(100%,#252f4f));background-image:-moz-linear-gradient(top,#181f33 0,#1b233a 30%,#141a2c 50%,#101421 50%,#252f4f 100%);background-image:linear-gradient(top,#181f33 0,#1b233a 30%,#141a2c 50%,#101421 50%,#252f4f 100%);border-color:black;text-shadow:black 0 -1px -1px;-moz-box-shadow:#090c14 0 .08em .1em 1px inset;-webkit-box-shadow:#090c14 0 .08em .1em 1px inset;-o-box-shadow:#090c14 0 .08em .1em 1px inset;box-shadow:#090c14 0 .08em .1em 1px inset}button.cool:active,button.cool:active:visited,.button.cool:active,.button.cool:active:visited{color:white}input[type="text"],.text,.password,input[type="password"]{padding:7px;border:2px solid #bcc3c8;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;color:#222c48;background:url(/images/input-sliver.png?1307048560) repeat-x}.app_cell{border-radius:10px;-moz-border-radius:10px;-webkit-border-radius:10px;background:#f5f6f2;width:910px;height:90px;margin:20px auto 0 auto;padding:10px}.app_cell .delete_app{color:#e43737;text-decoration:none;text-shadow:none!important}.app_cell .delete_app:hover{text-decoration:underline}.app_details{margin-left:10px;color:#222548;text-shadow:2px 2px 0 white}.app_details h2{font-size:1.6em}.app_details h2 a{color:#222548;text-decoration:none}.app_details p{font-size:1.2em}.app_control{display:block;width:60px;text-align:center;margin-right:10px;text-decoration:none;color:#e43737}.app_control:hover .app_control_caption{text-decoration:underline}.app_control_caption{padding-top:5px}.control_frame{display:block;clear:both;width:60px;height:55px;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;line-height:60px;text-align:center;padding-top:15px;margin-bottom:5px;background:#e1e3e0}.control_icon{display:block;height:40px;width:40px;margin:0 auto;background:#e1e3e0 url(/images/actions-icons.png?1307048560) no-repeat}.logs_icon{background-position:0 -80px}.update_icon{background-position:0 -40px}.console_icon{background-position:0 -120px}.url-box{color:#002060;font-size:1.3em;padding:10px;width:434px;border:2px solid #002060;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px}.url-form{float:left}.url-holder{padding-bottom:15px}.url-holder h2{font-size:1.3em;font-weight:bold;margin:10px 0;color:#002060;float:left;clear:right;padding-left:10px}.url-holder h3{font-size:1.4em;margin-bottom:10px}.title{margin-bottom:20px}.title h1{font-size:1.4em;font-weight:bold;color:#c1af8a}.error-logs{height:200px;border:1px solid;overflow:scroll;padding:10px}.progress{display:none;width:530px;height:68px;font-size:1.3em;border-radius:16px;-moz-border-radius:16px;-webkit-border-radius:16px}.progress-percent{float:left;margin:0 15px}.throbber-holder{float:left;margin-right:15px;position:relative;top:10px}.progress-overlay{position:absolute;width:0;height:68px;opacity:.4;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0.08,#002060),color-stop(0.54,#364363));background-image:-moz-linear-gradient(center bottom,#002060 8%,#364363 54%)}.progress-box{position:relative;line-height:68px;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0.05,#323232),color-stop(0.1,#616161),color-stop(0.6,#c8c8c8),color-stop(0.8,#d6d6d6),color-stop(0.9,#e6e6e6));background-image:-moz-linear-gradient(center bottom,#323232 5%,#616161 10%,#c8c8c8 60%,#d6d6d6 80%,#e6e6e6 90%);color:#333}.progress-todo-list{list-style:none;position:absolute;left:65px}.showcase_app{float:left;display:block;width:279px;height:129px;padding:11px;background:#f5f6f2;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;text-decoration:none}.showcase_app:hover span{text-decoration:underline}.showcase_app h3{color:#e43737;font-size:1.5em}.showcase_app cite{color:#222c48}.showcase_images{float:left;margin-right:10px}.showcase_text{width:180px}#customizer{background:white;padding:30px;width:520px}#customizer h2{color:#7b8287;font-size:1.5em}#customizer ul{border:1px solid #bcc3c8;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;display:block;list-style-type:none;margin-left:0}#customizer ul li{border-bottom:1px solid #bcc3c8;padding:7px}#customizer p.domain_widget{padding-top:11px}#customizer .domain_input{width:388px;margin-right:4px}#variable_controls{padding-top:28px}.save_strip{height:40px;background:#f5f6f2;width:520px;text-align:center;padding:10px}body.logs_show,body.logs_index,body.console_index{background:white!important}body.logs_show #main,body.logs_index #main,body.console_index #main{padding:0;margin:0}body.logs_show .cursor,body.logs_index .cursor,body.console_index .cursor{background:#0e1e3a!important}.log_header{position:fixed;z-index:9000;width:100%}.log_body{padding-top:60px;font-family:sans-serif,monofont}.console_input{width:100%;display:inline}.terminal .clipboard{position:absolute;bottom:0;left:0;opacity:.01;filter:alpha(opacity=0.01);filter:alpha(opacity=0.01)}.cmd>.clipboard{position:fixed}.terminal{padding-left:10px;padding-right:10px;position:relative;overflow:hidden}.cmd{padding:0;margin:0;height:1.3em}.terminal{font-family:monospace;color:black;background-color:white;font-size:12px}.terminal .terminal-output{font-family:monospace;color:black;background-color:white;font-size:12px}.terminal .terminal-output div{display:block;font-family:monospace;color:black;background-color:white;font-size:12px}.terminal .terminal-output div div{font-family:monospace;color:black;background-color:white;font-size:12px}.cmd{font-family:monospace;color:black;background-color:white;font-size:12px}.terminal .cmd span,.terminal .cmd div{font-family:monospace;color:black;background-color:white;font-size:12px}.terminal .cmd span{float:left}.terminal div::selection,.terminal span::selection,.terminal .cmd span.inverted,.terminal div::-moz-selection,.terminal span::-moz-selection{background-color:black;color:white}.terminal .terminal-output div.error{color:red}.terminal .terminal-output div.error div{color:red}.tilda{position:fixed;top:0;left:0;width:100%;z-index:1100}.log_info{display:block;height:50px;line-height:50px;padding-left:15px}.log_controls{height:50px;line-height:50px}.sessions-holder{background:#f5f6f2;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;padding:30px;width:310px}.sessions-holder a{text-decoration:none;color:#e43737}.sessions-holder a:hover{text-decoration:underline}.sessions-holder p{padding-bottom:20px}.sessions-holder label{color:#7b8287;font-weight:bold;text-shadow:0 0 2px white}.sessions-holder input[type="text"],.sessions-holder input[type="password"]{margin-top:8px}.sessions_title{color:#222c48;padding-bottom:15px}.sessions_title a{text-decoration:none;color:#e43737}.sessions_title a:hover{text-decoration:underline}html{height:100%}body{height:100%;background:#eeeded url(/images/pattern-bg.png?1307048560) repeat;color:#222548}body>div#root{height:auto;min-height:100%}div#root{height:100%;width:990px;margin:0 auto;background:white;-moz-box-shadow:0 0 10px #888;-webkit-box-shadow:0 0 10px #888;box-shadow:0 0 10px #888}.main_header{display:block;height:100px}#footer{display:block;background:#222c48 url(/images/footer-bg.png?1307048560);width:960px;margin:0 auto;height:70px;margin-top:-70px!important;color:white;padding:15px}#footer ul{float:left;display:block;margin-right:72px;list-style-type:none;margin-left:0}#main{display:block;padding-bottom:100px;background:white}#content{padding:15px}.main_header,.log_header{height:50px;background:#222c48;border-bottom:5px solid #e43737}.main_header a,.log_header a{text-decoration:none;color:#e43737}.main_header a.logo,.log_header a.logo{color:white;padding:15px 0 0 15px}.main_header span,.log_header span{color:white}.main_site_nav a{display:block;height:50px;float:left;padding-right:25px;text-shadow:0 0 3px black;text-align:center;margin-top:17px}.main_site_nav span{color:#e43737!important}.main_site_nav a.hot .flag{display:block;border-color:transparent transparent #e43737 transparent;border-style:solid;border-width:9px;margin:0 auto;width:0;height:0}#auth_links{padding:16px 15px 0}#auth_links .flag{display:block;border-color:white transparent transparent transparent;border-style:solid;border-width:7px;float:right;margin:5px 0 0 5px;width:0;height:0}.section_header{background:#f5f6f2 url(/images/title-bg.png?1307048560);padding:30px 15px}.section_logo{height:66px;height:66px;padding-left:65px}.section_title{color:#e43737;line-height:66px;font-size:2.8em;display:block;height:66px;padding-left:15px}.section_logo{background:url(/images/title-icons.png?1307048560)}.apps{background-position:0 -65px}.sign_up{background-position:0 -130px}.section_text{height:66px;line-height:66px;font-size:1.3em;color:#222c48}.section_text a{color:#e43737;text-decoration:none}.section_text a:hover{text-decoration:underline}.divider{height:40px;width:960px;padding:0 15px;line-height:40px}.divider label{color:#7b8287;text-shadow:0 0 3px white}.divider input[type="text"]{margin-left:15px;height:22px;width:120px;padding:0 10px;border:2px solid #7b8287;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px}.divider.dark{background:#bbc2c7;-moz-box-shadow:inset 0 2px 5px #888,inset 0 -2px 5px #888;-webkit-box-shadow:inset 0 2px 5px #888,inset 0 -2px 5px #888;box-shadow:inset 0 2px 5px #888,inset 0 -2px 5px #888}.bushi_box{background:#f5f6f2;@rounded_corners(10px);padding:30px;font-weight:bold;color:#7b8287}.bushi_box a{color:#e43737;text-decoration:none}.bushi_box a:hover{text-decoration:underline}#auth_links{display:block;background:#222c48}#auth_links nav{display:none;padding:10px 0;background:#222c48}#auth_links.open{-moz-box-shadow:inset 0 5px 5px #888,0px 5px 5px #888;-webkit-box-shadow:inset 0 5px 5px #888,0px 5px 5px #888;box-shadow:inset 0 5px 5px #888,0px 5px 5px #888;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px}
</style>
<style type="text/css">
h1{font-size:28px;}
h2{font-size:20px;}
h3{font-size:18px;}
h1,h2,h3,h4{padding-bottom:10px;font-weight:bold;}
ul{list-style-type:square;}
.topic{padding:10px;}
.topic ul{padding:5px 0}
.topic p {font-size:14px;line-height:1.5em;padding:5px 0;padding-left:10px;}
.topic h3 {padding-left:10px;}
pre {padding:10px;background:#CECECE;margin-left:10px;}
a {color:#E43737}
a:hover{text-decoration:none;}
</style>
</head>
<body class="static_splash">
<div id="root">
<div class="clearfix main_header">
<a href="http://bushi.do" class="logo l clearfix">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA6ZJREFUeNq8WL2O00AQtoEOgUyFBAVpEBICYZ6AXH1CBHgB3xPEiAeIr6WJrqXxVVRIOdprHDoKdD6aEw1yKA5B5UiIDmRmw7fR3MYbz9o5Vvq0TjyemZ2dv13fazGqqrpF0z3CNcJl9RfhIuE3SC4R/hB8wi9CSfjs+/4XV1m+o2IRTXcJ3wkfCT8JP0jwNwv9DZquE64Q7hBuE06Ift/b5CBBA8JrQn8DvPrgNdiEYgFhQki8DQ/FE7yDtgxCwls1e+c0WsvAhx/OU7nWsv6nchKZvulzNGWEHYq04wamPZp6Qh1mxG/WpCRNKWGLaOc2InFAEF1WyUfmEji1FkTYj0j7h0JmFR7Vam3WVlZZRCnx9YV8c5p2ifzAfFFI85zaXmad8Rq6lNH1HPJkoX9fYBViTlpPhT7FF/J+Dd07yzf20vZPhzl0WtRMNYaEPYfAe8K2d77G8nMgwDfSErcHnfZ1iFfSjG5sr+uQbnMA+lBtsQqOqTW0V8eoQ8obCbdZ6TJduAXSReLgwHqEjolYj75DysnUQ6kdUmD2AkLiFtUixreFxJ2UTko3T7IqKJeDNu1Q0nTayZuU1LvVqKChXOe2C1vXqKRW0EdFOEY6MENd1c8J0sTOSnbv0ACj7iqZT1HThwZZsKhEDWmhxIoDZs2U+WLB37dohhPIsA5twV2Ete5Q1KEo0itU2R1Rm2Fl6n9tzQEsveWQqpbbyHZIJfGv4DVD5Rl5Nt/C6k5rFnXGd5hVE4eUY3ZCNvmLIMnr2iEIPgK4orEtkISpg49T8A8s7Vy+DH1LSRsaeawE6hgmAp8rzbxLz6/qSuAypbFVRQbBtqkIqyR1VnwmTNR94/+rhOcWS0e8MEu73rwuWeO2wQwA06dyoYzsTAPDMnxf+HFRd/BmAcPHmJ2vM0lkr1QsVswlDApb9EG5CYQMWAXSo3CwXmirk3GDH+WG8B7zpYmlrythyVzAvzL58KjVURZasv6hfseiMsbvm5ZtP9IBiJ06rKs+eKfl95pWkEOB+4THhJd1LRm2MzbOtibNG0s+TDBHRkMSb7IlypvaeCxO2i2lnkMq0UqGa6wtbXS3LdYNuSzXTiNnDh7VMO50V6g7ZuluSQ7e2SYulGqahbQrw9jo2SZtbkeRmiZGr9l4tpHel6hAGKP344dy1UN+wuyxO5qQ3SY8wMy3UPWSL5puvNreL6cdDu6pq+/6LRUNYM1HsJbNN48BdX9z4Npxq/FXgAEAc+91r4huoIUAAAAASUVORK5CYII=" class="l" style="position:relative;bottom:10px;">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF0AAAAUCAYAAADvJjFnAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABb9JREFUeNrsWW9MW1UUpy0tbVmBUgoriBMmMD4gOjDjjwhkKBkxREJwUQkhxJioHyDAwif5Al8IkEgAP/DHkCWaokYTCYkEE5IhmIGkiAozgGNDwFKBAl3HKFDPqeeRR33vUejW0GQnObn33ft+955z7u09v/sqstvtPk/FsyIWiUSSmZmZAqjbhXR/f39zcXGxCt73BfXhwkHbOepDVVit1mGmz2g01kGblPrEBoMhc3d39z7ffNvb2316vT5c9J8cNx6qFNuYfnwXMS5gj/TxKb7jZA+qn8lkahPCoY/oK/qMGEfQQf3Gx8cjjlsdiUQSEBkZ2dTf358jgDvPqqvX19cDmYfZ2VkdFP6gorq6ugsJCQl9Mpkskm8+lUr1RkZGRgtU5ceMx4g/tTmE3lW7gD3SxydKpfKV3Nzcb6CqoCbp3NxcnVar/UgIhz6ir+gz+s4EXbK2thbg6k9Do9G8SYHgwp1j1RU7OztMwHy2trawT4a4uLi413x9fVXHzQUOXWMFjm+8Q/+ozSH0rsIF7JE+IVGr1VegCKHHQLlcnusKDn1Fn9F3Juj/E/gZdIF+QtoBO8PM9JnNZhXLmdOIbHV1NZBnvraSkpIfWLsEd2OgJ8/b1tbWX8COT7nsYYLNbDD2YjnhULvYIPLZsdC+PHMPgM5R/RmbzYYrGoQPcLZLmBU7pUjgnJPyzAebR35tYGBABwu9Oz8/P4FTejLooaGhS1B8hfsLT5WIiIi3oMxh28+UQEJEPDiU50HfY/rJZ4lQ0DEAk1S3SKVS25N0tKmpSVFdXT2FO6Gzs3ML9FfMGaD3QP/xZNAhl2xDMY2bEx8hmFmnwAkfN1yNo6OjH0RHRzvAy8vLQXCOa5i+zc3NB4/b0aqqqpsVFRVtGxsb/UtLS7fa29uHIfAm6LKCPuTCxMfHJwJ7qoFzFt/xAazSz88v0RsoI2fQU1NT32fqYWFhh+1TU1NLjY2Ng/hrcWPO/crKyp+Ki4u3IFEGsNlRSEjI26gdHR0+DQ0Nnw8NDd0oLCzkXOSoqKhLUFzisvPM8/STvBwTE6MpKirCJPrIjTkRu5KWltbQ19c3Z7FYbDxM4d3s7Oxv3Uza3rPTW1pafhOLxY4EBslCDIG+qNPplAqFQp6ZmZkKzV+6s9NB/wKO+31+fr4R6hdLS0sTIcDRKSkputjY2EAOinbfeZCJiQnTyMjICrAEO9kpSk9P1yUlJWm9Muhwvt7E3chQ86ysrBsYdEdWtViUxNPdOWLwyJgB/RsTf09PzzBoODIlOHoym5ubszko2hGZnJy8U15e/gWaxFC4rq6ud7w26CDjlIlRLkCCOjxO9vb2fN2kjCK41YYlJyd/CPTwMoz9LJQ5xJbOAzfHy1A2B0U7IsHBwchqbrHYTQi0ve61xwtxTYb6qCDJPU6uLIFA5wAV+5h9eyV6aIHkanJlEBhjlwK+6tTmnUGH89FwmsFcxMng0qO9evUqG7dwVgKSl5d3Hey5/iRx4pMODglsHooDTIh6vX7aarU+OiHOp7u7+64ruOnp6XuevpGewJ59g8Hwhys49BVjxWBdDjpSOwjWj7W1tfgtYgcT6djY2N2amhr9ysqKVQgHiXEQcIMs3ALw/e+EcOCQsaCgoBXvY2ch4Bz2PKivr/+6t7d3UgiHPpaVlX0GPv/JkA/8doBsJAH0VdBwvpODJvsd9DZeVGnXBoO+BHoZWQhH0rNTfsAr/s/EiA6IBiaBvkh1Zxwat0Bz3aGbaTjZ+AI936aEz3zrwG9DL4NeIZ+mKNEuH4Nl9/HdCbjswc8Uz9GceEnz56HHRvIdF8dspw82EqJlWoFJ7XSpWccbN6iNxSxUFDglxy/HTrubwe2xcgneRjU0p5jD2E1KlA9pHAXNE0TjrJMytkhpEwTT+GYWXgjL7pMI3C2c7RFR4NWkMg7cAdFjxOG3mQP8p0709O86z8u/AgwAFBadbaqZzG4AAAAASUVORK5CYII=" height="20" width="93" alt="bushido" class="l logo_text" style="margin-left:10px;">
</a>
</div>
<section id="main">
<div id="content">
<h1>Welcome To Your New Bushido App</h1>
<div class="topic">
<h2>Lets Get Started!</h2>
<ul>
<li><a href="#intro">Bushido Funk</a></li>
<li><a href="#overview">Anatomy of a Bushido App</a></li>
<li><a href="#users">Teams: Imagine all the Users, authentication, authorization living life in peace</a></li>
<li><a href="#email">Email: Sending, receiving, and your friendly neighborhood MailRoute</a></li>
<li><a href="#storage">Storage: Keeping things you care for around</a></li>
<li><a href="#dns">Domains: Customizable bling!</a></li>
<li><a href="#events">Events: You're part of the party!</a></li>
<li><a href="#notifications">Notifications: Reach out and touch your users</a></li>
<li><a href="#bushibar">The BushiBar: Command Central</a></li>
<li><a href="#osr">OpenSourceRails.com: Now it's your time to shine!</a></li>
</ul>
</div>
<div class="topic">
<h2 id="intro">The Bushido Funk</h2>
<p>(By the way, we only support Ruby on Rails and expect that you have a passing familiarity with it before reading this guide. Bushido is a great tool for learning Rails, but the notes below are the <strong>diff</strong> for what most Rails developers already know) </p>
<p>Bushido (武士道) is a new kind of app development and distribution platform. It's:</p>
<ul>
<li>A platform where developers and companies can produce the highest-quality apps</li>
<li>A marketplace for end users to consume those apps with one click.</li>
<li>The next generation of inter-app communication</li>
</ul>
<p>But most of all, <strong>Bushido is a community</strong> of people (developers, companies, and end-users) helping one another get things done in the most efficient way possible.</p>
<h3>For Developers</h3>
<p>When your app is deployed to Bushido, we'll automatically provision all the resources you could possibly want: Storage, email, domains, directed-graph-engines, flying squirrels, small kingdoms of ice-cream people, etc. It's all there. Mostly anyway. We want you to not have to worry about designing for the "What if there's no ..." scenario. Development is simpler when you can assume a sane base to build on.<img src="http://www.renegadebs.com/miscjunk/Flying-Squirrel.jpg" alt="Flying squirrels for all!" title="Flying squirrels for all!" /></p>
<p>Your app is Open-source, which is <strong>the right</strong> development model. Open source isn't about getting <em>cheap</em> software, it's about getting <strong>the best</strong>. Using Bushido, you'll be able to earn money in a scalable way (distribution, not support), <em>and</em> benefit from the technically-minded portion of your users that add features and fix bugs in products because they want to see the app grow and better serve their needs. Everyone wins.<img src="http://www.instructure.com/assets/116/best_of_both_worlds.jpg" alt="Open-source software, the best of both worlds!" title="" /></p>
<p>Finally, apps on Bushido are symbiotic. We connect all the apps a team deploys through the Bushido Databus, so you can connect and interop with all the other apps a team is using without knowing ahead of time what apps will be there. This means a team can add your app at any time, with any other group of apps and know they 'just work' together. It's like a hippie-commune that actually gets work done.</p>
<h3>For Users</h3>
<p>It's the internet how it's supposed to be.
* Instant, easy: All Bushido Apps are deployed and fully usable with one-click.
* Team Aware: Set up your team once, and any app you deploy will instantly be available to everyone. Add or remove someone from your team, and it's instantly reflected across all apps.
* Integrated (Really!): Your apps all talk to each other through the Bushido Databus, so you know that adding that project management app and your help-desk app will get along just fine.
* No app lock-in: Apps works together through Bushido, so you can add in a new app or replace an existing one with ease. Apps compete on merit, not lock-in.</p>
</div>
<div class="topic">
<h2 id="overview">Anatomy of a Bushido App</h2>
<p>Alright, so we've clearly established how awesome Bushido is for everyone, so let's take a look at a typical Bushido application. The minimum Bushido-certified app distributed to end users:</p>
<ul>
<li>Is written in rails.</li>
<li>Has the <code>bushido</code> gem listed inside the Gemfile</li>
<li>Implements SSO: Single-sign on/off. Bushido Does this via CAS, and we provide a drop-in gem for Devise that makes it a <a href="#users">~15-second install</a>.</li>
<li>Implements Events: The basics are User.added, User.removed, User.updated, and App.claimed. Any other events are up to you, but there are a lot of <a href="#events_example">fun things</a> you can do!</li>
</ul>
<p>These few things let us create an amazingly slick experience for all end-users. And as you can see, Bushido apps aren't that far off from normal Rails apps. Really cool stuff.</p>
</div>
<div class="topic">
<h2 id="users">Teams</h2>
<p>tl;dr: Use Devise for authentication in your app, and all you have to do is add <code>gem 'devise_bushido_authenticatable', :git => 'https://github.com/Bushido/devise_cas_authenticatable.git'</code> to your Gemfile. That's it.</p>
<p>Bushido uses CAS to handle all SSO interactions, (<a href="http://www.jasig.org/cas/cas1-architecture">here's a good</a>, if dry, introduction) with an extra layer on top to handle individual authorization. The details of authentication and authorization are boring (as they should be! It's basic stuff!), so we'll give a a quick high-level over-view of how Bushido Authentication+Authorization work:</p>
<p># A user visits the app - a <a href="http://osr.gobushido.com/projects/kogo">totally-full-of-awesome web-based chat</a> with that dj feature they've always wanted
# The app transparently redirects the user to the Bushido login page. The app includes a note for where Bushido should send the user if they successfully log in.
# Bushido presents the user with the login form, and the user successfully logs in with their Bushido credentials
# Bushido checks to see if the user is allowed (authorized) to access the app, and automatically forwards them back to the app if so.</p>
<p>The tedious parts for developers are around sending the user to Bushido to log in along with the correct note, and handling an authenticated user being forwarded back to the app. This is all taken care of for you by Bushido's <a href="https://github.com/Bushido/devise_cas_authenticatable">Devise Authentication Gem</a>(we only support Devise right now, let us know at <a href="mailto:support@gobushido.com">support@gobushido.com</a> if you're looking for something else!). Just drop this into your gem file:</p>
<pre><code>gem 'devise_bushido_authenticatable', :git => 'https://github.com/Bushido/devise_cas_authenticatable.git'
</code></pre>
<p>And you're finished!</p>
</div>
<div class="topic">
<h2 id="email">Email</h2>
<p>tl;dr: Just set <code>config.action_mailer.delivery_method = :bushido</code> in your <code>config/environments/$RAILS_ENV.rb</code> file, and your app can send emails. Does it get any simpler?</p>
<p>Every Bushido app is provisioned with outgoing AND incoming apps. Simply use the <code>:bushido</code> ActionMailer delivery method and the app will configure itself.</p>
<p>Any email sent to your app's domain will automatically hit your app, and the Bushido gem will use MailRoute (similar to the routing system in Rails) to parse the email and fire off the correct method. For more info on how to use MailRoute, checkout the documentation.</p>
</div>
<div class="topic">
<h2 id="storage">Storage</h2>
<p>tl;dr: Bushido uses an S3-compatible interface for permanent storage (though it may not be S3!). You'll find the credentials in your ENV vars:</p>
<pre><code>access_key_id: <%= ENV['S3_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['S3_SECRET_ACCESS_KEY'] %>
bucket: <%= ENV['S3_BUCKET'] %>
</code></pre>
<p>Actually, the tl;dr is probably good enough :) Every app is provisioned with S3 or S3-like storage, and any ruby gem that uses S3 will be compatible.</p>
<p><img src="http://erroraccessdenied.com/files/images/tldr%20cat.preview.jpg" alt="tl;dr ftw!" title="" /></p>
</div>
<div class="topic">
<h2 id="dns">Domains</h2>
<p>Once a user has started using your cool app, they might want to set it up on their own domains. Ever app that's booted will be assigned a memorable and positive name by default, like "ingenious-mountain-7173" (mountains are ingenious!) or "tranquil-fuji-9946" (Fuji is tranquil!), and this serves as the default subdomain as well. So the app "established-leaf-6661" would by default be accessible at "established-leaf-6661.bushi.do". But a user can change the subdomain either through the Bushido App dashboard, or you can provide them with a customized interface in-app to do so and simply make a single call, <code>Bushido::App.set_subdomain('whatever-subdomain-you-want')</code> (but it's probably a good idea to do a <code>Bushido::App.subdomain_available?('whatever-subdomain-you-want')</code> first!).</p>
<p>You can also add full-domains this way as well (e.g. <www.housecollars.co.uk>), and if the domain is registered through Bushido, the DNS will be autoconfigured. Otherwise you can check on a domain to see if it's properly configured via <code>Bushido::DNS.subdomain_configured_correctly?('www.housecollars.co.uk')</code> and you'll either get a <code>{:success => true}</code> response, or an array of error messages that you can show to your end user (i.e. 'The CNAME for this domain does not point to <code>proxy.gobushido.com</code>').</p>
</div>
<div class="topic">
<h2 id="events">Events</h2>
<p>Events are the way Bushido apps communicate with each other - it's push vs pull. As a developer, it's waaaay nicer. In fact, our zen-scientists say it's roughly 100x nicer (<em>note: this is made up, and we don't have any zen scientists currently. Estimates are our own, and developers on the Bushido platform</em>). Reacting to events is super simple - we'll implement the require hooks right now! Open <code>lib/bushido/hooks/app_hooks.rb</code> and paste:</p>
<pre><code>class BushidoAppHooks < Bushido::EventObserver
def app_installed
user = User.create!(:user.email => "#{Bushido::App.name}@#{Bushido::App.domain}"
:user.first_name => "#{Bushido::App.name}"
:user.last_name => "#{Bushido::App.domain}")
user
end
def app_claimed
User.find(1).update_attributes(:email => params['data']['email'],
:ido_id => params['data']['ido_id'])
end
end
</code></pre>
<p>We're creating a random user when the app is first installed, and then updating that user when the app is claimed - Why? <strong>Lazy registration</strong>, which, being lazy, <strong>is awesome</strong>. When the app is deployed like this, a user can anonymously launch the app with one click (no registration!) and be in your app using it in under a second. Bushido will take care to make sure that two anonymous users don't get sent to the same instance of the app, so everything stays clean. We'll also prompt them to claim the app so they can keep it, otherwise we throw the instance away in 24 hours. And when they do claim it, you can see that we update the user's details in-place (this will happen near-instantly), making for <em>another</em> super-slick experience. And as a developer you only had to put in a few lines to handle these events!</p>
<p>To create an event observer, simply subclass <code>Bushido::EventObserver</code> and implement whatever events you want to react to as instance methods. When a new event comes in, Bushido will check for observers listening for a given event, and fire them off with pre-formatted data. Event data always has the same basic form: <code>{:category => 'string', :event => 'string', :data => {:hash_with => :event_standardized_schema}}</code>. The name of your instance method should be <code>def #{category}_#{event}</code>, e.g. <code>def comment_created</code>, or <code>def app_claimed</code>. The schema for each event is standardized and available in the Bushido Developer community documentation.</p>
<p>The event will be fired with the information accessible via the <code>params</code> method. So <code>params['category']</code> will return the event category name, and <code>params['data']</code> will return the event-specific data in a hash. All the keys are strings.</p>
<p>Now there are only three events left - create a blank file in <code>lib/bushido/hooks/user_hooks.rb</code> and paste:</p>
<pre><code>class BushidoUserHooks < Bushido::EventObserver
def user_added
# User might have been added before, so we'll find_or_create them
# by their permanent_id (ido_id)
user = User.find_or_create_by_ido_id(params['data']['ido_id'])
user.update_attributes!(:email => params['data']['email'],
:active => true)
end
def user_removed
# Disable the user instead of destroying them, so all the data
# associated with them stays (e.g. comments, projects, leads,
# contacts, etc.)
User.find_by_ido_id(params['data']['ido_id']).try(:disable!)
end
def user_updated
data = params['data']
user = User.find_by_ido_id(data['ido_id'])
if user
# Re-use the CAS login method to set all the extra attributes we
# care about (first_name, last_name, email, local, timezone,
# etc.)
user.bushido_extra_attributes(data)
user.save
end
end
end
</code></pre>
<p>This will work perfectly for ~85% of the apps, but it allows you to customize what happens if you'd like (maybe send them a congratulatory email on how their life is about to change now that they have access to the amazingness of your app). Now whenever a user adds or removes another user to their team, or a user updates their profile information, your app will automatically get the change and handle it beautifully. Like a piece of art. Code art. </p>
<p>That's it, you're fully integrated to the basic hooks. But wait, there's more! What if you want to react to some other events? What if in your chat app you want to paste a message to the main channel whenever a new user comments on your blog (also a Bushido app)? Simple: react to the event!</p>
<pre><code>class BushidoBlogHooks < Bushido::EventObserver
def comment_created
# Hypothetical method that sanitized and sends messages to a channel
# from the app bot
data = params['data']
Channel.default.send_message("Exciting news guys - new comment!!\n#{data['author']} says: '#{data['body']}'")
end
</code></pre>
<p>And now any blog on the Bushido platform that sends the "comment_created" event will be able to interact with your app! This can be used for site monitors ("The site is down guys!"), new user signups, etc. If you're interested in interacting with an app in a way that it doesn't currently send events for, you're encouraged to think of a generalized event schema and make it available to the community so apps can just work together. Or another example, where you're creating a developer-focused project management app, and you want any new help tickets created by support teams or end users to automatically flow through to the app:</p>
<pre><code>class BushidoTicketHooks < Bushido::EventObserver
def ticket_created
data = params['data']
task = Project.find_by_title(data['project_title']).tickets.find_or_create_by_title(data['title'])
task.priority = 10 # User-submitted tickets create the highest-priority tickets
task.save
end
</code></pre>
<p>And now your project management app can interact with help-desk/ticketing software, regardless of what app it is.</p>
<p>The whole thing makes you teary-eyed, doesn't it?</p>
</div>
<div class="topic">
<h2 id="notifications" >Notifications</h2>
<p>Bushido can reach beyond the web - you can send all of your notifications to the user via <code>Bushido::User.notify(ido_id, title, body, category="general")</code> call. This will either be sent to their notification center on the Bushido dashboard, to their desktop, or to their mobile, as the user has configured. Use this for ephemeral details and activity streams that the are best consumed passively (e.g. 'lead contact info updated in FatFreeCRM by TheSalesGuy`, or 'New help ticket submitted by LovingUser', etc.)</p>
</div>
<div class="topic">
<h2 id="bushibar">The BushiBar</h2>
<p>A neat component of Bushido is our Bushi Bar. The Bushi Bar is a friendly tool that allows users to update their profile, their team, and their other apps while in-app. You have the ability to show it only on certain paths simply by calling </p>
<pre><code>Bushido::Bar.set_bar_display_paths('/admin', '/other/path/where/the/Bushido/bar/should/be/shown')
</code></pre>
<p>It's in your best interest to show the bar on all admin screens, where a user might want to quickly update their apps, profile, or team. If it's a page that will be shown to non-users (e.g. a visitor-facing page on CMS), don't show the bar.</p>
</div>
<div class="topic">
<h2 id="osr">OpenSourceRails.com</h2>
<p><a href="http://osr.gobushido.com">Open-source Rails</a> is the premier listing of high-quality open-source rails apps, most of which are integrated with the Bushido system and can be launched with one click. We publish only the best apps here - and we'd love to show off yours!</p>
</div>
</div>
</section>
</div> <!-- end of #ro0t -->
<footer id="footer">
<div class="main_footer clearfix">
<!-- <div class="footer_disclaimer">
</div> -->
</div>
</footer>
</body>
</html>