alexjp-blackbook_csv 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. data/CHANGES.markdown +44 -0
  2. data/Manifest.txt +59 -0
  3. data/README.markdown +72 -0
  4. data/Rakefile +39 -0
  5. data/debug_blackbook.rb +10 -0
  6. data/init.rb +1 -0
  7. data/lib/blackbook/exporter/base.rb +16 -0
  8. data/lib/blackbook/exporter/vcf.rb +45 -0
  9. data/lib/blackbook/exporter/xml.rb +28 -0
  10. data/lib/blackbook/importer/aol.rb +83 -0
  11. data/lib/blackbook/importer/base.rb +39 -0
  12. data/lib/blackbook/importer/csv.rb +87 -0
  13. data/lib/blackbook/importer/gmail.rb +66 -0
  14. data/lib/blackbook/importer/hotmail.rb +124 -0
  15. data/lib/blackbook/importer/page_scraper.rb +86 -0
  16. data/lib/blackbook/importer/yahoo.rb +61 -0
  17. data/lib/blackbook.rb +76 -0
  18. data/test/fixtures/aol_application_page.html +566 -0
  19. data/test/fixtures/aol_bad_login_response_stage_3.html +565 -0
  20. data/test/fixtures/aol_contacts.html +90 -0
  21. data/test/fixtures/aol_login_response_stage_1.html +158 -0
  22. data/test/fixtures/aol_login_response_stage_2.html +559 -0
  23. data/test/fixtures/aol_login_response_stage_3.html +61 -0
  24. data/test/fixtures/aol_login_response_stage_4.html +48 -0
  25. data/test/fixtures/aol_login_response_stage_5.html +404 -0
  26. data/test/fixtures/aol_new_contacts.html +431 -0
  27. data/test/fixtures/gmail.csv +3 -0
  28. data/test/fixtures/gmail_bad_login_response_stage_2.html +560 -0
  29. data/test/fixtures/gmail_contacts.html +228 -0
  30. data/test/fixtures/gmail_login_response_stage_1.html +556 -0
  31. data/test/fixtures/gmail_login_response_stage_2.html +1 -0
  32. data/test/fixtures/gmail_login_response_stage_2a.html +1 -0
  33. data/test/fixtures/gmail_login_response_stage_3.html +249 -0
  34. data/test/fixtures/hotmail_bad_login_response_stage_2.html +31 -0
  35. data/test/fixtures/hotmail_contacts.html +191 -0
  36. data/test/fixtures/hotmail_login_response_stage_1.html +31 -0
  37. data/test/fixtures/hotmail_login_response_stage_2.html +1 -0
  38. data/test/fixtures/hotmail_login_response_stage_3.html +380 -0
  39. data/test/fixtures/yahoo_bad_login_response_stage_2.html +443 -0
  40. data/test/fixtures/yahoo_contacts.csv +3 -0
  41. data/test/fixtures/yahoo_contacts_not_logged_in.html +432 -0
  42. data/test/fixtures/yahoo_contacts_stage_1.html +399 -0
  43. data/test/fixtures/yahoo_login_response_stage_1.html +433 -0
  44. data/test/fixtures/yahoo_login_response_stage_2.html +16 -0
  45. data/test/scripts/live_test.rb +25 -0
  46. data/test/test_blackbook.rb +60 -0
  47. data/test/test_blackbook_exporter_base.rb +16 -0
  48. data/test/test_blackbook_exporter_vcf.rb +52 -0
  49. data/test/test_blackbook_exporter_xml.rb +16 -0
  50. data/test/test_blackbook_importer_aol.rb +113 -0
  51. data/test/test_blackbook_importer_base.rb +24 -0
  52. data/test/test_blackbook_importer_csv.rb +60 -0
  53. data/test/test_blackbook_importer_gmail.rb +117 -0
  54. data/test/test_blackbook_importer_hotmail.rb +147 -0
  55. data/test/test_blackbook_importer_page_scraper.rb +51 -0
  56. data/test/test_blackbook_importer_yahoo.rb +97 -0
  57. data/test/test_helper.rb +69 -0
  58. data/vendor/plugins/blackbook/lib/autotest/blackbook.rb +27 -0
  59. data/vendor/plugins/blackbook/lib/autotest/discover.rb +3 -0
  60. metadata +176 -0
@@ -0,0 +1,566 @@
1
+
2
+
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
+
5
+ <html xmlns="http://www.w3.org/1999/xhtml" >
6
+ <head><link type="text/css" rel="stylesheet" href="http://o.aolcdn.com/cdn.webmail.aol.com/34865/aim/en-us/styles-lite-all.css" /><script type="text/javascript" src="BasicBundle.js.aspx"></script><script type="text/javascript" src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/js/external_compressed/axs.js"></script><script type="text/javascript" src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/js/external_compressed/adsWrapper.js"></script><title>
7
+ AIM Mail - Today on AIM
8
+ </title></head>
9
+
10
+ <body onload="onloadFunctions();">
11
+
12
+
13
+ <div class="WSHat">
14
+ <div class="leftHat">
15
+ <div class="topHat">
16
+ <ul class="hatLinks"><li><a target="_blank" href="http://pr.atwola.com/promoclk/100001269x1116143256x1077350428/aol?redir=http:%2F%2Fwww.aol.com">AOL</a></li><li><a target="_blank" href="http://my.aol.com">myAOL</a></li><li class="last"><a target="_blank" href="http://pr.atwola.com/promoclk/100001269x1115550333x1077361411/aol?redir=http:%2F%2Fwww.aol.com%2Fmksplash.adp">Make AOL My Home Page</a></li></ul>
17
+ </div>
18
+ <div class="logoArea">
19
+ <img src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/aim/en-us/images/hat_logo_lite.gif" class="logo" alt="Mail logo">
20
+ </div>
21
+ <div class="salutation">
22
+ Hi, joe.user@aim.com
23
+ <a href="http://webmail.aol.com/34865/aim/en-us/common/Logout.aspx?siteState=ver%3a3%7cac%3aWS%7cat%3aSNS%7cld%3awebmail.aol.com%7cuv%3aAIM%7clc%3aen-us%7cmt%3aAIM%7csnt%3aScreenName%7crt%3aBASIC" class="signOutLink">
24
+ Sign Out
25
+ </a>
26
+ </div>
27
+ </div>
28
+
29
+ <div class="mlBanner">
30
+
31
+ <script>
32
+ var lowRes = false;
33
+ if (screen.width < 1024) {
34
+ lowRes = true;
35
+ }
36
+ </script>
37
+
38
+ <div id="myAd">
39
+ <script type="text/javascript">
40
+ adsDisableTacoda();
41
+ var myAd = document.getElementById("myAd");
42
+ adSetTarget('_blank');
43
+ adSetType("I");
44
+ if (lowRes) {
45
+ htmlAdWH(93210713, 468, 60);
46
+ myAd.className="mlBannerSmall";
47
+ } else {
48
+ htmlAdWH(93225974, 728, 90);
49
+ myAd.className="mlBannerLarge";
50
+ }
51
+ </script>
52
+ </div>
53
+
54
+ </div>
55
+
56
+ <div class="bottomHat">
57
+ <div class="topHat_bottom">
58
+
59
+ <script type="text/javascript">
60
+ var aolHeader = {
61
+ fSubmitToMsgList: function(sFolder) {
62
+ if (sFolder) {
63
+ document.forms.MsgList.folder.value = sFolder;
64
+ }
65
+ try{document.forms.MsgList.submit();}catch(ex){}
66
+ },
67
+ fSubmitToCompose: function() {
68
+ if(document.forms.contactListForm) {
69
+ document.forms.contactListForm.pageAction.value = "compose";
70
+ document.forms.contactListForm.submit();
71
+ }
72
+ else {
73
+ document.forms.Compose.submit();
74
+ }
75
+ },
76
+ fSearchReturnPress: function(event) {
77
+ var charCode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode);
78
+
79
+ if (charCode == 13 || charCode == 3) {
80
+ aol.wsl.fbSearchHandler('Search The Web');
81
+ }
82
+ }
83
+ };
84
+ </script>
85
+
86
+ <form>
87
+ <input type=button value="Check Mail" id="checkMailBtn" onclick="document.forms.MsgList.action='MsgList.aspx#leftNav'; aolHeader.fSubmitToMsgList('Inbox');return false;" />
88
+ <input type=button value="Compose" id="writeMailBtn" onclick="aolHeader.fSubmitToCompose();return false;" />
89
+ <input type=hidden name='folder' value='Inbox' />
90
+ </form>
91
+ <div class=fieldsetHidden>
92
+ <form method=POST name=MsgList action='MsgList.aspx' enctype="multipart/form-data" accept-charset=UTF-8>
93
+ <input type=hidden name='user' value='ULKLrUelQ2' />
94
+ <input type=hidden name='folder' value='Inbox' />
95
+
96
+ <input type=hidden name='sort' value='received' />
97
+ <input type=hidden name='sortDir' value='descending' />
98
+ <input type=hidden name='showUserFolders' value='False' />
99
+ </form>
100
+
101
+ <form method=POST name=Compose action='Compose.aspx' enctype="multipart/form-data" accept-charset=UTF-8>
102
+ <input type=hidden name='user' value='ULKLrUelQ2' />
103
+ <input type=hidden name='folder' value='Inbox' />
104
+ <input type=hidden name='showUserFolders' value='False' />
105
+ </form>
106
+ </div>
107
+ </div>
108
+
109
+ <div class="searchArea nobr">
110
+ <form name="searchFormHeader" id="searchHeader" onsubmit="return false;">
111
+ <input type="text" id=searchEditHeader name="searchQueryHeader" maxlength="256" size=14 onkeypress="aolHeader.fSearchReturnPress(event);" onFocus="aol.wsl.fClearSearchTextboxHeader(this);" class="wsInputDefaultHeader" value="Search The Web">
112
+ <label for=searchEditHeader><span class=SROnly>Search The Web</span></label>
113
+ <select id="searchOptions" style=" display: none;" name="searchIn"><option value="http://search.aol.com/aolcom/search?invocationType=wbmailcayman_centered&query=">Whole Web</option></select>
114
+ <input id="searchSubmitHeader" name="searchSubmitHeader" type=button onclick="return aol.wsl.fbSearchHandler('Search The Web');" disabled="true" value="Search" title="Start searching the Web"/>
115
+ </form>
116
+ </div>
117
+
118
+ <div>
119
+ <span class="searchGoogleText">
120
+ enhanced<br>by
121
+ </span>
122
+ <img alt="Google logo" class="searchGoogle" src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/aim/en-us/images/space.gif"
123
+ </div>
124
+
125
+ <div class="adminLinks">
126
+ <ul class="hatLinks">
127
+
128
+ <li class="link"><a href='GeneralSettings.aspx' onclick="try{document.location='GeneralSettings.aspx?user=ULKLrUelQ2';return false;}catch(e){}">
129
+ Settings</a></li>
130
+ <li class="last"><a href="http://help.channels.aol.com/topic.adp?topicId=Product_WebSuiteBasic" onclick="aol.wsl.fOnHelpClick(event, 'http://webmail.aol.com/34865/aim/en-us/'); return false;">Help</a></li>
131
+ </ul>
132
+ </div>
133
+ </div>
134
+
135
+
136
+
137
+ <script>
138
+ var aol = {wsl: {
139
+ fResetSearch: function(sDefaultSearchQueryHeader, sDropdownId) {
140
+ var oForm = document.forms.searchHeader;
141
+ oForm.searchQueryHeader.value = sDefaultSearchQueryHeader;
142
+ oForm.searchQueryHeader.className = "wsInputDefaultHeader";
143
+ oForm[sDropdownId][0].selected = true;
144
+ oForm.searchSubmitHeader.disabled = true;
145
+ }
146
+ ,fResetSearchTextbox: function(sDefaultSearchQueryHeader) {
147
+ var oForm = document.forms.searchHeader;
148
+ oForm.searchQueryHeader.value = sDefaultSearchQueryHeader;
149
+ oForm.searchQueryHeader.className = "wsInputDefaultHeader";
150
+ oForm.searchSubmitHeader.disabled = true;
151
+ }
152
+ ,fClearSearchTextbox: function() {
153
+ var oSearchForm = document.forms.search;
154
+ var oSearchTextbox = oSearchForm.searchEdit;
155
+ oSearchTextbox.value = "";
156
+ oSearchTextbox.className = "wsInput";
157
+ }
158
+ ,fClearSearchTextboxHeader: function() {
159
+ var oSearchForm = document.forms.searchHeader;
160
+ var oSearchTextbox = oSearchForm.searchEditHeader;
161
+ oSearchTextbox.value = "";
162
+ oSearchTextbox.className = "wsInputHeader";
163
+ oSearchForm.searchSubmitHeader.disabled = false;
164
+ }
165
+ ,fbSearchHandler: function(sDefaultSearchQueryHeader) {
166
+ var oForm = document.forms.searchHeader;
167
+ var iSelectedOption = oForm["searchIn"].selectedIndex;
168
+ var searchQuery = oForm.searchQueryHeader.value.replace(/\s+/, "+");
169
+ aol.wsl.fResetSearchTextbox(sDefaultSearchQueryHeader);
170
+ window.open(oForm.searchIn.options[iSelectedOption].value + searchQuery);
171
+ return false;
172
+ }
173
+ ,fbSearchHandlerForWeb: function(sWebAllSearchUrl, htExtraSearchOptions, sDefaultSearchQueryHeader) {
174
+ var oForm = document.forms.searchHeader;
175
+
176
+ window.open(sWebAllSearchUrl + oForm.searchQueryHeader.value);
177
+ aol.wsl.fResetSearchTextbox(sDefaultSearchQueryHeader);
178
+ return false;
179
+ }
180
+ ,fOnHelpClick: function(evt, url) {
181
+
182
+
183
+ if(!window.event){
184
+ evt.stopPropagation();
185
+ }
186
+
187
+ if (evt.shiftKey){
188
+ window.open(url + "tools/Support.aspx");
189
+ }
190
+ else
191
+ {
192
+ window.open('http://help.channels.aol.com/topic.adp?topicId=Product_WebSuiteBasic');
193
+ }
194
+
195
+ }
196
+ ,fAutoClick: function(oArgs) {
197
+ var oTarget = (oArgs && oArgs.sId && document.getElementById(oArgs.sId)) || this;
198
+ if (!oTarget) {
199
+ return;
200
+ } else if (oTarget.onclick) {
201
+ oTarget.onclick();
202
+ } else if (oTarget.click) {
203
+ oTarget.click();
204
+ } else if (oTarget.href) {
205
+ try{document.location = oTarget.href;} catch(e) {}
206
+ }
207
+ }
208
+ ,afRunAtLoad: []
209
+ ,fRunAllOnloads: function() {
210
+ for (var i=0, n=aol.wsl.afRunAtLoad.length; i < n; i++) {
211
+ aol.wsl.afRunAtLoad[i]();
212
+ }
213
+ }
214
+ ,fFocusPerUri: function() {
215
+
216
+ aol.wsl.afRunAtLoad.push(function() {
217
+ var eBeforeShorts = axs && axs.id("axs_kt_pre");
218
+ if (eBeforeShorts) {
219
+ axs.focus(eBeforeShorts);
220
+ }
221
+ });
222
+ }
223
+ }};
224
+ </script>
225
+
226
+
227
+
228
+
229
+ </div>
230
+
231
+
232
+ <table cellpadding="0" cellspacing="0" border="0" width="100%" class="tblContainer">
233
+ <tr>
234
+
235
+ <td class="tblLeftNav">
236
+ <div class=ws_nav>
237
+
238
+
239
+ <div class=ws_nav_top>
240
+
241
+ <script>
242
+ var aolLeftNav = {
243
+ fSubmitToMsgList: function(sFolder) {
244
+ if (sFolder) {
245
+ document.forms.MsgList.folder.value = sFolder;
246
+ }
247
+ try{document.forms.MsgList.submit();}catch(ex){}
248
+ },
249
+ fSubmitToCompose: function() {
250
+ if(document.forms.contactListForm) {
251
+ document.forms.contactListForm.pageAction.value = "compose";
252
+ document.forms.contactListForm.submit();
253
+ } else {
254
+ document.forms.Compose.submit();
255
+ }
256
+ },
257
+ fSubmitSearchForm: function(){
258
+
259
+ if(document.forms.searchForm.searchIn.value == "Contacts")
260
+ {
261
+ document.forms.searchForm.action = "http://webmail.aol.com/34865/aim/en-us/Lite/ContactList.aspx";
262
+
263
+ }
264
+ }
265
+ };
266
+ </script>
267
+ <div class="searchArea nobr">
268
+ <form name="searchForm" id=search method="POST"
269
+ action="http://webmail.aol.com/34865/aim/en-us/Lite/MsgList.aspx">
270
+ <input type=hidden name="user" value="ULKLrUelQ2">
271
+ <input type=hidden name='folder' value='Inbox' />
272
+ <input type=hidden name="searchAction" value="search">
273
+ <table align="center"><tbody><tr><td colspan="2">
274
+ <input type="text" id=searchEdit name="searchQuery" maxlength="256" size=14 onFocus="aol.wsl.fClearSearchTextbox(this);" class="wsInputDefault" value="Search Mail">
275
+ <label for=searchEdit><span class=SROnly>Search Mail</span></label>
276
+ </td></tr><tr><td>
277
+ <select class ="searchSelect" id=searchOptions name="searchIn">
278
+ <option value="alltext">Mail All</option><option value="subject">Mail Subject</option><option value="from">Mail Sender</option><option value="Contacts">Contacts</option>
279
+ </select>
280
+ </td><td>
281
+ <input onclick="aolLeftNav.fSubmitSearchForm();" class="goImg" id="searchSubmit" name="searchSubmit" type="image" src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/aim/en-us/images/space.gif" value="Go" title="Start searching mail"/>
282
+ </td></tr></tbody></table>
283
+ </form>
284
+ </div>
285
+ </div>
286
+ <div class=swAds>
287
+
288
+ <div class="swAd1">
289
+ <script type="text/javascript">
290
+ adsDisableTacoda();
291
+ adSetType("I");
292
+ adSetTarget('_blank');
293
+ htmlAdWH(93237312, 160, 40);
294
+ </script>
295
+ </div>
296
+
297
+ </div>
298
+ <h1 id=leftNav class=SROnly>
299
+ <a name=leftNav>List of Folders</a>
300
+ </h1>
301
+ <div class=ws_main_pane>
302
+
303
+ <div id=sysFolders>
304
+
305
+ <div class='navItem navItemCurrent'>
306
+ <div class='navItemLabel'>
307
+ <a title='Today on AIM' href="Today.aspx?notc=true">
308
+ <div class='icon iconToday'></div>
309
+ Today on AIM
310
+ </a>
311
+ </div>
312
+ </div>
313
+
314
+
315
+ <div class="navItem "><div class="navItemLabel"><a href='#' id=inboxLnk onclick="aolLeftNav.fSubmitToMsgList('Inbox');return false;" title="Inbox Folder View"><div class="icon iconInbox"></div>Inbox<span id="InboxCount"></span></a></div></div>
316
+ <div class="navItem "><div class="navItemLabel"><a href='#' onclick="aolLeftNav.fSubmitToMsgList('Drafts');return false;" title="Drafts Folder View"><div class="icon iconFolder"></div>Drafts<span id="DraftsCount"></span></a></div></div>
317
+ <div class="navItem "><div class="navItemLabel"><a href='#' id=sentFolderLnk onclick="aolLeftNav.fSubmitToMsgList('Sent');return false;" title="Sent Folder View"><div class="icon iconFolder"></div>Sent</a></div></div>
318
+ <div class="navItem "><div class="navItemLabel"><a href='#' onclick="aolLeftNav.fSubmitToMsgList('SavedIMs');return false;" title="IMs Folder View"><div class="icon iconFolder"></div>IMs</a></div></div>
319
+ <div class="navItem "><div class="navItemLabel"><a href='#' onclick="aolLeftNav.fSubmitToMsgList('Spam');return false;" title="Spam Folder View"><div class="icon iconFolder"></div>Spam<span id="SpamCount"></span></a></div></div>
320
+ <div class="navItem "><div class="navItemLabel"><a href='#' onclick="aolLeftNav.fSubmitToMsgList('Trash');return false;" title="Trash Folder View"><div class="icon iconFolder"></div>Trash</a></div></div>
321
+
322
+ </div>
323
+
324
+ <div class='navItemContacts'><div class='navItem '><div class='navItemLabel'><a title='Contacts' id=contactsLnk href="ContactList.aspx?folder=Inbox&showUserFolders=False"><div class='icon iconContacts'></div>Contacts</a></div></div></div>
325
+
326
+
327
+ <div class="navItemMyFolders">
328
+ <a href="foo" onclick="changeShowUserFolders(true); return false;" title="Show all of your folders">
329
+ <div class="twisty twistyClosed">
330
+ <img src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/aim/en-us/images/space.gif" />
331
+ </div>
332
+ <div class="myFoldersLabel nobr">
333
+ <h2 class="plain">My Folders</h2>
334
+ </div>
335
+ </a>
336
+ <span class="manageFolders wsLink nobr"><a href="Folders.aspx" >Manage Folders</a></span>
337
+ </div>
338
+
339
+
340
+
341
+ <script>
342
+ axs.keyreg("control+alt+a",aol.wsl.fAutoClick,{des:"Contacts",args:[{sId:"contactsLnk"}]});
343
+ axs.keyreg("control+alt+i",aol.wsl.fAutoClick,{des:"Go to Inbox Folder View",args:[{sId:"inboxLnk"}]});
344
+ axs.keyreg("control+alt+m",aol.wsl.fAutoClick,{des:"Check Mail",args:[{sId:"checkMailBtn"}]});
345
+ axs.keyreg("control+alt+n",aol.wsl.fAutoClick,{des:"Compose",args:[{sId:"writeMailBtn"}]});
346
+ axs.keyreg("control+alt+o",aol.wsl.fAutoClick,{des:"Go to Sent Folder View",args:[{sId:"sentFolderLnk"}]});
347
+ </script>
348
+ </div>
349
+ <div class=swAds>
350
+
351
+ <div class="swAd1">
352
+ <script type="text/javascript">
353
+ adsDisableTacoda();
354
+ adSetType("I");
355
+ adSetTarget('_blank');
356
+ htmlAdWH(93210708, 160, 40);
357
+ </script>
358
+ </div>
359
+
360
+ </div>
361
+ </div>
362
+ </td>
363
+ <td class="tblMainArea" id="tblMainArea">
364
+
365
+
366
+
367
+ <div class=omniDiv>
368
+ <script type="text/javascript">
369
+ var s_account = "aolaimmail,aolsvc";
370
+ </script>
371
+
372
+ <!-- In Omniture H code, the file inclusion has to come first -->
373
+ <script type="text/javascript" src="http://o.aolcdn.com/cdn.webmail.aol.com/34865/js/external/OmniUniH.js"></script>
374
+
375
+ <script type="text/javascript">
376
+ if (!window.s_265) s_265 = s;
377
+
378
+ s_265.channel = "aim.mail";
379
+ s_265.pageName = "Today";
380
+ s_265.pfxID = "wml";
381
+ s_265.prop1 = "WebSuite Basic";
382
+ s_265.prop2 = "Mail";
383
+ var idx = document.location.href.indexOf("?");
384
+ s_265.prop12 = (idx == -1) ? document.location.href : document.location.href.substring(0, idx);
385
+ var s_code = s_265.t();
386
+ if (s_code) document.write(s_code);
387
+ </script>
388
+ </div>
389
+
390
+
391
+
392
+ <div class=TodayOnAOL>
393
+
394
+ <h1 id=main class=SROnly><a name=main>Today on AIM</a></h1>
395
+ <div class="welcomeMessage">
396
+ <div class='TodayHeader'>&nbsp;You're using AIM Mail Basic which is optimized for your computer and browser.</div>
397
+
398
+ <div class='TodayGreeting' id='aolTodayGreeting'></div>
399
+ <div class="icon"></div>
400
+ <div class="todayMsgCount">
401
+ <a class="msgCountLabel" href="http://webmail.aol.com/34865/aim/en-us/lite/msglist.aspx">
402
+
403
+ <span id="TodayMailCount"></span>
404
+
405
+ </a>
406
+ </div>
407
+
408
+
409
+ <div>
410
+ <a target="_blank" class="mailBlog" href="http://mailblog.aim.com">Need mail tips? Read our blog.</a>
411
+ </div>
412
+
413
+
414
+
415
+
416
+ <div class='TodayClock'>
417
+ <div class='TodayDate' id='aolLocalDate'></div>
418
+ <div class='TodayTime' id='aolLocalTime'></div>
419
+ </div>
420
+ </div>
421
+ <script>
422
+ try {
423
+ //Morning, afternoon, or evening?
424
+ var dtToday = new Date();
425
+ var iCurrentHour = dtToday.getHours();
426
+ var sPartOfDayGreeting;
427
+ if (iCurrentHour < 12) {
428
+ sPartOfDayGreeting = "Good Morning, joe.user@aim.com";
429
+ } else if (iCurrentHour >= 12 && iCurrentHour < 18) {
430
+ sPartOfDayGreeting = "Good Afternoon, joe.user@aim.com";
431
+ } else {
432
+ sPartOfDayGreeting = "Good Evening, joe.user@aim.com";
433
+ }
434
+ //defined in BasicBundle.js.aspx
435
+
436
+ var sLocalDate = DateFormat.FormatDate(dtToday, "E, NNN d");
437
+
438
+ var sTimeFormatWithPlaceHolders = "h:mm**a++";
439
+
440
+ var sLocalTimeWithPlaceHolders = DateFormat.FormatDate(dtToday, sTimeFormatWithPlaceHolders);
441
+
442
+ var sLocalTime = sLocalTimeWithPlaceHolders.replace("**","<span class='TodayDate'> ");
443
+ sLocalTime = sLocalTime.replace("++","</span>");
444
+
445
+ var tnPartOfDayGreeting = document.createTextNode(sPartOfDayGreeting);
446
+ var eTodayGreeting = document.getElementById('aolTodayGreeting');
447
+ if (eTodayGreeting && tnPartOfDayGreeting) {
448
+ eTodayGreeting.appendChild(tnPartOfDayGreeting);
449
+ }
450
+
451
+ var tnLocalDate = document.createTextNode(sLocalDate);
452
+ var eLocalDate = document.getElementById('aolLocalDate');
453
+ if (eLocalDate && tnLocalDate) {
454
+ eLocalDate.appendChild(tnLocalDate);
455
+ }
456
+
457
+
458
+ var eLocalTime = document.getElementById('aolLocalTime');
459
+ if (eLocalTime) {
460
+ eLocalTime.innerHTML = sLocalTime;
461
+ }
462
+ } catch (ex) {
463
+ }
464
+
465
+
466
+ function changeShowUserFolders(newValue) {
467
+ var newURL = window.location.toString().replace(/[&?]showuserfolders=[^&]*/gi,"");
468
+ newURL += (newURL.indexOf("?") == -1 ? "?" : "&") + "showUserFolders=" + newValue;
469
+ window.location.replace(newURL);
470
+ }
471
+ function fOpenQuotaWindow() {
472
+ var url = Config.BaseLitePagesURL + "SwitchQuotaWelcome.aspx?user=" + "ULKLrUelQ2&t=true";
473
+ var windowParams = "status=yes,resizable=no,menubar=no,scrollbars=no,top=150,screenY=150,left=150,screenX=150,width=480,innerWidth=480,innerHeight=330,height=330,alwaysRaised";
474
+ window.open(url, name, windowParams);
475
+ }
476
+ </script>
477
+
478
+ <iframe id="TodayiFrame" src="http://welcome.mail.aol.com/beta.adp?type=aim&sr=1" title="Today on AIM" width="100%" height=630px frameborder=0 border=0 marginwidth=0 marginheight=0 scrolling="no" align="top" allowTransparency="true"></iframe>
479
+
480
+ <iframe id="tacoda" src="http://webmail.aol.com/js/external/tcodewm.html" title="" width="1px" height="1px" frameborder=0 border=0 marginwidth=0 marginheight=0 scrolling="no"></iframe>
481
+
482
+ </div>
483
+
484
+
485
+
486
+
487
+ </td>
488
+
489
+ </tr>
490
+ <tr><td colspan=2>
491
+
492
+
493
+ <div class="footer_container">
494
+ <table align="center"><tbody><tr width=100%><td><ul class="hatLinks links"><li><a href="http://webmail.aol.com/34865/aim/en-us/Lite/Today.aspx?AccessibilityRedirect=true" title="Click here for the accessible version">Accessible Version</a></li><li><a target="_blank" href="http://www.aol.com/aolnetwork/aolcom_terms.html">Terms of Service</a></li><li><a target="_blank" href="http://about.aol.com/aolnetwork/mem_commitments">Privacy Policy</a></li><li class=last><a target="_blank" href="http://www.aol.com/aolnetwork/trademarks.html">Trademarks</a></li></ul></td></tr></tbody></table>
495
+ <div class="copyright">&copy; 2008 AOL LLC. All Rights Reserved</div>
496
+ <script>
497
+ axs.l10n.keycap_summary = "This table describes the shortcut keys implemented on this page.";
498
+ axs.l10n.keycap_caption = "Key combinations and the actions they invoke.";
499
+ axs.l10n.keycap_combo = "Key Combination";
500
+ axs.l10n.keycap_act = "Action";
501
+ axs.l10n.keycap_keyshow = "Show or hide the keyboard shortcuts table";
502
+ axs.l10n.keycap_linkshow = "Click this link to show or hide the keyboard shortcuts table.";
503
+ aol.wsl.afRunAtLoad.push(function() {
504
+ // Disable the XML/Accessibility feature for the Sony browser.
505
+ if (navigator.userAgent.indexOf("Sony/COM2") === -1)
506
+ axs.keychart();
507
+ });
508
+ if ((typeof aol != 'undefined') && aol && aol.wsl && aol.wsl.fFocusPerUri) { aol.wsl.fFocusPerUri(); }
509
+ </script>
510
+ </div>
511
+ </td></tr>
512
+ </table>
513
+
514
+
515
+ <iframe id="CheckNewMessagesFrame" height=1 style="visibility:hidden;" src=''></iframe>
516
+ <script>
517
+ function updateCheckNewMessagesFrame() {
518
+ var CheckNewMessagesFrame = document.getElementById("CheckNewMessagesFrame");
519
+ if (CheckNewMessagesFrame) {
520
+ CheckNewMessagesFrame.src = 'http://webmail.aol.com/34865/aim/en-us/common/rpc/RPC.aspx?user=ULKLrUelQ2&automatic=true&dojo.transport=iframe&requests=[{"stateToken":"-1","action":"CheckNewMessages"}]]';
521
+ }
522
+ }
523
+ setInterval(updateCheckNewMessagesFrame, 120000);
524
+ </script>
525
+
526
+
527
+ <script>
528
+
529
+ function onloadFunctions() {
530
+ try {
531
+
532
+ aol && aol.wsl && aol.wsl.fRunAllOnloads && aol.wsl.fRunAllOnloads();
533
+ } catch (ex) {
534
+ //DEBUG alert('Exception in onloadFunctions(): '+ex);
535
+ }
536
+ }
537
+
538
+ function setMessageCounts(InboxCount, DraftsCount, SpamCount) {
539
+ var InboxCountSpan = document.getElementById("InboxCount");
540
+ if (InboxCountSpan != null && InboxCount != -1) {InboxCountSpan.innerHTML = "&nbsp;(" + InboxCount + ")";}
541
+ var DraftsCountSpan = document.getElementById("DraftsCount");
542
+ if (DraftsCountSpan != null && DraftsCount != -1) {DraftsCountSpan.innerHTML = "&nbsp;(" + DraftsCount + ")";}
543
+ var SpamCountSpan = document.getElementById("SpamCount");
544
+ if (SpamCountSpan != null && SpamCount != -1) {SpamCountSpan.innerHTML = "&nbsp;(" + SpamCount + ")";}
545
+
546
+
547
+ var TodayMailCountSpan = document.getElementById("TodayMailCount");
548
+ if (TodayMailCountSpan != null && InboxCount != -1) {
549
+ if (InboxCount == 0) {
550
+ TodayMailCountSpan.innerHTML = "0 New Messages";
551
+ } else if (InboxCount == 1) {
552
+ TodayMailCountSpan.innerHTML = "{0} New Message".replace("{0}",InboxCount);
553
+ } else {
554
+ TodayMailCountSpan.innerHTML = "{0} New Messages".replace("{0}",InboxCount);
555
+ }
556
+ }
557
+
558
+ }
559
+ </script>
560
+
561
+
562
+ <iframe height=1 style="visibility:hidden;" src='MailCounts.aspx'></iframe>
563
+
564
+
565
+ </body>
566
+ </html>