bigbang 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/doc/frames.html DELETED
@@ -1,13 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3
-
4
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
- <head>
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
7
- <title>Documentation by YARD 0.7.2</title>
8
- </head>
9
- <frameset cols="20%,*">
10
- <frame name="list" src="class_list.html" />
11
- <frame name="main" src="index.html" />
12
- </frameset>
13
- </html>
data/doc/index.html DELETED
@@ -1,232 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
- <title>
7
- File: README
8
-
9
- &mdash; Documentation by YARD 0.7.2
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- relpath = '';
19
- if (relpath != '') relpath += '/';
20
- </script>
21
-
22
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
-
24
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
-
26
-
27
- </head>
28
- <body>
29
- <script type="text/javascript" charset="utf-8">
30
- if (window.top.frames.main) document.body.className = 'frames';
31
- </script>
32
-
33
- <div id="header">
34
- <div id="menu">
35
-
36
- <a href="_index.html" title="Index">Index</a> &raquo;
37
- <span class="title">File: README</span>
38
-
39
-
40
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
- </div>
42
-
43
- <div id="search">
44
-
45
- <a id="class_list_link" href="#">Class List</a>
46
-
47
- <a id="method_list_link" href="#">Method List</a>
48
-
49
- <a id="file_list_link" href="#">File List</a>
50
-
51
- </div>
52
- <div class="clear"></div>
53
- </div>
54
-
55
- <iframe id="search_frame"></iframe>
56
-
57
- <div id="content"><div id='filecontents'><h1>BigBang</h1>
58
- <h2>What is BigBang?</h2>
59
- <p>
60
- Bigbang is a tool to create clusters using Amazon EC2 in a scriptable way.
61
- You create a descriptor file (called universe file) which describes your
62
- whole cluster and then you can launch it on EC2 with a single command.
63
- Bigbang allows you to use the same &quot;universe&quot; file to create
64
- multiple &quot;universes&quot;, say for example a live, a QA and staging
65
- clusters. You can even use it to automate the creation of a cluster for
66
- performance testing purposes.
67
- </p>
68
- <h2>What can it do for you?</h2>
69
- <p>
70
- BigBang can do the following:
71
- </p>
72
- <ul>
73
- <li>startup ec2 instances
74
-
75
- </li>
76
- <li>allocate and assign elastic ip&#8217;s to instances
77
-
78
- </li>
79
- <li>assign instances to load balancer
80
-
81
- </li>
82
- <li>create DNS record entries (Amazon and Zerigo supported).
83
-
84
- </li>
85
- <li>shutdown your whole cluster
86
-
87
- </li>
88
- </ul>
89
- <h2>How does it work?</h2>
90
- <p>
91
- As stated before, all you have to do is create a &quot;universe.rb&quot;
92
- file which describes your cluster. You then run &quot;bigbang explode
93
- &lt;cluster-name&gt;&quot; and it will &quot;explode your universe&quot;
94
- :).
95
- </p>
96
- <h2>Installation</h2>
97
- <pre class="code">
98
- <span class='$&gt; gvar id'>$&gt;</span> <span class='gem identifier id'>gem</span> <span class='install identifier id'>install</span> <span class='bigbang identifier id'>bigbang</span>
99
- </pre>
100
- <h2>How does it bootstrap the boxes?</h2>
101
- <p>
102
- Bigbang uses a &quot;git-based&quot; bootstraper. What it means it that you
103
- configure a git repo which contains a &quot;run&quot; script. Bigbang will
104
- make sure this repo is cloned inside your ec2 instance and executed. What
105
- this script does is up to you. It can then for example install and setup
106
- puppet or chef which will continue the provisioning of the instance.
107
- </p>
108
- <h2>A simple example</h2>
109
- <p>
110
- Consider the following universe file:
111
- </p>
112
- <pre class="code">
113
- <span class='universe identifier id'>universe</span> <span class='do do kw'>do</span>
114
- <span class='config identifier id'>config</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='c identifier id'>c</span><span class='bitor op'>|</span>
115
- <span class='c identifier id'>c</span><span class='dot token'>.</span><span class='access_key_id identifier id'>access_key_id</span> <span class='assign token'>=</span> <span class='string val'>&quot;YOUR-AMAZON-ACCESS_KEY&quot;</span>
116
- <span class='c identifier id'>c</span><span class='dot token'>.</span><span class='secret_key identifier id'>secret_key</span> <span class='assign token'>=</span> <span class='string val'>&quot;YOUR-AMAZON-SECRET_KEY&quot;</span>
117
-
118
- <span class='c identifier id'>c</span><span class='dot token'>.</span><span class='dns identifier id'>dns</span> <span class='symbol val'>:provider</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>'Zerigo'</span><span class='comma token'>,</span>
119
- <span class='symbol val'>:zerigo_email</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>&quot;example@example.com&quot;</span><span class='comma token'>,</span>
120
- <span class='symbol val'>:zerigo_token</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='string val'>'xxxxxxxxxxxxx'</span>
121
-
122
- <span class='c identifier id'>c</span><span class='dot token'>.</span><span class='domain identifier id'>domain</span> <span class='assign token'>=</span> <span class='string val'>&quot;example.com&quot;</span>
123
- <span class='end end kw'>end</span>
124
-
125
- <span class='comment val'># describe your instance</span>
126
- <span class='instance identifier id'>instance</span> <span class='string val'>&quot;ubuntu&quot;</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='i identifier id'>i</span><span class='bitor op'>|</span>
127
- <span class='i identifier id'>i</span><span class='dot token'>.</span><span class='ami identifier id'>ami</span> <span class='assign token'>=</span> <span class='string val'>&quot;ami-e2af508b&quot;</span>
128
- <span class='i identifier id'>i</span><span class='dot token'>.</span><span class='key_name identifier id'>key_name</span> <span class='assign token'>=</span> <span class='string val'>&quot;dev&quot;</span>
129
- <span class='i identifier id'>i</span><span class='dot token'>.</span><span class='type identifier id'>type</span> <span class='assign token'>=</span> <span class='string val'>&quot;m1.small&quot;</span>
130
- <span class='i identifier id'>i</span><span class='dot token'>.</span><span class='bootstrap_repo identifier id'>bootstrap_repo</span> <span class='assign token'>=</span> <span class='string val'>&quot;git://github.com/giorgenes/ec2-chef-bootstrap.git&quot;</span>
131
- <span class='end end kw'>end</span>
132
-
133
- <span class='comment val'># run a single instance</span>
134
- <span class='run_single_instance identifier id'>run_single_instance</span><span class='lparen token'>(</span><span class='string val'>&quot;ubuntu&quot;</span><span class='rparen token'>)</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='r identifier id'>r</span><span class='bitor op'>|</span>
135
- <span class='r identifier id'>r</span><span class='dot token'>.</span><span class='domain identifier id'>domain</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='string val'>&quot;db&quot;</span><span class='rbrack token'>]</span>
136
- <span class='r identifier id'>r</span><span class='dot token'>.</span><span class='wildcard_domain identifier id'>wildcard_domain</span> <span class='assign token'>=</span> <span class='true true kw'>true</span>
137
- <span class='r identifier id'>r</span><span class='dot token'>.</span><span class='elastic_ip identifier id'>elastic_ip</span> <span class='assign token'>=</span> <span class='true true kw'>true</span>
138
- <span class='end end kw'>end</span>
139
-
140
- <span class='comment val'># runs a cluster of db instances</span>
141
- <span class='run_cluster identifier id'>run_cluster</span><span class='lparen token'>(</span><span class='string val'>&quot;ubuntu&quot;</span><span class='rparen token'>)</span> <span class='do do kw'>do</span> <span class='bitor op'>|</span><span class='r identifier id'>r</span><span class='bitor op'>|</span>
142
- <span class='r identifier id'>r</span><span class='dot token'>.</span><span class='domain identifier id'>domain</span> <span class='assign token'>=</span> <span class='lbrack token'>[</span><span class='string val'>&quot;app&quot;</span><span class='rbrack token'>]</span>
143
- <span class='availability_zone identifier id'>availability_zone</span> <span class='string val'>&quot;us-east-1a&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='integer val'>1</span>
144
- <span class='availability_zone identifier id'>availability_zone</span> <span class='string val'>&quot;us-east-1b&quot;</span> <span class='assign token'>=</span><span class='gt op'>&gt;</span> <span class='integer val'>1</span>
145
- <span class='end end kw'>end</span>
146
- <span class='end end kw'>end</span>
147
- </pre>
148
- <p>
149
- In this example we have a single instance of &quot;ubuntu&quot; AND a
150
- cluster of &quot;ubuntu&quot;. So if you run for example &quot;bigbang
151
- explode live&quot; it will do the following:
152
- </p>
153
- <ul>
154
- <li>For the single instance:
155
-
156
- <ul>
157
- <li>create an ec2 instance with type &quot;m1.small&quot; and ami and key as
158
- stated.
159
-
160
- </li>
161
- <li>allocate an elastic ip and associate with the intance.
162
-
163
- </li>
164
- <li>clone the specified repo inside the box and run it (in this example, it
165
- will install chef).
166
-
167
- </li>
168
- <li>create DNS records pointing to the instance: live.db.example.com
169
-
170
- </li>
171
- <li>it will also create wildcard DNS records: *.live.db.example.com
172
-
173
- </li>
174
- </ul>
175
- </li>
176
- <li>For the cluster
177
-
178
- <ul>
179
- <li>create 2 ec2 instances on the specified availability zones.
180
-
181
- </li>
182
- <li>clone the repo in the boxes and install chef
183
-
184
- </li>
185
- <li>create DNS records to the boxes: live.app0.example.com and
186
- live.app1.example.com
187
-
188
- </li>
189
- </ul>
190
- </li>
191
- </ul>
192
- <h2>Commands</h2>
193
- <ul>
194
- <li>creates a universe called &lt;universe-name&gt;
195
-
196
- <p>
197
- bigbang explode &lt;universe-name&gt;
198
- </p>
199
- </li>
200
- <li>list universes
201
-
202
- <p>
203
- bigbang list
204
- </p>
205
- </li>
206
- <li>kill a universe
207
-
208
- <p>
209
- bigbang kill &lt;universe-name&gt;
210
- </p>
211
- </li>
212
- <li>test configuration
213
-
214
- <p>
215
- bigbang test
216
- </p>
217
- </li>
218
- </ul>
219
- <h1>IMPORTANT</h1>
220
- <p>
221
- This gem is still in very early development stage.
222
- </p>
223
- </div></div>
224
-
225
- <div id="footer">
226
- Generated on Sat Jul 16 01:05:15 2011 by
227
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
228
- 0.7.2 (ruby-1.8.7).
229
- </div>
230
-
231
- </body>
232
- </html>
data/doc/js/app.js DELETED
@@ -1,205 +0,0 @@
1
- function createSourceLinks() {
2
- $('.method_details_list .source_code').
3
- before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
4
- $('.toggleSource').toggle(function() {
5
- $(this).parent().next().slideDown(100);
6
- $(this).text("Hide source");
7
- },
8
- function() {
9
- $(this).parent().next().slideUp(100);
10
- $(this).text("View source");
11
- });
12
- }
13
-
14
- function createDefineLinks() {
15
- var tHeight = 0;
16
- $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
17
- $('.toggleDefines').toggle(function() {
18
- tHeight = $(this).parent().prev().height();
19
- $(this).prev().show();
20
- $(this).parent().prev().height($(this).parent().height());
21
- $(this).text("(less)");
22
- },
23
- function() {
24
- $(this).prev().hide();
25
- $(this).parent().prev().height(tHeight);
26
- $(this).text("more...");
27
- });
28
- }
29
-
30
- function createFullTreeLinks() {
31
- var tHeight = 0;
32
- $('.inheritanceTree').toggle(function() {
33
- tHeight = $(this).parent().prev().height();
34
- $(this).parent().toggleClass('showAll');
35
- $(this).text("(hide)");
36
- $(this).parent().prev().height($(this).parent().height());
37
- },
38
- function() {
39
- $(this).parent().toggleClass('showAll');
40
- $(this).parent().prev().height(tHeight);
41
- $(this).text("show all");
42
- });
43
- }
44
-
45
- function fixBoxInfoHeights() {
46
- $('dl.box dd.r1, dl.box dd.r2').each(function() {
47
- $(this).prev().height($(this).height());
48
- });
49
- }
50
-
51
- function searchFrameLinks() {
52
- $('#method_list_link').click(function() {
53
- toggleSearchFrame(this, relpath + 'method_list.html');
54
- });
55
-
56
- $('#class_list_link').click(function() {
57
- toggleSearchFrame(this, relpath + 'class_list.html');
58
- });
59
-
60
- $('#file_list_link').click(function() {
61
- toggleSearchFrame(this, relpath + 'file_list.html');
62
- });
63
- }
64
-
65
- function toggleSearchFrame(id, link) {
66
- var frame = $('#search_frame');
67
- $('#search a').removeClass('active').addClass('inactive');
68
- if (frame.attr('src') == link && frame.css('display') != "none") {
69
- frame.slideUp(100);
70
- $('#search a').removeClass('active inactive');
71
- }
72
- else {
73
- $(id).addClass('active').removeClass('inactive');
74
- frame.attr('src', link).slideDown(100);
75
- }
76
- }
77
-
78
- function linkSummaries() {
79
- $('.summary_signature').click(function() {
80
- document.location = $(this).find('a').attr('href');
81
- });
82
- }
83
-
84
- function framesInit() {
85
- if (window.top.frames.main) {
86
- document.body.className = 'frames';
87
- $('#menu .noframes a').attr('href', document.location);
88
- $('html head title', window.parent.document).text($('html head title').text());
89
- }
90
- }
91
-
92
- function keyboardShortcuts() {
93
- if (window.top.frames.main) return;
94
- $(document).keypress(function(evt) {
95
- if (evt.altKey || evt.ctrlKey || evt.metaKey || evt.shiftKey) return;
96
- if (typeof evt.target !== "undefined" &&
97
- (evt.target.nodeName == "INPUT" ||
98
- evt.target.nodeName == "TEXTAREA")) return;
99
- switch (evt.charCode) {
100
- case 67: case 99: $('#class_list_link').click(); break; // 'c'
101
- case 77: case 109: $('#method_list_link').click(); break; // 'm'
102
- case 70: case 102: $('#file_list_link').click(); break; // 'f'
103
- default: break;
104
- }
105
- });
106
- }
107
-
108
- function summaryToggle() {
109
- $('.summary_toggle').click(function() {
110
- localStorage.summaryCollapsed = $(this).text();
111
- $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
112
- var next = $(this).parent().parent().next();
113
- if (next.hasClass('compact')) {
114
- next.toggle();
115
- next.next().toggle();
116
- }
117
- else if (next.hasClass('summary')) {
118
- var list = $('<ul class="summary compact" />');
119
- list.html(next.html());
120
- list.find('.summary_desc, .note').remove();
121
- list.find('a').each(function() {
122
- $(this).html($(this).find('strong').html());
123
- $(this).parent().html($(this)[0].outerHTML);
124
- });
125
- next.before(list);
126
- next.toggle();
127
- }
128
- return false;
129
- });
130
- if (localStorage) {
131
- if (localStorage.summaryCollapsed == "collapse") $('.summary_toggle').click();
132
- else localStorage.summaryCollapsed = "expand";
133
- }
134
- }
135
-
136
- function fixOutsideWorldLinks() {
137
- $('a').each(function() {
138
- if (window.location.host != this.host) this.target = '_parent';
139
- });
140
- }
141
-
142
- function generateTOC() {
143
- if ($('#filecontents').length === 0) return;
144
- var _toc = $('<ol class="top"></ol>');
145
- var show = false;
146
- var toc = _toc;
147
- var counter = 0;
148
- var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
149
- var i;
150
- if ($('#filecontents h1').length > 1) tags.unshift('h1');
151
- for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
152
- var lastTag = parseInt(tags[0][1], 10);
153
- $(tags.join(', ')).each(function() {
154
- if (this.id == "filecontents") return;
155
- show = true;
156
- var thisTag = parseInt(this.tagName[1], 10);
157
- if (this.id.length === 0) {
158
- var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
159
- if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
160
- this.id = proposedId;
161
- }
162
- if (thisTag > lastTag) {
163
- for (i = 0; i < thisTag - lastTag; i++) {
164
- var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
165
- }
166
- }
167
- if (thisTag < lastTag) {
168
- for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
169
- }
170
- toc.append('<li><a href="#' + this.id + '">' + $(this).text() + '</a></li>');
171
- lastTag = thisTag;
172
- });
173
- if (!show) return;
174
- html = '<div id="toc"><p class="title"><a class="hide_toc" href="#"><strong>Table of Contents</strong></a> <small>(<a href="#" class="float_toc">left</a>)</small></p></div>';
175
- $('#content').prepend(html);
176
- $('#toc').append(_toc);
177
- $('#toc .hide_toc').toggle(function() {
178
- $('#toc .top').slideUp('fast');
179
- $('#toc').toggleClass('hidden');
180
- $('#toc .title small').toggle();
181
- }, function() {
182
- $('#toc .top').slideDown('fast');
183
- $('#toc').toggleClass('hidden');
184
- $('#toc .title small').toggle();
185
- });
186
- $('#toc .float_toc').toggle(function() {
187
- $(this).text('float');
188
- $('#toc').toggleClass('nofloat');
189
- }, function() {
190
- $(this).text('left');
191
- $('#toc').toggleClass('nofloat');
192
- });
193
- }
194
-
195
- $(framesInit);
196
- $(createSourceLinks);
197
- $(createDefineLinks);
198
- $(createFullTreeLinks);
199
- $(fixBoxInfoHeights);
200
- $(searchFrameLinks);
201
- $(linkSummaries);
202
- $(keyboardShortcuts);
203
- $(summaryToggle);
204
- $(fixOutsideWorldLinks);
205
- $(generateTOC);
data/doc/js/full_list.js DELETED
@@ -1,150 +0,0 @@
1
- var inSearch = null;
2
- var searchIndex = 0;
3
- var searchCache = [];
4
- var searchString = '';
5
-
6
- function fullListSearch() {
7
- // generate cache
8
- searchCache = [];
9
- $('#full_list li').each(function() {
10
- var link = $(this).find('.object_link a');
11
- searchCache.push({name:link.text(), node:$(this), link:link});
12
- });
13
-
14
- $('#search input').keyup(function() {
15
- searchString = this.value.toLowerCase();
16
- if (searchString === "") {
17
- clearTimeout(inSearch);
18
- inSearch = null;
19
- $('#full_list, #content').removeClass('insearch');
20
- $('#full_list li').removeClass('found').each(function() {
21
-
22
- var link = $(this).find('.object_link a');
23
- link.text(link.text());
24
- });
25
- if (clicked) {
26
- clicked.parents('ul').each(function() {
27
- $(this).removeClass('collapsed').prev().removeClass('collapsed');
28
- });
29
- }
30
- highlight();
31
- }
32
- else {
33
- if (inSearch) clearTimeout(inSearch);
34
- searchIndex = 0;
35
- lastRowClass = '';
36
- $('#full_list, #content').addClass('insearch');
37
- $('#noresults').text('');
38
- searchItem();
39
- }
40
- });
41
-
42
- $('#search input').focus();
43
- $('#full_list').after("<div id='noresults'></div>");
44
- }
45
-
46
- var lastRowClass = '';
47
- function searchItem() {
48
- for (var i = 0; i < searchCache.length / 50; i++) {
49
- var item = searchCache[searchIndex];
50
- if (item.name.toLowerCase().indexOf(searchString) == -1) {
51
- item.node.removeClass('found');
52
- }
53
- else {
54
- item.node.css('padding-left', '10px').addClass('found');
55
- item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
56
- lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
57
- item.link.html(item.name.replace(new RegExp("(" +
58
- searchString.replace(/([\/.*+?|()\[\]{}\\])/g, "\\$1") + ")", "ig"),
59
- '<strong>$1</strong>'));
60
- }
61
-
62
- if (searchCache.length === searchIndex + 1) {
63
- searchDone();
64
- return;
65
- }
66
- else {
67
- searchIndex++;
68
- }
69
- }
70
- inSearch = setTimeout('searchItem()', 0);
71
- }
72
-
73
- function searchDone() {
74
- highlight(true);
75
- if ($('#full_list li:visible').size() === 0) {
76
- $('#noresults').text('No results were found.').hide().fadeIn();
77
- }
78
- else {
79
- $('#noresults').text('');
80
- }
81
- $('#content').removeClass('insearch');
82
- clearTimeout(inSearch);
83
- inSearch = null;
84
- }
85
-
86
- clicked = null;
87
- function linkList() {
88
- $('#full_list li, #full_list li a:last').click(function(evt) {
89
- if ($(this).hasClass('toggle')) return true;
90
- if (this.tagName.toLowerCase() == "li") {
91
- var toggle = $(this).children('a.toggle');
92
- if (toggle.size() > 0 && evt.pageX < toggle.offset().left) {
93
- toggle.click();
94
- return false;
95
- }
96
- }
97
- if (clicked) clicked.removeClass('clicked');
98
- var win = window.top.frames.main ? window.top.frames.main : window.parent;
99
- if (this.tagName.toLowerCase() == "a") {
100
- clicked = $(this).parent('li').addClass('clicked');
101
- win.location = this.href;
102
- }
103
- else {
104
- clicked = $(this).addClass('clicked');
105
- win.location = $(this).find('a:last').attr('href');
106
- }
107
- return false;
108
- });
109
- }
110
-
111
- function collapse() {
112
- if (!$('#full_list').hasClass('class')) return;
113
- $('#full_list.class a.toggle').click(function() {
114
- $(this).parent().toggleClass('collapsed').next().toggleClass('collapsed');
115
- highlight();
116
- return false;
117
- });
118
- $('#full_list.class ul').each(function() {
119
- $(this).addClass('collapsed').prev().addClass('collapsed');
120
- });
121
- $('#full_list.class').children().removeClass('collapsed');
122
- highlight();
123
- }
124
-
125
- function highlight(no_padding) {
126
- var n = 1;
127
- $('#full_list li:visible').each(function() {
128
- var next = n == 1 ? 2 : 1;
129
- $(this).removeClass("r" + next).addClass("r" + n);
130
- if (!no_padding && $('#full_list').hasClass('class')) {
131
- $(this).css('padding-left', (10 + $(this).parents('ul').size() * 15) + 'px');
132
- }
133
- n = next;
134
- });
135
- }
136
-
137
- function escapeShortcut() {
138
- $(document).keydown(function(evt) {
139
- if (evt.which == 27) {
140
- $('#search_frame', window.top.document).slideUp(100);
141
- $('#search a', window.top.document).removeClass('active inactive');
142
- $(window.top).focus();
143
- }
144
- });
145
- }
146
-
147
- $(escapeShortcut);
148
- $(fullListSearch);
149
- $(linkList);
150
- $(collapse);