icalendar 0.96 → 0.96.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. data/README +3 -3
  2. data/Rakefile +3 -4
  3. data/docs/api/classes/Array.html +148 -0
  4. data/docs/api/classes/Date.html +159 -0
  5. data/docs/api/classes/DateTime.html +180 -0
  6. data/docs/api/classes/Fixnum.html +148 -0
  7. data/docs/api/classes/Float.html +148 -0
  8. data/docs/api/classes/HashAttrs.html +199 -0
  9. data/docs/api/classes/Icalendar/Alarm.html +228 -0
  10. data/docs/api/classes/Icalendar/Base.html +120 -0
  11. data/docs/api/classes/Icalendar/Calendar.html +365 -0
  12. data/docs/api/classes/Icalendar/Component.html +689 -0
  13. data/docs/api/classes/Icalendar/DateProp.html +187 -0
  14. data/docs/api/classes/Icalendar/DateProp/ClassMethods.html +195 -0
  15. data/docs/api/classes/Icalendar/Daylight.html +156 -0
  16. data/docs/api/classes/Icalendar/Event.html +650 -0
  17. data/docs/api/classes/Icalendar/Freebusy.html +297 -0
  18. data/docs/api/classes/Icalendar/InvalidPropertyValue.html +117 -0
  19. data/docs/api/classes/Icalendar/Journal.html +459 -0
  20. data/docs/api/classes/Icalendar/Parameter.html +166 -0
  21. data/docs/api/classes/Icalendar/Parser.html +447 -0
  22. data/docs/api/classes/Icalendar/Standard.html +156 -0
  23. data/docs/api/classes/Icalendar/Timezone.html +351 -0
  24. data/docs/api/classes/Icalendar/Todo.html +496 -0
  25. data/docs/api/classes/Icalendar/UnknownComponentClass.html +117 -0
  26. data/docs/api/classes/Icalendar/UnknownPropertyMethod.html +117 -0
  27. data/docs/api/classes/Object.html +270 -0
  28. data/docs/api/classes/String.html +148 -0
  29. data/docs/api/classes/Time.html +163 -0
  30. data/docs/api/classes/URI.html +111 -0
  31. data/docs/api/classes/URI/Generic.html +148 -0
  32. data/docs/api/created.rid +1 -0
  33. data/docs/api/files/COPYING.html +163 -0
  34. data/docs/api/files/GPL.html +531 -0
  35. data/docs/api/files/README.html +254 -0
  36. data/docs/api/files/lib/hash_attrs_rb.html +107 -0
  37. data/docs/api/files/lib/icalendar/base_rb.html +108 -0
  38. data/docs/api/files/lib/icalendar/calendar_rb.html +101 -0
  39. data/docs/api/files/lib/icalendar/component/alarm_rb.html +101 -0
  40. data/docs/api/files/lib/icalendar/component/event_rb.html +101 -0
  41. data/docs/api/files/lib/icalendar/component/freebusy_rb.html +101 -0
  42. data/docs/api/files/lib/icalendar/component/journal_rb.html +101 -0
  43. data/docs/api/files/lib/icalendar/component/timezone_rb.html +101 -0
  44. data/docs/api/files/lib/icalendar/component/todo_rb.html +101 -0
  45. data/docs/api/files/lib/icalendar/component_rb.html +101 -0
  46. data/docs/api/files/lib/icalendar/conversions_rb.html +109 -0
  47. data/docs/api/files/lib/icalendar/helpers_rb.html +101 -0
  48. data/docs/api/files/lib/icalendar/parameter_rb.html +101 -0
  49. data/docs/api/files/lib/icalendar/parser_rb.html +109 -0
  50. data/docs/api/files/lib/icalendar_rb.html +120 -0
  51. data/docs/api/files/lib/meta_rb.html +107 -0
  52. data/docs/api/fr_class_index.html +55 -0
  53. data/docs/api/fr_file_index.html +45 -0
  54. data/docs/api/fr_method_index.html +79 -0
  55. data/docs/api/index.html +24 -0
  56. data/docs/api/rdoc-style.css +208 -0
  57. data/{docs/examples → examples}/create_cal.rb +6 -2
  58. data/{docs/examples → examples}/parse_cal.rb +3 -2
  59. data/{docs/examples → examples}/single_event.ics +0 -0
  60. data/lib/hash_attrs.rb +29 -0
  61. data/lib/icalendar.rb +11 -2
  62. data/lib/icalendar/base.rb +6 -2
  63. data/lib/icalendar/calendar.rb +1 -1
  64. data/lib/icalendar/component.rb +98 -71
  65. data/lib/icalendar/component/alarm.rb +5 -3
  66. data/lib/icalendar/component/event.rb +1 -1
  67. data/lib/icalendar/component/freebusy.rb +23 -23
  68. data/lib/icalendar/component/journal.rb +1 -5
  69. data/lib/icalendar/component/timezone.rb +7 -0
  70. data/lib/icalendar/component/todo.rb +1 -6
  71. data/lib/icalendar/conversions.rb +10 -0
  72. data/lib/icalendar/parser.rb +82 -85
  73. data/lib/meta.rb +32 -0
  74. data/test/component_test.rb +69 -64
  75. metadata +74 -12
  76. data/lib/icalendar/foo.rb +0 -394
  77. data/test/property_helpers.rb +0 -35
@@ -0,0 +1,156 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Icalendar::Standard</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Icalendar::Standard</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/icalendar/component/timezone_rb.html">
59
+ lib/icalendar/component/timezone.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Timezone.html">
69
+ Timezone
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ A <a href="Standard.html">Standard</a> component is a sub-component of the
86
+ <a href="Timezone.html">Timezone</a> component which is used to describe
87
+ the standard time offset.
88
+ </p>
89
+
90
+ </div>
91
+
92
+
93
+ </div>
94
+
95
+ <div id="method-list">
96
+ <h3 class="section-bar">Methods</h3>
97
+
98
+ <div class="name-list">
99
+ <a href="#M000015">new</a>&nbsp;&nbsp;
100
+ </div>
101
+ </div>
102
+
103
+ </div>
104
+
105
+
106
+ <!-- if includes -->
107
+
108
+ <div id="section">
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+ <div id="methods">
119
+ <h3 class="section-bar">Public Class methods</h3>
120
+
121
+ <div id="method-M000015" class="method-detail">
122
+ <a name="M000015"></a>
123
+
124
+ <div class="method-heading">
125
+ <a href="#M000015" class="method-signature">
126
+ <span class="method-name">new</span><span class="method-args">()</span>
127
+ </a>
128
+ </div>
129
+
130
+ <div class="method-description">
131
+ <p><a class="source-toggle" href="#"
132
+ onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
133
+ <div class="method-source-code" id="M000015-source">
134
+ <pre>
135
+ <span class="ruby-comment cmt"># File lib/icalendar/component/timezone.rb, line 59</span>
136
+ 59: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>()
137
+ 60: <span class="ruby-keyword kw">super</span>(<span class="ruby-value str">&quot;STANDARD&quot;</span>)
138
+ 61: <span class="ruby-keyword kw">end</span>
139
+ </pre>
140
+ </div>
141
+ </div>
142
+ </div>
143
+
144
+
145
+ </div>
146
+
147
+
148
+ </div>
149
+
150
+
151
+ <div id="validator-badges">
152
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
153
+ </div>
154
+
155
+ </body>
156
+ </html>
@@ -0,0 +1,351 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: Icalendar::Timezone</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">Icalendar::Timezone</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../../files/lib/icalendar/component/timezone_rb.html">
59
+ lib/icalendar/component/timezone.rb
60
+ </a>
61
+ <br />
62
+ </td>
63
+ </tr>
64
+
65
+ <tr class="top-aligned-row">
66
+ <td><strong>Parent:</strong></td>
67
+ <td>
68
+ <a href="Component.html">
69
+ Component
70
+ </a>
71
+ </td>
72
+ </tr>
73
+ </table>
74
+ </div>
75
+ <!-- banner header -->
76
+
77
+ <div id="bodyContent">
78
+
79
+
80
+
81
+ <div id="contextContent">
82
+
83
+ <div id="description">
84
+ <p>
85
+ A <a href="Timezone.html">Timezone</a> is unambiguously defined by the set
86
+ of time measurement rules determined by the governing body for a given
87
+ geographic area. These rules describe at a minimum the base offset from UTC
88
+ for the time zone, often referred to as the <a
89
+ href="Standard.html">Standard</a> <a href="../Time.html">Time</a> offset.
90
+ Many locations adjust their <a href="Standard.html">Standard</a> <a
91
+ href="../Time.html">Time</a> forward or backward by one hour, in order to
92
+ accommodate seasonal changes in number of daylight hours, often referred to
93
+ as <a href="Daylight.html">Daylight</a> Saving <a
94
+ href="../Time.html">Time</a>. Some locations adjust their time by a
95
+ fraction of an hour. <a href="Standard.html">Standard</a> <a
96
+ href="../Time.html">Time</a> is also known as Winter <a
97
+ href="../Time.html">Time</a>. <a href="Daylight.html">Daylight</a> Saving
98
+ <a href="../Time.html">Time</a> is also known as Advanced <a
99
+ href="../Time.html">Time</a>, Summer <a href="../Time.html">Time</a>, or
100
+ Legal <a href="../Time.html">Time</a> in certain countries. The following
101
+ table shows the changes in time zone rules in effect for New York City
102
+ starting from 1967. Each line represents a description or rule for a
103
+ particular observance.
104
+ </p>
105
+
106
+ </div>
107
+
108
+
109
+ </div>
110
+
111
+ <div id="method-list">
112
+ <h3 class="section-bar">Methods</h3>
113
+
114
+ <div class="name-list">
115
+ <a href="#M000023">add_component</a>&nbsp;&nbsp;
116
+ <a href="#M000024">new</a>&nbsp;&nbsp;
117
+ </div>
118
+ </div>
119
+
120
+ </div>
121
+
122
+
123
+ <!-- if includes -->
124
+
125
+ <div id="section">
126
+
127
+
128
+
129
+
130
+
131
+ <div id="attribute-list">
132
+ <h3 class="section-bar">Attributes</h3>
133
+
134
+ <div class="name-list">
135
+ <table>
136
+ <tr class="top-aligned-row context-row">
137
+ <td class="context-item-name">comment</td>
138
+ <td class="context-item-value">&nbsp;&nbsp;</td>
139
+ <td class="context-item-desc">
140
+ Multi-properties
141
+
142
+ </td>
143
+ </tr>
144
+ <tr class="top-aligned-row context-row">
145
+ <td class="context-item-name">comment</td>
146
+ <td class="context-item-value">&nbsp;&nbsp;</td>
147
+ <td class="context-item-desc">
148
+ Multi-properties
149
+
150
+ </td>
151
+ </tr>
152
+ <tr class="top-aligned-row context-row">
153
+ <td class="context-item-name">comments</td>
154
+ <td class="context-item-value">&nbsp;&nbsp;</td>
155
+ <td class="context-item-desc">
156
+ Multi-properties
157
+
158
+ </td>
159
+ </tr>
160
+ <tr class="top-aligned-row context-row">
161
+ <td class="context-item-name">created</td>
162
+ <td class="context-item-value">&nbsp;&nbsp;</td>
163
+ <td class="context-item-desc"></td>
164
+ </tr>
165
+ <tr class="top-aligned-row context-row">
166
+ <td class="context-item-name">daylight</td>
167
+ <td class="context-item-value">&nbsp;&nbsp;</td>
168
+ <td class="context-item-desc"></td>
169
+ </tr>
170
+ <tr class="top-aligned-row context-row">
171
+ <td class="context-item-name">dtstart</td>
172
+ <td class="context-item-value">&nbsp;&nbsp;</td>
173
+ <td class="context-item-desc">
174
+ Single properties
175
+
176
+ </td>
177
+ </tr>
178
+ <tr class="top-aligned-row context-row">
179
+ <td class="context-item-name">last_modified</td>
180
+ <td class="context-item-value">&nbsp;&nbsp;</td>
181
+ <td class="context-item-desc"></td>
182
+ </tr>
183
+ <tr class="top-aligned-row context-row">
184
+ <td class="context-item-name">rdate</td>
185
+ <td class="context-item-value">&nbsp;&nbsp;</td>
186
+ <td class="context-item-desc"></td>
187
+ </tr>
188
+ <tr class="top-aligned-row context-row">
189
+ <td class="context-item-name">recurrence_date</td>
190
+ <td class="context-item-value">&nbsp;&nbsp;</td>
191
+ <td class="context-item-desc"></td>
192
+ </tr>
193
+ <tr class="top-aligned-row context-row">
194
+ <td class="context-item-name">recurrence_dates</td>
195
+ <td class="context-item-value">&nbsp;&nbsp;</td>
196
+ <td class="context-item-desc"></td>
197
+ </tr>
198
+ <tr class="top-aligned-row context-row">
199
+ <td class="context-item-name">recurrence_rule</td>
200
+ <td class="context-item-value">&nbsp;&nbsp;</td>
201
+ <td class="context-item-desc"></td>
202
+ </tr>
203
+ <tr class="top-aligned-row context-row">
204
+ <td class="context-item-name">recurrence_rules</td>
205
+ <td class="context-item-value">&nbsp;&nbsp;</td>
206
+ <td class="context-item-desc"></td>
207
+ </tr>
208
+ <tr class="top-aligned-row context-row">
209
+ <td class="context-item-name">rrule</td>
210
+ <td class="context-item-value">&nbsp;&nbsp;</td>
211
+ <td class="context-item-desc"></td>
212
+ </tr>
213
+ <tr class="top-aligned-row context-row">
214
+ <td class="context-item-name">sequence</td>
215
+ <td class="context-item-value">&nbsp;&nbsp;</td>
216
+ <td class="context-item-desc"></td>
217
+ </tr>
218
+ <tr class="top-aligned-row context-row">
219
+ <td class="context-item-name">standard</td>
220
+ <td class="context-item-value">&nbsp;&nbsp;</td>
221
+ <td class="context-item-desc"></td>
222
+ </tr>
223
+ <tr class="top-aligned-row context-row">
224
+ <td class="context-item-name">start</td>
225
+ <td class="context-item-value">&nbsp;&nbsp;</td>
226
+ <td class="context-item-desc">
227
+ Single properties
228
+
229
+ </td>
230
+ </tr>
231
+ <tr class="top-aligned-row context-row">
232
+ <td class="context-item-name">timestamp</td>
233
+ <td class="context-item-value">&nbsp;&nbsp;</td>
234
+ <td class="context-item-desc"></td>
235
+ </tr>
236
+ <tr class="top-aligned-row context-row">
237
+ <td class="context-item-name">timezone_id</td>
238
+ <td class="context-item-value">&nbsp;&nbsp;</td>
239
+ <td class="context-item-desc"></td>
240
+ </tr>
241
+ <tr class="top-aligned-row context-row">
242
+ <td class="context-item-name">timezone_name</td>
243
+ <td class="context-item-value">&nbsp;&nbsp;</td>
244
+ <td class="context-item-desc"></td>
245
+ </tr>
246
+ <tr class="top-aligned-row context-row">
247
+ <td class="context-item-name">timezone_offset_from</td>
248
+ <td class="context-item-value">&nbsp;&nbsp;</td>
249
+ <td class="context-item-desc"></td>
250
+ </tr>
251
+ <tr class="top-aligned-row context-row">
252
+ <td class="context-item-name">timezone_offset_to</td>
253
+ <td class="context-item-value">&nbsp;&nbsp;</td>
254
+ <td class="context-item-desc"></td>
255
+ </tr>
256
+ <tr class="top-aligned-row context-row">
257
+ <td class="context-item-name">tzid</td>
258
+ <td class="context-item-value">&nbsp;&nbsp;</td>
259
+ <td class="context-item-desc"></td>
260
+ </tr>
261
+ <tr class="top-aligned-row context-row">
262
+ <td class="context-item-name">tzname</td>
263
+ <td class="context-item-value">&nbsp;&nbsp;</td>
264
+ <td class="context-item-desc"></td>
265
+ </tr>
266
+ <tr class="top-aligned-row context-row">
267
+ <td class="context-item-name">tzoffsetfrom</td>
268
+ <td class="context-item-value">&nbsp;&nbsp;</td>
269
+ <td class="context-item-desc"></td>
270
+ </tr>
271
+ <tr class="top-aligned-row context-row">
272
+ <td class="context-item-name">tzoffsetto</td>
273
+ <td class="context-item-value">&nbsp;&nbsp;</td>
274
+ <td class="context-item-desc"></td>
275
+ </tr>
276
+ </table>
277
+ </div>
278
+ </div>
279
+
280
+
281
+
282
+ <!-- if method_list -->
283
+ <div id="methods">
284
+ <h3 class="section-bar">Public Class methods</h3>
285
+
286
+ <div id="method-M000024" class="method-detail">
287
+ <a name="M000024"></a>
288
+
289
+ <div class="method-heading">
290
+ <a href="#M000024" class="method-signature">
291
+ <span class="method-name">new</span><span class="method-args">(name = &quot;VTIMEZONE&quot;)</span>
292
+ </a>
293
+ </div>
294
+
295
+ <div class="method-description">
296
+ <p><a class="source-toggle" href="#"
297
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
298
+ <div class="method-source-code" id="M000024-source">
299
+ <pre>
300
+ <span class="ruby-comment cmt"># File lib/icalendar/component/timezone.rb, line 49</span>
301
+ 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">name</span> = <span class="ruby-value str">&quot;VTIMEZONE&quot;</span>)
302
+ 50: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">name</span>)
303
+ 51: <span class="ruby-keyword kw">end</span>
304
+ </pre>
305
+ </div>
306
+ </div>
307
+ </div>
308
+
309
+ <h3 class="section-bar">Public Instance methods</h3>
310
+
311
+ <div id="method-M000023" class="method-detail">
312
+ <a name="M000023"></a>
313
+
314
+ <div class="method-heading">
315
+ <a href="#M000023" class="method-signature">
316
+ <span class="method-name">add_component</span><span class="method-args">(component)</span>
317
+ </a>
318
+ </div>
319
+
320
+ <div class="method-description">
321
+ <p>
322
+ Define a custom add component method because standard and daylight are the
323
+ only components that can occur just once with their parent.
324
+ </p>
325
+ <p><a class="source-toggle" href="#"
326
+ onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
327
+ <div class="method-source-code" id="M000023-source">
328
+ <pre>
329
+ <span class="ruby-comment cmt"># File lib/icalendar/component/timezone.rb, line 44</span>
330
+ 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_component</span>(<span class="ruby-identifier">component</span>)
331
+ 45: <span class="ruby-identifier">key</span> = <span class="ruby-identifier">component</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'icalendar::'</span>,<span class="ruby-value str">''</span>).<span class="ruby-identifier">to_sym</span>
332
+ 46: <span class="ruby-ivar">@components</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">component</span>
333
+ 47: <span class="ruby-keyword kw">end</span>
334
+ </pre>
335
+ </div>
336
+ </div>
337
+ </div>
338
+
339
+
340
+ </div>
341
+
342
+
343
+ </div>
344
+
345
+
346
+ <div id="validator-badges">
347
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
348
+ </div>
349
+
350
+ </body>
351
+ </html>