Closed Bug 142176 Opened 24 years ago Closed 24 years ago

iPlanet Messenger Service "Webmail" JavaScript functions fail at UTS

Categories

(SeaMonkey :: General, defect)

x86
Linux
defect
Not set
major

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 141564

People

(Reporter: kunathma, Assigned: Matti)

References

()

Details

From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020204 BuildID: 2002022801 Introduction: ------------- This is another long bug report by me affecting iPlanet Server and in this case UTS (University of Technology, Sydney). Bare with me. This bug report may be related to bug number 141564 in the Mozilla bug system: http://bugzilla.mozilla.org/show_bug.cgi?id=141564 First of all iPlanet Webmail is the web mail system used by UTS. I realize you guys do not have an account. I have written to a UTS admin about the problem (the bug reported herewith) with no response from this specific Unix admin. I include points of contact for UTS below which may make it possible to you to get access to an iPlanet Server mail system to resolve the issues UTS and Sun apparently haven't gotten to fix so far. Bug History: ------------ In March 2002 UTS Webmail was accessible via IE and Mozilla. No problems existed. Over the Easter break UTS upgraded to a newer Webmail version. JavaScript errors appeared on IE and Mozilla and UTS turned off the "Addressbook" feature. Peter James ITS-UTS sent an email stating the problems and that UTS was working in cooperation with Sun get a fix happen soon. About a week after that UTS Webmail worked fine again on IE. But Mozilla was broken even worse now. Javascript errors persist and doing anything but _reading_ your UTS Webmail using Mozilla is impossible. I began to wonder if they now implemented a quick IE fix to the situation and either forgot about other browsers or by implementing the fix made Mozilla not function correctly. Points of Contact at UTS: ------------------------- Peter James is Technical Services Manager at ITD-UTS and can be contacted at Peter.James@uts.edu.au. Director of ITD-UTS is Anne Dwyer and she can be contacted at Anne.Dwyer@uts.edu.au. After submitting this bug I will send an email to both of them making them aware of the situation and point them to this Mozilla bug. Thank you, Marcel PS: --- I would also like to inform Sun but I do not know how to contact them. I have _another_ iPlanet Webmail bug I found which affects all browsers but I am unable to inform Sun since I don't have a contact point. Reproducible: Always Steps to Reproduce: 1. Get a UTS Webmail account. 2. Log on. 3. See JavaScript fail. Actual Results: Mozilla only allows reading of email now. Nothing else works even though prior to the UTS Webmail upgrade over Easter Mozilla worked fine on XP, SuSE or Red Hat. Expected Results: Mozilla should behave like IE. Within the additional info I include the JavaScript errors reported by Mozilla when using UTS Webmail http://webmail.uts.edu.au. 1. Popup Error upon login to webmail. 2. Error in JavaScript console upon login to webmail. 2. Error in JavaScript console upon moving within webmail. ---------------------- JavaScript Popup Error ---------------------- 1.) Javascript error upon login: Javascript Error , Line 0 uncaught exception: [Exception... "Component returned failure code: 0x804e03f7 [nslDOMNSHTMLDocument.write]" nsresult: "0x804e03f7 (<unknown>)" location: "JS frame :: http://webmail.uts.edu.au/util.js :: init :: line 72" data: no] ------------------------ JavaScript Console Error ------------------------ 2.) After login the Javascript console says: Error: listFrame.form has no properties Source File http://webmail.uts.edu.au/mbox_fs.html?rtfPossible=true Line: 431 mbox_fs.html source code ------------------------ <html> <head> <script src="util.js"></script> <script> /* * Copyright 1999 Netscape Communications Corp, a subsidiary of America Online */ init('parent') var s_all var helpid = 1004295 var scroll var state = 'Inbox' var sep = '%:$>' function setFrames() { toolFrame = window.frames[0] listFrame = window.frames[1] } function getToolbar() { var s var enable = main.sortid.length > 0 s = '<table border="0" cellpadding="3" cellspacing="0">\n' + '<tr align="center">\n' + '<td width="10">&nbsp;</td>\n' + '<td align="center" nowrap>' + main.font(1) + main.folderSelectionBreadCrumbs('folderList','main.selectMbox(options[selectedIndex].value);selectedIndex=0', i18n['select folder'],false,main.mboxFrame.mbox,'',main.cfgFrame.sub,'') + '</td>\n' + main.WMtoolbar( null, null, 'imx/divider.gif', 2, 24, false, i18n['get mail'], 'main.check_mail = 1; main.displaySpecialMbox(\'Inbox\')', 'imx/pull.gif" alt="' + i18n['mbox getmail'], 24, 24, true, null,null,'imx/spacer.gif',3,1,false, i18n['compose'], 'main.compose(\'new\')', 'imx/compose.gif" alt="' + i18n['msg compose'], 24, 24, true, null,null,'imx/spacer.gif',3,1,false, (main.srch != '' ? i18n['new search'] : i18n['search']), 'parent.srch()', 'imx/search.gif" alt="' + i18n['mbox search'], 24, 24, true) if (main.cfg['meTrashFolder']) { // s += main.WMtoolbar(null,null,'imx/spacer.gif',3,1,false, // i18n['delete'], 'parent.delmsg()', 'imx/trash.gif', 24, 24, enable) if (main.mboxFrame.size > 0) { s += main.WMtoolbar(null,null,'imx/spacer.gif',3,1,false, i18n['delete'], 'parent.delmsg()', 'imx/delete.gif" alt="' + i18n['mbox delete'], 24, 24, true) } else { s += main.WMtoolbar(null,null,'imx/spacer.gif',3,1,false, i18n['delete'], 'parent.delmsg()', 'imx/nodelete.gif" alt="' + i18n['mbox delete'], 24, 24, false) } } else { if(main.mboxFrame.size > 0) { s += main.WMtoolbar(null,null,'imx/spacer.gif',3,1,false, i18n['delete'], 'parent.delmsg()', 'imx/delete.gif" alt="' + i18n['mbox delete'], 24, 24, enable, null,null,'imx/spacer.gif',3,1,false, i18n['undelete'], 'parent.undelmsg()', 'imx/undelete.gif" alt="' + i18n['mbox undelete'], 24, 24, enable, null,null,'imx/spacer.gif',3,1,false, i18n['expunge'], 'parent.exmsg()', 'imx/expunge.gif" alt="' + i18n['mbox expunge'], 24, 24, enable) } else { s += main.WMtoolbar(null,null,'imx/spacer.gif',3,1,false, i18n['delete'], 'parent.delmsg()', 'imx/nodelete.gif" alt="' + i18n['mbox delete'], 24, 24, false, null,null,'imx/spacer.gif',3,1,false, i18n['undelete'], 'parent.undelmsg()', 'imx/noundelete.gif" alt="' + i18n['mbox undelete'], 24, 24, false, null,null,'imx/spacer.gif',3,1,false, i18n['expunge'], 'parent.exmsg()', 'imx/noexpunge.gif" alt="' + i18n['mbox expunge'], 24, 24, false) } } // Simon Chung 05/04/2002 - add divider s += main.WMtoolbar(null, null, 'imx/divider.gif', 2, 24, false) if (main.sortid.length > 0){ s += '<td nowrap>' + main.font(1) + nbsp + main.folderSelectionBreadCrumbs('folderList', 'parent.move(options[selectedIndex].value);selectedIndex=0', i18n['file selected msg'], false, main.mboxFrame.mbox,'',main.cfgFrame.sub,'move') + '</td>' /* s += '<td nowrap>' + main.font(1) + nbsp + main.folderSelection('folderList', 'parent.copy(options[selectedIndex].value);selectedIndex=0', i18n['copy selected msg'], false, main.mboxFrame.mbox,'',getsharedfolders()) + '</td>' */ } // Simon Chung 05/04/2002 - Move "Help and Logout onto Toolbar instead of TAB" s+= '<td nowrap width="100%" align="right">' + main.WMtoolbar( null, null, 'imx/divider.gif', 2, 24, false, main.i18n['help'], 'main.help(' +helpid+ ')', 'imx/help.gif', 27, 25, true, main.i18n['logout'], 'main.logout()', 'imx/logout.gif', 27, 25, true) + '</td>\n' return s + '</tr></table>' //return (IE>0?s + '</tr></table><table><TR><TD colspan=22><IMG src="imx/spacer.gif" width="1" height="4"></TD></TR></table>':s + '</tr></table>') } function getSortHeader(str, sort_str, img, w, h) { var s = '' if(!img) s += main.font(null, '000000') + html(str) + '</font>' if(sort_str == main.sortOrder) { s += '<a id="black" href="javascript:main.sortMsgs(\'' + sort_str + '\')" onMouseOver="return hint(\'' + main.i18n_squote(str) + '\')" onMouseOut="return hint()"><img src="' + (main.sorting == 'R' ? "imx/sort_up.gif": "imx/sort_dn.gif") + '" border=0 width=16 height=16 alt="' switch(sort_str) { case 'seen' : s += main.sorting == 'R' ? i18n['seen up'] : i18n['seen dn'] ; break; case 'recv' : s += main.sorting == 'R' ? i18n['recv up'] : i18n['recv dn'] ; break; case 'from' : s += main.sorting == 'R' ? i18n['from up'] : i18n['from dn'] ; break; case 'size' : s += main.sorting == 'R' ? i18n['size up'] : i18n['size dn'] ; break; case 'subj' : s += main.sorting == 'R' ? i18n['subj up'] : i18n['subj dn'] ; break; case 'attach' : s += main.sorting == 'R' ? i18n['attach up'] : i18n['attach dn'] ; break; case 'priority' : s += main.sorting == 'R' ? i18n['priority up'] : i18n['priority dn'] ; break; } s += '"></a>' } else { s += '<a id="black" href="javascript:main.sortMsgs(\'' + sort_str + '\')" onMouseOver="return hint(\'' + main.i18n_squote(str) + '\')" onMouseOut="return hint()"><img src="imx/notselected.gif" border=0 width=16 height=16 alt="' switch(sort_str) { case 'seen' : s += main.sorting == 'R' ? i18n['seen dn'] : i18n['seen up'] ; break; case 'recv' : s += main.sorting == 'R' ? i18n['recv dn'] : i18n['recv up'] ; break; case 'from' : s += main.sorting == 'R' ? i18n['from dn'] : i18n['from up'] ; break; case 'size' : s += main.sorting == 'R' ? i18n['size dn'] : i18n['size up'] ; break; case 'subj' : s += main.sorting == 'R' ? i18n['subj dn'] : i18n['subj up'] ; break; case 'attach' : s += main.sorting == 'R' ? i18n['attach dn'] : i18n['attach up'] ; break; case 'priority' : s += main.sorting == 'R' ? i18n['priority dn'] : i18n['priority up'] ; break; } s += '"></a>' } return s } function toolFrameHTML() { return main.toolFrame() } function listFrameHTML() { var i, msg var s, ss var date = new Date() var now = new Date() var datestr var boldstr var page = parseInt(main.cfg['meViewSize']) var found = false var opt = '' var end var msgstate = 0 scroll = -1 /*** not needed - commenting out if (state == 'search') { return '<br><br>' + '<form name="form" method=post action="javascript:parent.noop()" onSubmit="return parent.doSearch()">' + '<center>' + '<table border=1 cellpadding=9>' + '<tr><td bgcolor=' + main.chrome2 + ' align=center>' + '<table border=0 cellpadding=3 cellspacing=0>' + main.i18n_search_list() + '<tr><td colspan=3 align=right>' + '<table border=0 cellpadding=4 cellspacing=0><tr>' + main.button(i18n['search'], 'parent.doSearch()') + main.button(i18n['cancel'], 'parent.displayMbox()') + '</tr></table>' + '</td></tr>' + '</table>' + '</td></tr></table>' + '<\center></form>' } ***/ if(main.searchForBody == 'true' && main.visitedMboxCB == 'false' ) { // for 513276 return '<p></p><p></p><table border="0" width="100%" bgcolor="#C0C0C0" height="19">'+ '<tr><td width="100%" height="13"><font face="Verdana" color="#000000"><b>'+main.searchMessage+'</b></font></td></tr>'+ '</table>' } else if( main.searchForBody == 'true') reload(toolFrame) // added main.searchForBody='false' s_all = false s = main.getBody(main.white, true, main.black) if (main.sortid.length == 0) { var mb = (main.srch != '' ? i18n['search results'] : main.mboxFrame.mbox.substring(main.mboxFrame.mbox.lastIndexOf('/') + 1, main.mboxFrame.mbox.length)) return s + '<form><table border=0 cellpadding=2 cellspacing=1 width=100%>\n' + '<tr bgcolor=' + main.chrome2 + '><td colspan=2>' + nbsp + '</td></tr>\n' + '<tr' + main.base_line + ' ' + main.cellBgString + '>' + '<td align=center valign=middle colspan=2>' + main.font() + main.i18n_mbox_empty(mb) + '</font></td></tr>\n' + '<tr bgcolor=' + main.chrome2 + '><td colspan=2>' + nbsp + '</td></tr>\n' + '<tr><td>' + main.font() + main.i18n_mbox_query(main.srch, main.sortid.length, main.sortid.length - main.mboxFrame.seen, main.cfg['mailQuotaUsed'], main.cfg['mailQuota'], main.cfg['mailMsgQuotaUsed'], main.cfg['mailMsgQuota']) + '</td>\n' + '</tr>'+ '<tr><td>&nbsp;</td></tr>\n<tr><td>'+ nbsp + nbsp + main.font()+'<input type=button name=collect value="'+i18n['collect long'] + '" onclick="main.collect()">' + '</font></td><tr><td>&nbsp;</td></tr>\n' + '</table></form>' } s += main.tableStart + '<form name="form1"><tr bgcolor=' + main.chrome2 + '>\n' s += '<td align="center" width=1% nowrap>' + main.font() + i18n['selectLabel'] + '</td>\n' s += '<td width=1% nowrap><img src="imx/high-0.gif" alt="' + i18n['msg priority'] + '" width=16 height=16' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + getSortHeader('', 'priority') + '</td>\n' s += '<td width=5% nowrap><img src="imx/attach.gif" alt="' + i18n['msg Attachment'] + '" width=16 height=16' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + getSortHeader('', 'attach') + '</td>\n' s += '<td align="left" width=1% nowrap>' + getSortHeader(i18n['seen'], 'seen', 'imx/read.gif', 16, 16) + '</td>\n' if ((main.mboxFrame.mbox == main.cfg['meSentFolder'] || main.mboxFrame.mbox == main.cfg['meDraftFolder']) && (main.mboxFrame.mbox !='INBOX')) s += '<td width=37% nowrap>' + getSortHeader(i18n['to'], 'from') + '</td>\n' else s += '<td width=37% nowrap>' + getSortHeader(i18n['from'], 'from') + '</td>\n' s += '<td width=58% nowrap>' + getSortHeader(i18n['subject'], 'subj') + '</td>\n' s += '<td width=1% nowrap>' + getSortHeader(i18n['recvdate'], 'recv') + '</td>\n' s += '<td width=1% nowrap>' + getSortHeader(i18n['size'], 'size') + '</td>\n</tr></form>\n' s += '<form name="form">\n' if (main.sortOrder != 'recv' || main.sort == 'R') found = true main.d_to = main.d_from while (main.d_to != main.mboxFrame.size && page > 0) { if(typeof(main.mboxFrame.msg)!="object") return; msg = main.mboxFrame.msg[main.sortid[(main.d_to%main.cfg['meViewSize'])]] if(typeof(msg.uid) == "undefined" || typeof(msg.uid) !="number") return; ss = '<tr' + main.base_line + ' ' + main.cellBgString + '><td align="center">' + main.font() + '<input type=checkbox value=' + msg.uid + '></td>\n' if (msg.flags & main.mboxFrame.flag['__high']){ ss += '<td align="center"><img src="imx/high-0.gif" alt="' + i18n['msg high'] + '" width=16 height=16' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + '</td>' } else if (msg.flags & main.mboxFrame.flag['__low']){ ss += '<td align="center"><img src="imx/low.gif" alt="' + i18n['msg low'] + '" width=16 height=16' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + '</td>' } else ss += '<td>' + nbsp + '</td>' if (msg.Contenttype != null && msg.Contenttype.toLowerCase().search(/voice-message/) > 0) { ss += '<td align="center"><img src="imx/audio.gif" width=11 height=11' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + '</td>' } else if (msg.Contenttype != null && msg.Contenttype.toLowerCase().search(/fax-message/) > 0) { ss += '<td align="center"><img src="imx/fax.gif" width=11 height=11' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + '</td>' } else if (msg.flags & main.mboxFrame.flag['__attach']) ss += '<td align="center"><img src="imx/attach.gif" alt="' + i18n['msg Attachment'] + '" width=16 height=16' + (IE >= 4 || NN > 0 ? ' hspace=2>' : '>') + '</td>' else ss += '<td>' + nbsp + '</td>' ss += '<td align="center">' if (msg.flags & main.mboxFrame.flag['\\seen']) { if (!found) scroll++ boldstr = '' } else { scroll++ boldstr = '<b>' found = true; } msgstate = 0 if(msg.flags & main.mboxFrame.flag['\\deleted']) msgstate = msgstate | 1 if(msg.flags & main.mboxFrame.flag['\\answered']) msgstate = msgstate | 2 if(msg.flags & main.mboxFrame.flag['\\seen']) msgstate = msgstate | 4 ss += '<img src=' // Simon Chung 05/04/2002 - Broken on Solaris Netscape 4.78 // switch(msgstate) { // case 0 : // ss += 'imx/Stat_NMail.gif' + ' alt="' + i18n['msg UnRead'] + '" '; // break; // case 1 : // ss += 'imx/Stat_NDeleted.gif' + ' alt="' + i18n['msg UnreadDel'] + '" '; // break; // case 4 : // ss += 'imx/Stat_Read_Mail.gif' + ' alt="' + i18n['msg Read'] + '" '; // break; // case 5 : // ss += 'imx/Stat_Read_Deleted.gif' + ' alt="' + i18n['msg ReadDel'] + '" '; // break; // case 6 : // case 2 : // ss += 'imx/Stat_Read_Answered.gif' + ' alt="' + i18n['msg ReadAns'] + '" ' ; // break; // case 7: // case 3: // ss += 'imx/Stat_Read_Ans_Del.gif' + ' alt="' + i18n['msg ReadAnsDel'] + '" '; // break; // } // Fix for the above if(msgstate==0){ss += 'imx/Stat_NMail.gif' + ' alt="' + i18n['msg UnRead'] + '" ';} else if(msgstate==1){ss += 'imx/Stat_NDeleted.gif' + ' alt="' + i18n['msg UnreadDel'] + '" ';} else if(msgstate==4){ss += 'imx/Stat_Read_Mail.gif' + ' alt="' + i18n['msg Read'] + '" ';} else if(msgstate==5){ss += 'imx/Stat_Read_Deleted.gif' + ' alt="' + i18n['msg ReadDel'] + '" ';} else if(msgstate==6 || msgstate==2){ss += 'imx/Stat_Read_Answered.gif' + ' alt="' + i18n['msg ReadAns'] + '" ' ;} else if(msgstate==7 || msgstate==3){ss += 'imx/Stat_Read_Ans_Del.gif' + ' alt="' + i18n['msg ReadAnsDel'] + '" ';} ss += ' width=16 height=16></td>\n' if (msg.from) ss += '<td align="left">' + main.font() + nbsp + boldstr + html(msg.from) + '</td>\n' else ss += '<td>' + nbsp + '</td>\n' ss += '<td>' + main.font() + nbsp + boldstr + '<a href="javascript:parent.M(' + main.d_to%main.cfg['meViewSize'] + ')" onMouseOver="return parent.Hint(' + main.d_to%main.cfg['meViewSize'] + ')" onMouseOut="return hint()">' + (msg.subject.length ? html(msg.subject) : i18n['no subject']) + '</td>\n' date.setTime(msg.recv * 1000) ss += '<td align="left" nowrap><nobr>' + main.font() + boldstr + main.i18n_mbox_date(date, now) + '</td>\n' ss += '<td align="right" nowrap>' ss += main.font() + boldstr + size(msg.size) + '</td>\n</tr>\n' s += ss main.d_to++ page-- } page = parseInt(main.cfg['meViewSize']) s += '</form>\n<form name="form2">\n' if (main.sortid.length == 0) { var mb = (main.srch != '' ? i18n['search results'] : main.mboxFrame.mbox.substring(main.mboxFrame.mbox.lastIndexOf('/') + 1, main.mboxFrame.mbox.length)) s += '<tr' + main.base_line + ' ' + main.cellBgString + '>' + '<td height=32 align=center valign=middle>' + main.font() + main.i18n_mbox_empty(mb) + '</font></td></tr>\n' + '<tr bgcolor=' + main.chrome2 + '><td>' + nbsp + '</td></tr>\n' } else { s += '' } s += main.tableEnd + '<table border=0 cellpadding=0 cellspacing=0 width=100%>\n<tr><td>&nbsp;</td></tr>\n<tr>\n' s += '<td>'+nbsp + nbsp +main.font()+'<input type=button name=selectAll value="'+i18n['Select All']+'" onClick="parent.selectAll(\'true\')">' s += nbsp + nbsp + '<input type=button name=deSelectAll value="'+ i18n['Deselect All']+'" onClick="parent.selectAll(\'false\')">' s += nbsp + nbsp + nbsp + nbsp + '<input type=button name=collect value="'+i18n['collect long'] + '" onclick="main.collect()">' s += '</font></td></tr>\n<tr><td>&nbsp;</td></tr>' s += main.tableEnd + '<table border=0 cellpadding=0 cellspacing=0 width=100%>\n<tr bgcolor=' + main.chrome2 + '>\n' if (main.mboxFrame.size > page) { s += '<td align=right width=1%>' + (main.d_from != 0 ? '&nbsp;&nbsp;<a href="javascript:main.pageBack()" onMouseOver="return hint()"><img src="imx/back_btn.gif" border=0 width=16 height=16></a>&nbsp;&nbsp;' : '&nbsp;&nbsp;<img src="imx/back_not.gif" width=16 height=16>') + '&nbsp;&nbsp;</td>\n' for (i = 0; i < main.mboxFrame.size; i += page) { end = i + page >= main.mboxFrame.size ? main.mboxFrame.size : i + page opt += '<option value="' + i + '"' + (i >= main.d_from && i < parseInt(main.d_from) + page ? ' selected>' : '>') + (i + 1) + ' - ' + end + '</option>\n' } s += '<td nowrap width=1%>' + main.font() s += '<select onChange="main.pageTo(options[selectedIndex].value)">\n' + opt + '</select>\n' s += '</td>\n<td width=1%>' + (main.d_to != main.mboxFrame.size ? '&nbsp;&nbsp;<a href="javascript:main.pageForward()" onMouseOver="return hint()"><img src="imx/next_btn.gif" border=0 width=16 height=16></a>&nbsp;&nbsp;' : '&nbsp;&nbsp;<img src="imx/next_not.gif" width=16 height=16>') + '&nbsp;&nbsp;</td>\n' } else { s += '<td width=1%>' + nbsp + '</td>' } if (!found && scroll > 0) scroll = 0 //check to see if this is not the Drafts folder //otherwise set the number of unread messages to zero if (main.mboxFrame.mbox != 'Drafts') { s += '<td>' + main.font() + main.i18n_mbox_query(main.srch, main.mboxFrame.size, main.mboxFrame.size - main.mboxFrame.seen, main.cfg['mailQuotaUsed'], main.cfg['mailQuota'], main.cfg['mailMsgQuotaUsed'], main.cfg['mailMsgQuota']) + '</td>\n' + '</tr></table></form>' } else { s += '<td>' + main.font() + main.i18n_mbox_query(main.srch, main.mboxFrame.size, 0, main.cfg['mailQuotaUsed'], main.cfg['mailQuota'], main.cfg['mailMsgQuotaUsed'], main.cfg['mailMsgQuota']) + '</td>\n' + '</tr></table></form>' } return s } function listFrameInit() { var form = self.listFrame.form var i, s, srch, rule, header if (!main.curPab) main.fetchPab(); if (NN > 0 || IE >= 4) { listFrame.focus() if (scroll != -1) { listFrame.form.elements[scroll].focus() } } if (state == 'search') { if (main.srch) srch = split(main.srch, sep) else srch = '' if (srch.length > 3) { rule = srch[0] header = srch[1] s = srch[2] } else if (srch.length < 3 && srch.length > 0) { rule = '' header = srch[0] s = srch[1] } else { rule = '' header = '' s = '' } for (i = 0; i < form.header.options.length; i++) { if (form.header.options[i].text == header) form.header.selectedIndex = i } for (i = 0; i < form.rule.options.length; i++) { if (form.rule.options[i].value == rule) form.rule.selectedIndex = i } form.string.value = s form.string.focus() form.string.select() } var quota = parseInt(main.cfg['mailQuota']) var quotaUsed = parseInt(main.cfg['mailQuotaUsed']) var pQuota = 0 var msgQuota = parseInt(main.cfg['mailMsgQuota']) var msgQuotaUsed = parseInt(main.cfg['mailMsgQuotaUsed']) var pMsgQuota = 0 var quotaWarningLimit if(main.cfgFrame.quotaWarningLimit) quotaWarningLimit = parseInt(main.cfgFrame.quotaWarningLimit); else quotaWarningLimit = 90 if (quota > 0) pQuota = (quotaUsed/quota)*100 else if (quota == 0 && quotaUsed > 0) pQuota = 100 if (msgQuota > 0) pMsgQuota = (msgQuotaUsed/msgQuota)*100 else if (msgQuota == 0 && msgQuotaUsed > 0) pMsgQuota = 100 if (pQuota > quotaWarningLimit && !main.displayedQuotaWarning) { main.displayedQuotaWarning = true alert(main.i18n_quota_warning(parseInt(pQuota))) } if (pMsgQuota > quotaWarningLimit && !main.displayedMsgQuotaWarning) { displayedMsgQuotaWarning = true alert(main.i18n_msgQuota_warning(parseInt(pMsgQuota))) } } function srch() { if(main.srchWin != null && !main.srchWin.closed) return; main.firstTimeSearch = true; main.srchCurrentHeight = 450; main.srchWin = window.open(main.srcHREF + main.lang + "/searchMessage.html", "srchMesg","width=650,height=450,resizable,status,scrollbars"); } /*** not needed - commenting out function doSearch() { var s = '' var ss = '' var form = listFrame.form var fldr = main.folder(form.folderList.options[form.folderList.selectedIndex].value) var newfstr if (form.header.options[form.header.selectedIndex].value=='BODY') { // for 513276 main.searchForBody='true' main.visitedMboxCB='false' } else main.searchForBody = 'false' if (form.string.value.length > 0) { s = form.rule.options[form.rule.selectedIndex].value s += form.header.options[form.header.selectedIndex].value + ' ' //this makes sure a search query with quotes are escaped newfstr = form.string.value.replace(/"/g, "\\\"") s += '"' + newfstr + '"' ss = form.rule.options[form.rule.selectedIndex].value + sep + form.header.options[form.header.selectedIndex].text + sep + form.string.value + sep + fldr main.searched = 1 main.s_search = s main.s_hold = ss main.d_from = 0 load(main.mailFrame, main.srcHREF + 'mbox_fs.html') main.refreshMbox(fldr, s, ss) } else { displayMbox() } return false } ***/ function selectAll(what) { if(what=='true') s_all=true; else s_all=false for (i = 0; i < listFrame.form.elements.length; i++) listFrame.form.elements[i].checked = s_all } function Hint(idx) { main.window.status = main.mboxFrame.msg[main.sortid[idx]].subject return true } function M(idx) { main.selectMsg(idx) } function selected_uids() { var cbs var uids = new Array() var list = '' var series = false var i if (!self.listFrame.form) return '' cbs = self.listFrame.form.elements for (i = 0; i < cbs.length; i++) { if (cbs[i].checked) uids[uids.length] = cbs[i].value } if(main.delete_selected==1) { main.delete_selected=0; main.deletelength=uids.length; } if (!uids.length) return list main.sort(uids, main.compareNumber) for (i = 0; i < uids.length; i++) { if (!series || i + 1 >= uids.length || !(uids[i] + 1 == uids[i + 1])) list += uids[i] if (i + 1 < uids.length && (uids[i] + 1 == uids[i + 1])) { if (!series) { list += ':' series = true } } else { list += ',' series = false } } if (list.lastIndexOf(',') == list.length - 1) list = list.substring(0, list.length - 1) return list } function move(idx) { if( idx == -8) { alert(i18n['mbox nopermission']); return; } if( idx == -9 ) { alert(i18n['mbox selfmove']); return; } if( idx < 0) return; var deleted_selected=1 var list = selected_uids() var s = main.folder(idx) if (list != '') { main.mbox_from_msg=3; main.exec('move', main.mboxFrame.mbox, list, s, 'expunge', 'move(\'' + main.i18n_squote(s) + '\', null,' + list + ');refreshCurrMbox()') /* if (main.searched == 1) { main.refreshMbox(main.mboxFrame.mbox, main.s_search, main.s_hold) } else { main.refreshCurrMbox() } */ } } function copy(idx) { var deleted_selected=1 var list = selected_uids() var s = main.folder(idx) if (list != '') { main.mbox_from_msg=3; main.exec('copy', main.mboxFrame.mbox, list, s,'copy','refreshCurrMbox()'); } } function delmsg() { var list = selected_uids() if (list != '') { s = main.cfg['meTrashFolder'] if (s) { main.mbox_from_msg=3; if (main.mboxFrame.mbox == s) exmsg() else { main.exec('move', main.mboxFrame.mbox, list, s, 'expunge', 'move(\'' + main.i18n_squote(s) + '\', null,' + list + ');refreshCurrMbox()') if (main.searched == 1) { main.refreshMbox(main.mboxFrame.mbox, main.s_search, main.s_hold) } else { if (mac && NN > 4.0) main.refreshCurrMbox() } } } else { main.exec('store', main.mboxFrame.mbox, '+flags', '\\deleted', list, 'mark(true,' + list + ');refreshCurrMbox()') } } } function undelmsg() { var list = selected_uids() if (list != '') main.exec('store', main.mboxFrame.mbox, '-flags', '\\deleted', list, 'mark(false,' + list + ');displayMbox()') } function exmsg() { var list = selected_uids() var msg var prompt = i18n["confirm expunge"] if (list == '') { prompt = main.i18n_confirm_unselected_expunge(main.mboxFrame.mbox) for (var i = 0; i < main.sortid.length; i++) { msg = main.mboxFrame.msg[main.sortid[i]] if (msg.flags & main.mboxFrame.flag['\\deleted']) { if (list != '') list += ',' list += msg.uid } } } if (list != '' && confirm(prompt)) { main.exec('expunge', main.mboxFrame.mbox, list, 'force', 'move(null, null,' + list + ');refreshCurrMbox()') } } function displayMbox(fast) { state = 'load' if (!fast) reload(toolFrame) reload(listFrame) } function noop() { } function getsharedfolders(){ var share = new Array(); var sublist=main.cfgFrame.sub; for(s=2;s<sublist.length;s++){ var acl=main.cfgFrame.sub[s].acl; var lis =split(acl,'\t'); for(n=2;n<lis.length;n++){ if(lis[n]==getname()||lis[n]=='anyone'){ var acluser =lis[n+1]; var acllen =acluser.length; for(var i=0;i<acllen;i++){ if(acluser.charAt(i)=='w'|| acluser.charAt(i)=='a'){ share[share.length]=main.cfgFrame.sub[s]; break; } } } } } if(share.length ==0) share=""; return share; } function getname(){ var uname = main.cfgFrame.usrattrval[2].vals[0]; var uname1=split(uname,'@'); var user=uname1[0]; return user; } document.write(!main.topht ? '' : '<frameset border="0" frameborder="no" rows="' + (main.topht + main.toolht) + ',*" onLoad="adjust()">' + '<frame name="toolFrame" marginheight="0" marginwidth="0" scrolling="no" src="frame.html?rtfPossible='+main.rtfPossibleString+'">'+ '<frame name="listFrame" marginheight="1" marginwidth="0" frameborder="1" src="frame.html?rtfPossible='+main.rtfPossibleString+'">'+ '</frameset>') </script> </html> ------------------------ JavaScript Console Error ------------------------ 3.) While moving around in my UTS webmail account it also reports: Warning: useless expression Source File: http://webmail.uts.edu.au/opts_fs.html?rtfPossible=true Line: 1290 ------------------------ opts_fs.html source code ------------------------ <html> <head> <script src="util.js"></script> <script> /* * Copyright 1999 Netscape Communications Corp, a subsidiary of America Online */ init('parent') var helpid = 1006184 var state = 'load' var width = 150 var topht = main.topht var form var tool // work around Mac IE 4.5 bug function setFrames() { toolFrame = window.frames[0] toggleFrame = window.frames[1] listFrame = window.frames[2] } function getToolbar() { // Simon Chung 19/04/2001 - Move "Help and Logout onto Toolbar instead of TAB" return '<table border="0" cellpadding="3" cellspacing="0">\n' + '<tr align="center">\n' + '<td nowrap width="100%">' + nbsp + '</td>\n' + '<td nowrap align="right">' + main.WMtoolbar( null, null, 'imx/divider.gif', 2, 24, false, main.i18n['help'], 'main.help(' +helpid+ ')', 'imx/help.gif', 27, 25, true, main.i18n['logout'], 'main.logout()', 'imx/logout.gif', 27, 25, true) + '</td>\n</tr></table>' // return '' } function toolFrameHTML() { return main.toolFrame() } function getToggle(label, tog, href) { var isSelected = (tog == main.option_page) var s s = '<tr><td>' + '<a name="' + (isSelected ? 'scroll' : tog) + '"><table border=0 cellspacing=0 cellpadding=0>' + '<tr><td colspan=3 bgcolor=' + (isSelected ? main.chrome2 : main.chrome0) + '><img src="imx/spacer.gif" width=1 height=1></td></tr>\n' + '<tr>\n' + '<td rowspan=2 bgcolor=' + (isSelected ? main.chrome2 : main.chrome0) + '><img src="imx/spacer.gif" width=1 height=1></td>\n' + '<td>' + '<table border=0 cellspacing=0 cellpadding=0>\n' + '<tr><td colspan=3 bgcolor=' + (isSelected ? main.chrome0 : main.positive) + '><img src="imx/spacer.gif" width=1 height=1></td></tr>\n' + '<tr><td rowspan=2 bgcolor=' + (isSelected ? main.chrome0 : main.positive) + '><img src="imx/spacer.gif" width=1 height=1></td><td>\n' + '<table border=0 cellspacing=0 cellpadding=3 width=' + (width - 25) + '>' + '<tr><td align="center" bgcolor=' + (isSelected ? main.white : main.chrome2) + ' width=' + (width - 25) + '>' + main.font() if (isSelected) s += html(label) else if (tog == 'NDA') s += '<a href="' + main.NDAStartPage + '" target=' + '"_blank"' + ' onMouseOver="return hint(\'' + main.i18n_squote(label) + '\')" onMouseOut="return hint()">' + html(label) + '</a>' else s += '<a href="' + href + '" onMouseOver="return hint(\'' + main.i18n_squote(label) + '\')" onMouseOut="return hint()">' + html(label) + '</a>' s += '</font></td></tr>\n' + '</table>' + '</td>\n' + '<td bgcolor=' + (isSelected ? main.chrome2 : main.chrome0) + '><img src="imx/spacer.gif" width=1 height=1></td>\n' + '</tr>\n' + '<tr><td colspan=2 bgcolor=' + (isSelected ? main.chrome2 : main.chrome0) + '><img src="imx/spacer.gif" width=1 height=1></td></tr>\n' + '</table>' + '</td>\n' + '<td bgcolor=' + main.positive + '><img src="imx/spacer.gif" width=1 height=1></td>\n' + '</tr>\n' + '<tr><td colspan=2 bgcolor=' + main.positive + '><img src="imx/spacer.gif" width=1 height=1></td></tr>\n' + '</table></a></td></tr>\n' return s } function toggleFrameHTML() { return main.getBody(main.chrome2, true, main.black, main.link0, main.link1, main.chrome2) + '<center>\n<table border=0 cellspacing=7 cellpadding=0 width=100%>\n' + getToggle(main.i18n['account summary'], 'summary', 'javascript:parent.toggle(\'summary\')') + getToggle(main.i18n['personal'], 'personal', 'javascript:parent.toggle(\'personal\')') + getToggle(main.i18n['password'], 'password', 'javascript:parent.toggle(\'password\')') + (main.cfgFrame.mbox.length == 0 ? '' : getToggle(main.i18n['settings'], 'settings', 'javascript:parent.toggle(\'settings\')')) + getToggle(main.i18n['appearance'], 'appearance', 'javascript:parent.toggle(\'appearance\')') + getToggle(main.i18n['vacation'], 'vacation', 'javascript:parent.toggle(\'vacation\')') + //getToggle(main.i18n['NDA'], 'NDA', // 'javascript:parent.toggle(\'NDA\')') + '</table>\n</center>\n' } function toggleFrameInit() { if (state == 'load') { state = 'scroll' if (IE > 0) load(toggleFrame, main.srcHREF + 'frame.html#scroll') } } function listFrameHTML() { var s = main.getBody(main.white, true, main.black, main.link0, main.link1, main.link2, 6, 8) if (main.option_page == 'appearance') { s += appearanceHTML() } else if (main.option_page == 'password') { s += passwordHTML() } else if (main.option_page == 'personal') { s += personalHTML() } else if (main.option_page == 'settings') { s += settingsHTML() } else if (main.option_page == 'summary') { s += summaryHTML() } else if (main.option_page == 'vacation') { s += vacationHTML() } else if (main.option_page == 'NDA') { s = ndaHTML() } return s } function listFrameInit() { if (NN > 0 || IE >= 4) listFrame.focus() form = listFrame.form if (main.option_page == 'appearance') { appearanceInit() } else if (main.option_page == 'personal') { personalInit() } else if (main.option_page == 'settings') { settingsInit() } else if (main.option_page == 'vacation') { vacationInit() } } function clear() { reload(listFrame) } function refresh() { if (main.topht == topht) { reload(toolFrame) reload(listFrame) reload(toggleFrame) } else { main.selectOptions() } } function toggle(which) { state = 'load' main.option_page = which reload(toggleFrame) reload(listFrame) } function summaryHTML() { var a = split(main.cfg['mailAlternateAddress'].toString(), ','); var i, s s = '<table border=0 cellpadding=3 cellspacing=0 width=100%>\n' + '<tr><td>' + main.font(3) + '<b>' + i18n['account summary'] + '</b></font>' + '<br>' + main.font() + i18n['summary exp'] + '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>\n' + '</td></tr>\n' + '<tr><td>' + main.font() + '<b>' + i18n['email addrs'] + '</b><br>' + i18n['email addrs exp'] + '<blockquote>' + main.cfg['mail'] for (i = 0; i < a.length; i++) s += '<br>' + a[i] s += '</blockquote>' + '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '>\n' + '<tr><td><img src="imx/spacer.gif" width=1 height=2></td></tr></table>\n' + '</td></tr>\n'+ '<tr><td>' + main.font() + '<b>' + i18n['personal cn'] + '</b><br>' + i18n['personal cn exp'] + nbsp + main.cfg['cn'] + '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '>\n' + '<tr><td><img src="imx/spacer.gif" width=1 height=2></td></tr></table>\n' + '</td></tr>\n'+ '<tr><td>' + main.font() + '<b>' + i18n['quota'] + '</b><br>' + i18n['quota exp'] + '\n<blockquote>\n' + main.font() + i18n['quota limit'] + nbsp + main.font() + (parseInt(main.cfg['mailQuota']) > -1 ? size(main.cfg['mailQuota']) : i18n['no limit']) + '<br>' + main.font() + i18n['quota usage'] + nbsp + size(main.cfg['mailQuotaUsed']) + '\n</blockquote>\n' + '\n<blockquote>\n' + main.font() + i18n['message quota limit'] + nbsp + main.font() + (parseInt(main.cfg['mailMsgQuota']) > -1 ? main.cfg['mailMsgQuota'] : i18n['no limit']) + '<br>' + main.font() + i18n['message quota usage'] + nbsp + main.cfg['mailMsgQuotaUsed'] + '\n</blockquote>\n' + '</td></tr>\n' + '</table>\n' return s } function rvCard() { var s = main.unescape_crlf(main.cfg['vCard']) var idx, off, token if (!s) return token = crlf + 'n:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = ';', idx) form.nl.value = s.substring(idx, off) if (off > 0) { idx = off + token.length off = s.indexOf(token = crlf, idx) form.nf.value = s.substring(idx, off) } } token = crlf + 'fn:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.fn.value = s.substring(idx, off) } token = crlf + 'tel;pager:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.tp.value = s.substring(idx, off) } token = crlf + 'tel;cell:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.tc.value = s.substring(idx, off) } token = crlf + 'tel;fax:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.tf.value = s.substring(idx, off) } token = crlf + 'tel;home:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.th.value = s.substring(idx, off) } token = crlf + 'tel;work:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.tw.value = s.substring(idx, off) } token = crlf + 'url:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.ur.value = s.substring(idx, off) } token = crlf + 'org:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = ';', idx) form.or.value = s.substring(idx, off) if (off > 0) { idx = off + token.length off = s.indexOf(token = crlf, idx) form.od.value = s.substring(idx, off) } } token = crlf + 'adr:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = ';', idx) idx = off + token.length off = s.indexOf(token = ';', idx) if (off > 0) { idx = off + token.length off = s.indexOf(token = ';', idx) form.ad.value = s.substring(idx, off) } if (off > 0) { idx = off + token.length off = s.indexOf(token = ';', idx) form.ci.value = s.substring(idx, off) } if (off > 0) { idx = off + token.length off = s.indexOf(token = ';', idx) form.st.value = s.substring(idx, off) } if (off > 0) { idx = off + token.length off = s.indexOf(token = ';', idx) form.zi.value = s.substring(idx, off) } if (off > 0) { idx = off + token.length off = s.indexOf(token = crlf, idx) form.co.value = s.substring(idx, off) } } token = crlf + 'email;internet:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.ei.value = s.substring(idx, off) } token = crlf + 'title:' if (s.indexOf(token) > 0) { idx = s.indexOf(token) + token.length off = s.indexOf(token = crlf, idx) form.ti.value = s.substring(idx, off) } } function personalInit() { var e // Simon Chung - 05/04/2002 Removed Preferred Language Option //e = form.preferredLanguage //if (main.cfg['preferredLanguage']) { // for (var i = 0; i < e.options.length; i++) { // if (e.options[i].value.toLowerCase() == // main.cfg['preferredLanguage'].toLowerCase()) { // e.options[i].selected = true // break // } // } //} // Simon Chung - 19/04/2001 Removed vCard Option //form.meReplyToAddress.value = main.cfg['meReplyToAddress'] //if (!main.cfg['vCard']) { // if (main.cfg['givenName']) // form.nf.value = main.cfg['givenName'] // if (main.cfg['sn']) // form.nl.value = main.cfg['sn'] // if (main.cfg['cn']) // form.fn.value = main.cfg['cn'] // if (main.cfg['meReplyToAddress']) // form.ei.value = main.cfg['meReplyToAddress'] // else if (main.cfg['mail']) // form.ei.value = main.cfg['mail'] //} else { // rvCard() //} //e = form.vcard //if (main.cfg['meIncludeVCard']) // e.checked = true e = form.meAutoSign if (main.cfg['meAutoSign']) e.checked = true } function wvCard() { var s = 'begin:vcard' + crlf if (form.nl.value != '' && form.nf.value != '') s += 'n:' + form.nl.value + ';'+ form.nf.value else if (form.nf.value != '') s += 'n:' + ';' + form.nf.value else if(form.nl.value != '') s+= 'n:' + form.nl.value + ';' if (form.fn.value != '') s += crlf + 'fn:' + form.fn.value if (form.tp.value != '') s += crlf + 'tel;pager:' + form.tp.value if (form.tc.value != '') s += crlf + 'tel;cell:' + form.tc.value if (form.tf.value != '') s += crlf + 'tel;fax:' + form.tf.value if (form.th.value != '') s += crlf + 'tel;home:' + form.th.value if (form.tw.value != '') s += crlf + 'tel;work:' + form.tw.value if (form.ur.value != '') s += crlf + 'url:' + form.ur.value if (form.or.value != '' || form.od.value != '') s += crlf + 'org:' + form.or.value + ';' if (form.od.value != '') s += form.od.value if (form.ad.value != '' || form.ci.value != '' || form.st.value != '' || form.zi.value != '' || form.co.value != '') { s += crlf + 'adr:;;' + form.ad.value s += ';' + form.ci.value s += ';' + form.st.value s += ';' + form.zi.value s += ';' + form.co.value } s += crlf + 'version:2.1' if (form.ei.value != '') s += crlf + 'email;internet:' + form.ei.value if (form.ti.value != '') s += crlf + 'title:' + form.ti.value s += crlf + 'end:vcard' + crlf return s } function personalSave() { var changed = false, err = false var e // Simon Chung - 05/04/2002 Removed Preferred Language Option //e = form.preferredLanguage //if (e.options[e.selectedIndex].value != main.cfg['preferredLanguage']) { // changed = true // main.setUserAttrValue('preferredLanguage', e.options[e.selectedIndex].value) //} e = form.meReplyToAddress if (!(e.value == '' && main.cfg['meReplyToAddress'] == '') && e.value != main.cfg['meReplyToAddress']) { if (isvalidemailaddress(e.value)) { changed = true main.setUserAttrValue('meReplyToAddress', e.value) } else { err = true main.i18n_invalidemailaddress(e.value) } } e = form.meAutoSign if (e.checked && !main.cfg['meAutoSign']) { changed = true main.setUserAttrValue('meAutoSign', 'true') } else if (!e.checked && main.cfg['meAutoSign']) { changed = true main.setUserAttrValue('meAutoSign', '') } e = form.meSignature if (e.value != main.cfg['meSignature']) { changed = true main.setUserAttrValue('meSignature', e.value) } // Simon Chung - 05/04/2002 Removed vCard Option //if (!main.cfg['vCard']) { // changed = true // main.setUserAttrValue('vCard', wvCard()) //} else if ((e = wvCard()) != main.cfg['vCard']) { // changed = true // main.setUserAttrValue('vCard', e) //} //e = form.vcard //if (e.checked && !main.cfg['meIncludeVCard']) { // changed = true // main.setUserAttrValue('meIncludeVCard', 'true') //} else if (!e.checked && main.cfg['meIncludeVCard']) { // changed = true // main.setUserAttrValue('meIncludeVCard', '') //} if (changed) { if (!err) { main.submitUserAttrChanges() } } else { alert(i18n['not changed']) } } function personalHTML() { return '<form name="form" action="javascript:parent.noop()" method=post>' + '<table border=0 cellpadding=3 cellspacing=0 width=100%>' + '\n<tr>\n<td>' + main.font(3) + '<b>' + i18n['personal'] + '</b></font>' + '<br>' + main.font() + i18n['personal exp'] + '</td>\n</tr>' + // Simon Chung - 05/05/2002 Removed Preferred Language Option //'\n<tr>\n<td>' + //'<table border=0 cellpadding=0 cellspacing=0 width=100% ' + //main.cellBgString + '><tr><td>' + //'<img src="imx/spacer.gif" width=1 height=2>' + //'</td></tr></table>' + //'</td>\n</tr>' + //'\n<tr>\n<td>' + //main.font() + '<b>' + i18n['personal lang'] + '</b>' + //'<table border=0 cellpadding=0 cellspacing=0>' + //'\n<tr>\n<td' + main.base_line + '>' + //main.font() + //i18n['personal lang exp'] + nbsp + //main.i18n_preferredlanguagelist() + //'</td>\n</tr>' + //'</table>' + //'</td>\n</tr>' + '\n<tr>\n<td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + main.font() + '<b>' + i18n['personal replyto'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + '\n<tr>\n<td' + main.base_line + '>' + main.font() + i18n['personal replyto exp'] + ' ' + html(main.cfg['mail']) + ':</font><br><input type=text name="meReplyToAddress">' + '</td>\n</tr>' + '</table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + main.font() + '<b>' + i18n['personal signature'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + '\n<tr>\n<td' + main.base_line + '>' + '<input type=checkbox name="meAutoSign">' + main.font() + i18n['personal signature exp'] + '</font><br>' + '<textarea cols=52 rows=3 name="meSignature">' + main.cfg['meSignature'] + '</textarea>' + '</td>\n</tr>' + '</table>' + '</td>\n</tr>' + // Simon Chung - 05/04/2002 Removed vCard Option //'\n<tr>\n<td>' + //'<table border=0 cellpadding=0 cellspacing=0 width=100% ' + //main.cellBgString + '><tr><td>' + //'<img src="imx/spacer.gif" width=1 height=2>' + //'</td></tr></table>' + //'</td>\n</tr>' + //'\n<tr>\n<td>' + //main.font() + '<b>' + i18n['personal vcard'] + '</b>' + //'<table border=0 cellpadding=0 cellspacing=0>' + //'\n<tr>\n<td' + main.base_line + '>' + //main.font() + i18n['personal vcard exp'] + '</font><br>' + //main.i18n_personal_vcard() + //'</td>\n</tr>' + //'</table>' + //'</td>\n</tr>\n' + '<tr align=center width=100%><td>' + '<table border=0 cellpadding=4 cellspacing=0><tr>' + main.button(i18n['submit changes'], 'parent.personalSave()') + main.button(i18n['clear'], 'parent.clear()') + '</tr></table>' + '</td></tr>' + '</table>' + '</form>' } // Simon Chung - 05/04/2002 - Added for Changing password using external form function validate() { form.uid.value = main.getUserAttrValue('uid', 0) if (form.uid.value != '') { if (form.old.value != '') { if (form.newpass.value != '') { if (form.newpass.value == form.confirm.value) { if (form.newpass.value.length < 6) { alert(i18n["pass short alert"]) form.newpass.value = '' form.newpass.focus() form.confirm.value = '' } else { form.submit() } } else { alert(i18n["pass mismatch alert"]) form.newpass.value = '' form.newpass.focus() form.confirm.value = '' } } else { alert(i18n["new pass alert"]) form.newpass.value = '' form.newpass.focus() form.confirm.value = '' } } else { alert(i18n["old pass alert"]) form.old.focus() } } else { alert(i18n["id number alert"]) form.uid.focus() } } // Simon Chung - 05/04/2002 - Added for Changing password using external form function passwordHTML() { return '<form name="form" method=post action="http://lisa.itd.uts.edu.au/changepassword/ChangePasswordiMS52.cgi">' + '<table border=0 cellpadding=3 cellspacing=0>' + '\n<tr>\n<td colspan=2>' + main.font(3) + '<b>' + i18n['password'] + '</b></font>' + '<br>' + main.font() + i18n['passwd exp'] + '</td>\n</tr>' + '\n<tr>\n<td colspan=2>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>' + '</td>\n</tr>' + '<input type="hidden" name="uid">' + '\n<tr>\n<td' + main.base_line + ' width=1% nowrap>' + main.font() + i18n['passwd old'] + nbsp + '</td>\n<td>' + '<input type="password" name="old">' + '</td>\n</tr>' + '\n<tr>\n<td' + main.base_line + ' width=1% nowrap>' + main.font() + i18n['passwd new'] + nbsp + '</td>\n<td>' + '<input type="password" name="newpass">' + '</td>\n</tr>' + '\n<tr>\n<td' + main.base_line + ' width=1% nowrap>' + main.font() + i18n['passwd confirm'] + nbsp + '</td>\n<td>' + '<input type="password" name="confirm"> ' + '</td>\n</tr>' + '\n<tr>\n<td colspan=2>' + nbsp + '</td></tr>' + '<tr align=center width=100%><td colspan=2>' + '<table border=0 cellpadding=4 cellspacing=0><tr>' + main.button(i18n['passwd submit'], 'parent.validate()') + main.button(i18n['clear'], 'parent.clear()') + '</tr></table>' + '</td></tr>' + '</td>\n</tr>' + '</table></form>' } function stripWhiteSpace(str) { var s = new String() for (var i = 0; i < str.length; i++) { if (str.charAt(i) == ' ') { s += crlf continue } if (crlf.length == 2) { if (str.charAt(i) == '\r' && str.charAt(i + 1) == '\n') { if (s.charAt(s.length - 1) == '\n') { i += 2 continue } s += crlf i += 2 } } else { if ((str.charAt(i) == '\n' || str.charAt(i) == '\r') && s.charAt(s.length - 1) == '\n') continue if (str.charAt(i) == '\r' || str.charAt(i) == '\n') { s += crlf continue } } s += str.charAt(i) } return s } function rectifyDelOpts(widget) { if (widget.name == 'meTrashFolder') { if (widget.value == 'trash') { if (form.onexit1.checked) form.onexit0.checked = true form.onexit1.checked = false } else if (widget.value == 'mark') { if (form.onexit0.checked) form.onexit1.checked = true form.onexit0.checked = false } } else { if (widget.value == 'empty') { form.onexit1.checked = false form.meTrashFolder[1].checked = false form.meTrashFolder[0].checked = true } else { form.onexit0.checked = false form.meTrashFolder[0].checked = false form.meTrashFolder[1].checked = true } } } function settingsInit() { var e if (SMIME.enable){ if(main.cfg['meSMIMESign']){ if(main.cfg['meSMIMESign'].toString()=='yes')form.sign.checked=true if(main.cfg['meSMIMEEncrypt'].toString()=='yes')form.encrypt.checked=true; } else{// no cfg['meSMIMESign']) has been set main.setUserAttrValue('meSMIMESign', 'no') main.setUserAttrValue('meSMIMEEncrypt', 'no') main.submitUserAttrChanges(); } } if (main.cfg['meTrashFolder']) { form.meTrashFolder[0].checked = true if (main.cfg['meExpungeOnExit']) form.onexit0.checked = true } else { form.meTrashFolder[1].checked = true if (main.cfg['meExpungeOnExit']) form.onexit1.checked = true } //AK123 May 28 if(main.cfg['meAutoSpell']) form.meAutoSpell.checked=eval(main.cfg['meAutoSpell']) //End AK123 if (main.cfg['meSentFolder']) form.meSentFolder.checked = true // Simon Chung - 14/03/2002 - Added for keeping local copy idx = main.getUserAttrIndex('mailDeliveryOption') if (idx != -1) { for (i = 0; i < main.cfgFrame.usrattrval[idx].vals.length; i++) { if (main.cfgFrame.usrattrval[idx].vals[i] == 'mailbox') form.mailDeliveryOption.checked = true } } form.meAutoQuote.checked = (main.cfg['meAutoQuote'] == 'true') e = form.mailForwardingAddress var idx = main.getUserAttrIndex('mailForwardingAddress') if (main.cfgFrame.usrattrval[idx].vals.length < 2) e.value = main.cfg['mailForwardingAddress'] else e.value = join(main.cfg['mailForwardingAddress'], crlf) } //AK sept 12 for SMIME//////////////////////////// var SMIME=new Array(); SMIME.enable=main.cfgFrame.smimeEnabled==true?true:false; var smimesign,smimeencrypt; if(SMIME.enable){ smimesign=main.cfg['meSMIMESign'] smimeencrypt=main.cfg['meSMIMEEncrypt'] } //AK sept 12 for SMIME//////////////////////////// function settingsSave() { var changed = false, err = false var e, l, s, v var prevTrash = '' var prevTrashS // AK sept 12 SMIME //////////////////// if(SMIME.enable){ if (form.sign.checked&&main.cfg['meSMIMESign'].toString()=='no'){ changed = true main.setUserAttrValue('meSMIMESign', 'yes') } else if(!(form.sign.checked)&& main.cfg['meSMIMESign'].toString()=='yes'){ changed = true main.setUserAttrValue('meSMIMESign', 'no') } if (form.encrypt.checked&&main.cfg['meSMIMEEncrypt'].toString()=='no'){ changed = true main.setUserAttrValue('meSMIMEEncrypt', 'yes') } else if(!(form.encrypt.checked)&&main.cfg['meSMIMEEncrypt'].toString()=='yes'){ changed = true main.setUserAttrValue('meSMIMEEncrypt', 'no') } } // AK sept 12 SMIME //////////////////// //if(main.cfg['meTrashFolder']) prevTrash = main.cfg['meTrashFolder'] if (form.meTrashFolder[0].checked) s = main.folder(form.folderList0.options[form.folderList0.selectedIndex].value) else s = '' prevTrashS = main.folder(form.folderList0.options[form.folderList0.selectedIndex].value) if( prevTrashS != main.cfg['mePrevTrash']) { changed = true if(prevTrashS != '' ) main.setUserAttrValue('mePrevTrash', prevTrashS) } if (s != main.cfg['meTrashFolder']) { changed = true main.setUserAttrValue('meTrashFolder', s) // if(s=='') main.setUserAttrValue('mePrevTrash',prevTrash) // else main.setUserAttrValue('mePrevTrash',s) } if ((form.onexit0.checked || form.onexit1.checked) && !main.cfg['meExpungeOnExit']) { changed = true main.setUserAttrValue('meExpungeOnExit', 'true') } else if ((!form.onexit0.checked && !form.onexit1.checked) && main.cfg['meExpungeOnExit']) { changed = true main.setUserAttrValue('meExpungeOnExit', '') } if (form.meSentFolder.checked) s = main.folder(form.folderList1.options[form.folderList1.selectedIndex].value) else s = '' if (s != main.cfg['meSentFolder']) { changed = true main.setUserAttrValue('meSentFolder', s) } s = main.folder(form.folderList2.options[form.folderList2.selectedIndex].value) if (s != main.cfg['meDraftFolder']) { changed = true main.setUserAttrValue('meDraftFolder', s) } e = form.mailForwardingAddress var idx = main.getUserAttrIndex('mailForwardingAddress') var values = new Array() var mailforwarding = 'false' values = split(stripWhiteSpace(e.value), crlf) if (values.length < 2) { if (values[0] != main.cfg['mailForwardingAddress']) { if (isvalidemailaddress(values[0])) { changed = true main.setUserAttrValue('mailForwardingAddress', values[0]) if(values[0]!='') mailforwarding='true' else mailforwarding='remove' } else { err = true main.i18n_invalidemailaddress(values[0]) } } } else { /* strip duplicates so that the values array do not match the duplicate value with the one in the config list */ for(ind=0; ind < values.length; ind++) { for(jind=ind+1; jind < values.length; jind++) { if( values[ind]==values[jind] ) values.splice(jind,1); } } var matches = 0 if (values.length != main.cfg['mailForwardingAddress'].length) { main.pruneUserAttrValue('mailForwardingAddress') for (var i = 0; i < values.length; i++) { if (isvalidemailaddress(values[i])) { mailforwarding='true' main.addUserAttrValue('mailForwardingAddress', values[i]) } else { err = true main.i18n_invalidemailaddress(values[i]) break } } changed = true } else { for (var i = 0; i < values.length; i++) { for (var j = 0; j < values.length; j++) { if (values[i] == main.cfg['mailForwardingAddress'][j]) { ++matches continue } } } if (matches != values.length) { main.pruneUserAttrValue('mailForwardingAddress') for (var i = 0; i < values.length; i++) { if (isvalidemailaddress(values[i])) { main.addUserAttrValue('mailForwardingAddress', values[i]) mailforwarding='true' } else { err = true main.i18n_invalidemailaddress(values[i]) break } } changed = true } else form.mailForwardingAddress.value = join(values, crlf); } } // Simon Chung - 05/04/2002 - Removed AutoSpell Feature // e = form.meAutoSpell //if (e.checked && main.cfg['meAutoSpell'] != 'true') { // changed = true // main.setUserAttrValue('meAutoSpell', 'true') // } else if (!e.checked && main.cfg['meAutoSpell'] == 'true') { // changed = true // main.setUserAttrValue('meAutoSpell', 'false') // } //END AK234 e = form.meAutoQuote if (e.checked && main.cfg['meAutoQuote'] != 'true') { changed = true main.setUserAttrValue('meAutoQuote', 'true') } else if (!e.checked && main.cfg['meAutoQuote'] == 'true') { changed = true main.setUserAttrValue('meAutoQuote', 'false') } // Simon Chung - 05/04/2002 - Added for keeping local copy if no forwardingset e = form.mailDeliveryOption if (!e.checked && form.mailForwardingAddress.value == '') { alert('You must set "Leave local copy" if you do not have mail forwarding ad dress') e.checked = true changed = true } // Simon Chung - 15/03/2002 - Added for keeping local copy var KeepLocalEnabled idx = main.getUserAttrIndex('mailDeliveryOption') if (idx != -1) { for (i = 0; i < main.cfgFrame.usrattrval[idx].vals.length; i++) { if (main.cfgFrame.usrattrval[idx].vals[i] == 'mailbox') KeepLocalEnabled = true } } if (e.checked && !KeepLocalEnabled) { changed = true main.addUserAttrValue('mailDeliveryOption', 'mailbox') } else if (!e.checked && KeepLocalEnabled) { changed = true main.delUserAttrValue('mailDeliveryOption', 'mailbox') } var ForwardEnabled idx = main.getUserAttrIndex('mailDeliveryOption') if (idx != -1) { for (i = 0; i < main.cfgFrame.usrattrval[idx].vals.length; i++) { if (main.cfgFrame.usrattrval[idx].vals[i] == 'forward') ForwardEnabled = true } } if (mailforwarding=='true' && !ForwardEnabled) { changed = true main.addUserAttrValue('mailDeliveryOption', 'forward') } else if (mailforwarding=='remove' && ForwardEnabled) { changed = true main.delUserAttrValue('mailDeliveryOption', 'forward') } if (changed) { if (!err) main.submitUserAttrChanges() } else alert(i18n['not changed']) } function settingsHTML() { var s var f s = '<form name="form" action="javascript:parent.noop()" method=post>\n' + '<table border=0 cellpadding=3 cellspacing=0 width=100%>\n' + '<tr><td>' + main.font(3) + '<b>' + i18n['settings'] + '</b></font>' + '<br>' + main.font() + i18n['settings exp'] + '</td></tr>\n' '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '>\n' + '<tr><td><img src="imx/spacer.gif" width=1 height=2></td></tr></table>\n' + '</td></tr>\n' //AK sept 12 for SMIME//////////////////////////// if(SMIME.enable){ s += '<tr>\n<td>' + main.font() + '<b>' +'Secure Messaging'+ '</b><table border=0 cellpadding=0 cellspacing=0>\n<tr><td' + main.base_line + '>' + main.font() + '<input type=checkbox name=sign value="y" >'+'</td>\n<td colspan=2 ' + main.base_line + '>'+'Sign all outgoing Messages' + '<br></td></tr>'+ '<tr><td' +main.base_line + '>' + main.font() + '<input type=checkbox name="encrypt"value="y" >'+'</td>\n<td colspan=2 ' + main.base_line + '>'+'Encrypt all outgoing Messages' + '<br></td></tr>'+'</table>\n' } //AK sept 12 for SMIME//////////////////////////////AK sept 12 for SMIME//////////////////////////// f = main.cfg['meTrashFolder'] ? main.cfg['meTrashFolder'] : (main.cfg['mePrevTrash'] ? main.cfg['mePrevTrash'] : i18n['trash folder']) s += '<tr>\n<td>' + main.font() + '<b>' + i18n['settings delete'] + '</b><table border=0 cellpadding=0 cellspacing=0>\n<tr><td' + main.base_line + '>' + main.font() + '<input type=radio name="meTrashFolder" value="trash"' + ' onClick="parent.rectifyDelOpts(this)"> ' + '</td>\n<td colspan=2 ' + main.base_line + '>' + main.font() + main.i18n_settings_delete_trash(main.folderSelection('folderList0', null, null, null, null, f)) + '<br></td></tr>\n' + '<tr><td></td>\n<td' + main.base_line + ' width=1%>' + main.font() + '<input type=checkbox name="onexit0" value="empty"' + ' onClick="parent.rectifyDelOpts(this)"> ' + '</td>\n<td' + main.base_line + '>' + main.font() + i18n['settings exit empty'] + '</td></tr>\n' + '<tr><td' + main.base_line + '>' + main.font() + '<input type=radio name="meTrashFolder" value="mark"' + ' onClick="parent.rectifyDelOpts(this)"> ' + '</td>\n<td colspan=2 ' + main.base_line + '>' + main.font() + i18n['settings delete imap'] + '</td></tr>\n' + '<tr><td></td>\n<td' + main.base_line + ' width=1%>' + main.font() + '<input type=checkbox name="onexit1" value="expunge"' + ' onClick="parent.rectifyDelOpts(this)"> ' + '</td>\n<td' + main.base_line + '>' + main.font() + i18n['settings exit expunge'] + '</td></tr>\n' + '</table></td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '>\n' + '<tr><td><img src="imx/spacer.gif" width=1 height=2></td></tr></table>\n' + '</td></tr>\n' + /* +AK added below 123456 for autospell check May 28*/ //s=s+'\n<tr>\n<td>' + // main.font() + '<b>' + i18n['settings autospell'] + '</b>' + // '<table border=0 cellpadding=0 cellspacing=0>' + main.font() + // '<tr>\n<td' + main.base_line + ' width=1%>' + // '<input type=checkbox name="meAutoSpell">' + // '</td>\n<td' + main.base_line + '>' + // main.font() + i18n['settings autospell exp'] + // '</td>\n</tr>' + // '</table>' + // '</td>\n</tr>' + // '\n<tr><td>' + // '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + // main.cellBgString + '><tr><td>' + // '<img src="imx/spacer.gif" width=1 height=2>' + // '</td></tr></table>' + // '</td>\n</tr>' + /*AK123456 end*/ '<tr><td>' + main.font() + '<b>' + i18n['settings sent'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + '\n<tr>\n<td' + main.base_line + '>' + main.font() + '<input type=checkbox name="meSentFolder" value="true"> ' + '</td>\n<td' + main.base_line + '>' f = main.cfg['meSentFolder'] ? main.cfg['meSentFolder'] : i18n['sent folder'] s += main.font() + main.i18n_settings_sent_folder(main.folderSelection('folderList1', 'form.meSentFolder.checked=true', null, null, null, f)) + '</td>\n</tr>' + '</table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + main.font() + '<b>' + i18n['settings draft'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + '\n<tr>\n<td' + main.base_line + '>' f = main.cfg['meDraftFolder'] ? main.cfg['meDraftFolder'] : i18n['draft folder'] s += main.font() + main.i18n_settings_draft_folder(main.folderSelection('folderList2', null, null, null, null, f)) + '</td>\n</tr>' + '</table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + main.font() + '<b>' + i18n['settings quote'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + main.font() + '<tr>\n<td' + main.base_line + ' width=1%>' + '<input type=checkbox name="meAutoQuote">' + '</td>\n<td' + main.base_line + '>' + main.font() + i18n['settings quote exp'] + '</td>\n</tr>' + '</table>' + '</td>\n</tr>' + '\n<tr>\n<td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>' + '</td>\n</tr>' + '\n<tr>\n<td' + main.base_line + '>' + main.font() + '<b>' + i18n['settings delivery'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + '<tr>\n<td' + main.base_line + '>' + // Simon Chung - 19/04/2001 - Added for keeping local copy '<input type=checkbox name="mailDeliveryOption">' + main.font() + 'Leave local copy' + '</font><br></td></tr>\n<tr><td>' + main.font() + i18n['settings forward'] + '</font><br>' + '<textarea cols=52 rows=3 name="mailForwardingAddress"></textarea>' + '</td>\n</tr>' + '</table>' + '</td>\n</tr>' + '<tr align=center width=100%><td>' + '<table border=0 cellpadding=4 cellspacing=0><tr>' + main.button(i18n['submit changes'], 'parent.settingsSave()') + main.button(i18n['clear'], 'parent.clear()') + '</tr></table>' + '</td></tr>' + '</table>' + '</form>' return s } function appearanceInit() { var e e = form.meColorSet for (var i = 0; i < e.length; i++){ if (e[i].value == main.cfg['meColorSet']) { e[i].checked = true break } } e = form.meViewSize for (var i = 0; i < e.options.length; i++) { if (parseInt(e.options[i].value) == parseInt(main.cfg['meViewSize'])) { e.options[i].selected = true break } } e = form.meSortOrder for (var i = 0; i < e.options.length; i++) { if (e.options[i].value == main.cfg['meSortOrder']) { e.options[i].selected = true break } } e = form.meFontFace for (var i = 0; i < e.options.length; i++) { if (e.options[i].value.toLowerCase() == main.cfg['meFontFace'].toLowerCase()) { e.options[i].selected = true break } } e = form.meFontSizeDelta for (var i = 0; i < e.options.length; i++) { if (e.options[i].value == main.cfg['meFontSizeDelta']) { e.options[i].selected = true break } } e = form.meTableSpacing for (var i = 0; i < e.options.length; i++) { if (e.options[i].value == main.cfg['meTableSpacing']) { e.options[i].selected = true break } } } function appearanceSave() { var changed = false var e e = form.meColorSet for (var i = 0; i < e.length; i++){ if (e[i].checked && e[i].value != main.cfg['meColorSet']) { changed = true main.setUserAttrValue('meColorSet', e[i].value) break } } if (tool == 0 && main.cfg['meToolImage'] != main.cfg['meToolText']) { main.setUserAttrValue('meToolImage', 'true') main.setUserAttrValue('meToolText', 'true') main.cfg['meToolImage'] = main.cfg['meToolText'] = 'true' changed = true } else if (tool == 1 && (main.cfg['meToolImage'] == main.cfg['meToolText'] || main.cfg['meToolImage'] == 'false')) { main.setUserAttrValue('meToolImage', 'true') main.setUserAttrValue('meToolText', 'false') changed = true } else if (tool == 2 && (main.cfg['meToolImage'] == main.cfg['meToolText'] || main.cfg['meToolText'] == 'false')) { main.setUserAttrValue('meToolImage', 'false') main.setUserAttrValue('meToolText', 'true') changed = true } e = form.meViewSize if (e.options[e.selectedIndex].value != main.cfg['meViewSize']) { changed = true main.setUserAttrValue('meViewSize', e.options[e.selectedIndex].value) main.d_from = 0 main.mboxFrame.start = 0 } e = form.meSortOrder if (e.options[e.selectedIndex].value != main.cfg['meSortOrder']) { changed = true main.setUserAttrValue('meSortOrder', e.options[e.selectedIndex].value) } e = form.meFontFace if (e.options[e.selectedIndex].value != main.cfg['meFontFace']) { changed = true main.setUserAttrValue('meFontFace', e.options[e.selectedIndex].value) } e = form.meFontSizeDelta if (e.options[e.selectedIndex].value != main.cfg['meFontSizeDelta']) { changed = true main.setUserAttrValue('meFontSizeDelta', e.options[e.selectedIndex].value) } e = form.meTableSpacing if (e.options[e.selectedIndex].value != main.cfg['meTableSpacing']) { changed = true main.setUserAttrValue('meTableSpacing', e.options[e.selectedIndex].value) } if (changed) { main.submitUserAttrChanges() } else { alert(i18n['not changed']) } } function appearanceHTML() { var i, s s = '<form name="form" action="javascript:parent.noop()" method=post>' + '<table border=0 cellpadding=3 cellspacing=0 width=100%>\n' + '<tr><td>' + main.font(3) + '<b>' + i18n['appearance'] + '</b></font>' + '<br>' + main.font() + i18n['appearance exp'] + '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>\n' + '</td></tr>\n' + '<tr><td>' + main.font() + '<b>' + i18n['appearance colors'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>\n' for (i = 0; i < main.ui.length; i++) { s += '<tr><td>' + main.font() + '<input type=radio name="meColorSet" value=' + i + '> ' + '</td>\n<td bgcolor=' + main.ui[i][1] + '>' + // Simon Chung 19/04/2001 - Colour scheme changes i18n['appearance colors spacer'] + '</td>' + '<td>' + main.font() + nbsp + main.ui[i][20] + '</td>' + '</td></tr>\n' '<tr><td colspan="2">&nbsp;</td></tr>\n' //i18n['appearance colors spacer'] + //'</td>\n<td bgcolor=' + main.ui[i][2] + '>' + //i18n['appearance colors spacer'] + //'</td>\n<td bgcolor=' + main.ui[i][3] + '>' + //i18n['appearance colors spacer'] + //'</td>\n<td bgcolor=' + main.ui[i][4] + '>' + //i18n['appearance colors spacer'] + //'</td>\n<td bgcolor=' + main.ui[i][5] + '>' + //i18n['appearance colors spacer'] + //'</td></tr>\n' } s += '</table>' if (main.cfg['meToolImage'] == main.cfg['meToolText']) tool = 0 else if (main.cfg['meToolImage'] == 'true') tool = 1 else if (main.cfg['meToolText'] == 'true') tool = 2 s += '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>\n' + '</td></tr>\n' + '<tr><td>' + main.font() + '<b>' + i18n['appearance bar'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>\n' + '<tr><td' + main.base_line + '>' + main.font() + '<input type=radio name="toolbar"' + (tool == 0 ? ' checked ' : '') + 'onClick="parent.tool=0"> ' + '</td>\n<td' + main.base_line + '>' + main.font() + i18n['appearance bar both'] + '</td></tr>\n' + '<tr><td' + main.base_line + '>' + main.font() + '<input type=radio name="toolbar"' + (tool == 1 ? ' checked ' : '') + 'onClick="parent.tool=1"> ' + '</td>\n<td' + main.base_line + '>' + main.font() + i18n['appearance bar icons'] + '</td></tr>\n' + '<tr><td' + main.base_line + '>' + main.font() + '<input type=radio name="toolbar"' + (tool == 2 ? ' checked ' : '') + 'onClick="parent.tool=2"> ' + '</td>\n<td' + main.base_line + '>' + main.font() + i18n['appearance bar text'] + '</td></tr>\n' + '</table>\n' + '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>\n' + '</td></tr>\n' + '<tr><td>' + main.font() + '<b>' + i18n['appearance page'] + '</b>' + '<table border=0 cellpadding=1 cellspacing=0>\n' + '<tr><td' + main.base_line + '>' + main.font() + i18n['appearance page exp'] + '</td></tr><tr><td' + main.base_line + '>' + main.font() + i18n['appearance sort'] + '</td></tr></table></td></tr>\n' + '<tr>\n<td><table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '>\n' + '<tr><td><img src="imx/spacer.gif" width=1 height=2></td></tr></table>' + '</td></tr>\n' + '<tr><td>' + main.font() + '<b>' + i18n['appearance fonts'] + '</b>' + '<table border=0 cellpadding=0 cellspacing=0>' + '<tr><td' + main.base_line + '>' + main.font() + i18n['appearance fonts face'] + '<br>' + '<select name="meFontFace">' + '<option value="' + i18n['fontface1'] + '">' + i18n['sans serif'] + '</option>' + '<option value="' + i18n['fontface2'] + '">' + i18n['serif'] + '</option>' + '<option value="' + i18n['fontface3'] + '">' + i18n['mono'] + '</option>' + '</select>' + '</td>\n<td>' + nbsp + nbsp + nbsp + '</td><td' + main.base_line + '>' + main.font() + i18n['appearance fonts size'] + '<br>' + '<select name="meFontSizeDelta">' + '<option value="2">' + i18n['appearance fonts xl'] + '</option>' + '<option value="1">' + i18n['appearance fonts l'] + '</option>' + '<option value="0" selected>' + i18n['appearance fonts m'] + '</option>' + '<option value="-1">' + i18n['appearance fonts s'] + '</option>' + '</select>' + '</td>\n<td>' + nbsp + nbsp + nbsp + '</td><td' + main.base_line + '>' + main.font() + i18n['appearance fonts space'] + '<br>' + '<select name="meTableSpacing">' + '<option value="4">' + i18n['appearance fonts xl'] + '</option>' + '<option value="3">' + i18n['appearance fonts l'] + '</option>' + '<option value="2" selected>' + i18n['appearance fonts m'] + '</option>' + '<option value="1">' + i18n['appearance fonts s'] + '</option>' + '<option value="0">' + i18n['appearance fonts xs'] + '</option>' + '</select>' + '</td></tr>' + '</table>' + '</td></tr>\n' + '<tr align=center width=100%><td>' + '<table border=0 cellpadding=4 cellspacing=0><tr>' + main.button(i18n['submit changes'], 'parent.appearanceSave()') + main.button(i18n['clear'], 'parent.clear()') + '</tr></table>' + '</td></tr>' + '</table></form>\n' return s } function vacationInit() { var e, i, idx e = form.mailDeliveryOption idx = main.getUserAttrIndex('mailDeliveryOption') if (idx != -1) { for (i = 0; i < main.cfgFrame.usrattrval[idx].vals.length; i++) { if (main.cfgFrame.usrattrval[idx].vals[i] == e.value) e.checked = true } } e=form.mailAutoReplySubject; e.value=main.cfg['mailAutoReplySubject']; } function vacationSave() { var changed = false var delivery var vacationEnabled = false var valid var e, i, idx var UTCTime var validDate = false var tempSubject delivery = form.mailDeliveryOption var temp1 = main.i18n_get_utc(form.vacationStartDate.value) var temp2 = main.i18n_get_utc(form.vacationEndDate.value) if ( form.vacationStartDate.value !='' && form.vacationEndDate.value != '' ) { var tempStart = new Date(temp1.substring(0,4),temp1.substring(4,6),temp1.substring(6,8)) var tempEnd = new Date(temp2.substring(0,4),temp2.substring(4,6),temp2.substring(6,8)) if((tempStart > tempEnd) && delivery.checked) { alert (i18n['startgreaterend']); return; } } if( delivery.checked ) { if(form.mailAutoReplyTextInternal.value =='' && form.mailAutoReplyText.value=='') { alert(i18n['noReplyIfNoText']); return ; } } idx = main.getUserAttrIndex('mailDeliveryOption') if (idx != -1) { for (i = 0; i < main.cfgFrame.usrattrval[idx].vals.length; i++) { if (main.cfgFrame.usrattrval[idx].vals[i] == delivery.value) vacationEnabled = true } } if (delivery.checked && !vacationEnabled) { changed = true main.addUserAttrValue('mailDeliveryOption', delivery.value) } else if (!delivery.checked && vacationEnabled) { changed = true main.delUserAttrValue('mailDeliveryOption', delivery.value) } e = form.vacationStartDate valid = main.i18n_checkDate(e, delivery.checked) if (!valid) { if (e == null || e == "") { validDate = true } } else { validDate = true UTCTime = main.i18n_get_utc(e.value) if (UTCTime != main.cfg['vacationStartDate']) { changed = true main.setUserAttrValue('vacationStartDate', UTCTime) } } e = form.vacationEndDate valid = main.i18n_checkDate(e, delivery.checked) if (!valid) { if (e == null || e == "") { validDate = true } } else { validDate = true UTCTime = main.i18n_get_utc(e.value) if (UTCTime != main.cfg['vacationEndDate']) { changed = true main.setUserAttrValue('vacationEndDate', UTCTime) } } e = form.mailAutoReplyTimeout var days=parseInt(e.value) var daysstring=""+days var hours = days * 24 if(isNaN(days)|| daysstring.length!=e.value.length) { if(delivery.checked) alert(i18n['vacation invalidauotreplytimeout']) else { changed = true main.setUserAttrValue('mailAutoReplyTimeout','') } } else if (hours != parseInt(main.cfg['mailAutoReplyTimeout'])) { changed = true main.setUserAttrValue('mailAutoReplyTimeout', ("" + hours)) } e = form.mailAutoReplySubject if (main.cfg['mailAutoReplySubject'] && (e.value != main.cfg['mailAutoReplySubject'])|| (e.value && !main.cfg['mailAutoReplySubject'])){ changed = true tempSubject = e.value tempSubject = tempSubject.replace(/%/gi,"%25") tempSubject = tempSubject.replace(/:/gi,"%26") main.setUserAttrI18nValue('mailAutoReplySubject;lang-' + main.lang, 'mailAutoReplySubject', tempSubject) } var encoded e = form.mailAutoReplyTextInternal encoded = encodeVacationText(e.value) if (main.cfg['mailAutoReplyTextInternal'] && (encoded != main.cfg['mailAutoReplyTextInternal'])||(encoded && !main.cfg['mailAutoReplyTextInternal'])){ changed = true main.setUserAttrI18nValue('mailAutoReplyTextInternal;lang-' + main.lang, 'mailAutoReplyTextInternal', encoded) } e = form.mailAutoReplyText encoded = encodeVacationText(e.value) if (main.cfg['mailAutoReplyText'] && (encoded != main.cfg['mailAutoReplyText']) ||(encoded && ! main.cfg['mailAutoReplyText'])){ changed = true main.setUserAttrI18nValue('mailAutoReplyText;lang-' + main.lang, 'mailAutoReplyText', encoded) } if (changed) { if (delivery.checked) { if (validDate) { main.submitUserAttrChanges() } else { alert(i18n['vacation blank date error']) } } else { main.submitUserAttrChanges() } } else { alert(i18n['not changed']) } } function vacationHTML() { var timeout = main.cfg['mailAutoReplyTimeout']=='' ? '' : parseInt(main.cfg['mailAutoReplyTimeout']) / 24 var i; for(i=0;i< main.cfgFrame.usrattrval.length ; i++ ) if(main.cfgFrame.usrattrval[i].name == "mailAutoReplySubject" || main.cfgFrame.usrattrval[i].name == "mailAutoReplyText" || main.cfgFrame.usrattrval[i].name == "mailAutoReplyTextInternal") main.cfg[main.cfgFrame.usrattrval[i].name] = main.cfgFrame.usrattrval[i].vals[0] ? main.cfgFrame.usrattrval[i].vals[0] : '' var decodedText = decodeVacationText(main.cfg['mailAutoReplyText']) var decodedTextInternal = decodeVacationText(main.cfg['mailAutoReplyTextInternal']) return '<form name="form" action="javascript:parent.noop()" method=post>' + '<table border=0 cellpadding=3 cellspacing=0 width=100%>\n' + '<tr><td>' + main.font(3) + '<b>' + i18n['vacation'] + '</b></font>' + '<br>' + main.font() + i18n['vacation exp'] + '</td></tr>\n' + '<tr><td>' + '<table border=0 cellpadding=0 cellspacing=0 width=100% ' + main.cellBgString + '><tr><td>' + '<img src="imx/spacer.gif" width=1 height=2>' + '</td></tr></table>\n' + '<tr><td>' + main.font() + '<input type="checkbox" name="mailDeliveryOption" value="autoreply" onClick="parent.checkEnabled()">' + main.font() + i18n['vacation toggle'] + '</td></tr>\n' + '<tr><td>' + main.font() + i18n['vacation start exp'] + '</font>' + '<input type="text" size=10 maxlength=10 name="vacationStartDate" onChange="main.i18n_checkDate(this.form.vacationStartDate, this.form.mailDeliveryOption.checked)" value=' + main.i18n_get_vdate(main.cfg['vacationStartDate']) + '>' + i18n['vacation date format exp'] + '</td></tr>\n' + '<tr><td>' + main.font() + i18n['vacation end exp'] + '</font>' + '<input type="text" size=10 maxlength=10 name="vacationEndDate" onChange="main.i18n_checkDate(this.form.vacationEndDate, this.form.mailDeliveryOption.checked)" value=' + main.i18n_get_vdate(main.cfg['vacationEndDate']) + '>' + i18n['vacation date format exp'] + '</td></tr>\n' + '<tr><td>' + main.font() + i18n['vacation timeout exp'] + '</font>' + '<input type="text" size=3 name="mailAutoReplyTimeout" onChange="main.i18n_checkDays(this.form.mailAutoReplyTimeout,this.form.mailDeliveryOption.checked)" value=' +timeout + '>' + '</td></tr>\n' + '<tr><td>' + main.font() + i18n['vacation subject exp'] + '</font><br>' + '<input type="text" size=52 name="mailAutoReplySubject" >' + '</td></tr>\n' + '<tr><td>' + main.font() + i18n['vacation internal msg exp'] + '</font><br>' + '<textarea cols=52 rows=4 name="mailAutoReplyTextInternal" wrap=virtual>' + decodedTextInternal + '</textarea>' + '</td></tr>\n' + '<tr><td>' + main.font() + i18n['vacation msg exp'] + '</font><br>' + '<textarea cols=52 rows=4 name="mailAutoReplyText" wrap=virtual>' + decodedText + '</textarea>' + '</td></tr>\n' + '<tr align=center width=100%><td>' + '<table border=0 cellpadding=4 cellspacing=0><tr>' + main.button(i18n['submit changes'], 'parent.vacationSave()') + main.button(i18n['clear'], 'parent.clear()') + '</tr></table>' + '</td></tr>' + '</table></form>' } function encodeVacationText(text) { var s = "" var c text = text.replace(/%/gi,"%25"); text = text.replace(/:/gi,"%26"); for (var i=0; i < text.length; i++) { c = text.charAt(i) if (c == '\n') { s += "$" } else { if (c != '\r') { if (c == '\\'){ s += "\\" } else { if (c == '$') { if ((text.indexOf("SUBJECT", i) == i+1) || (text.indexOf("FROM", i) == i+1)) { s += c } else { s += "\\$" } } else { s += c } } } else { s += "$" if (text.charAt(i+1) == '\n') { i++ } } } } return s } function decodeVacationText(text) { var s = "" var c if(typeof(text) == "undefined") text = "" for (var i=0; i < text.length; i++) { c = text.charAt(i) if (c == '$') { if ((text.indexOf("SUBJECT", i) == i+1) || (text.indexOf("FROM", i) == i+1)) { s += c } else { s += '\n' } } else { if (c == '\\') { if (text.indexOf("\\$", i) == i+1) { s += c } else { i++ c = text.charAt(i) if (c == '$') { s += "$" } else { s += "\\" + c } } } else { s += c } } } return s } function ndaHTML() { return '<HTML><HEAD></HEAD><BODY ONLOAD=\"location.href = \'' + main.NDAStartPage + '\'\"></BODY></HTML>' } function noop() { } function checkEnabled() { var deliveryCheckBox = form.mailDeliveryOption if( deliveryCheckBox.checked ) { if ( form.mailAutoReplyTextInternal.value == '' ) form.mailAutoReplyTextInternal.value = main.i18n['vacation msg'] if ( form.mailAutoReplyText.value == '' ) form.mailAutoReplyText.value = main.i18n['vacation msg'] if ( main.cfg['mailAutoReplyTimeout'] == '') form.mailAutoReplyTimeout.value='0' } if ( !deliveryCheckBox.checked ) { if ( form.mailAutoReplyTextInternal.value == main.i18n['vacation msg'] ) form.mailAutoReplyTextInternal.value = '' if ( form.mailAutoReplyText.value == main.i18n['vacation msg'] ) form.mailAutoReplyText.value = '' if ( main.cfg['mailAutoReplyTimeout'] == '') form.mailAutoReplyTimeout.value='' } } document.write(!main.topht ? '' : '<frameset border="0" frameborder="no" rows="' + ( main.topht + main.fontht + 75 ) + ',*" onLoad="adjust()">' + '<frame name="toolFrame" marginheight="0" marginwidth="0" scrolling="no" src="frame.html?rtfPossible='+main.rtfPossibleString+'">'+ '<frameset border="0" frameborder="0" cols="' + (width + main.font_delta * 3) + ',*">' + '<frame name="toggleFrame" marginheight="1" marginwidth="0" frameborder="1" src="frame.html?rtfPossible='+main.rtfPossibleString + (NN >= 4 ? '#scroll' : '') + '">' + '<frame name="listFrame" marginheight="6" marginwidth="6" frameborder="1" src="frame.html?rtfPossible='+main.rtfPossibleString+'">'+ '</frameset>' + '</frameset>') </script> </html>
Confirming based on the same behavior reported in bug 141564. I have pasted Marcel's informative comments into the other bug. I'll have to mark this bug as a duplicate of the other, since the reported JS errors are the same; it's the same problem. Tip for the future: pasting HTML in-line in Bugzilla has one drawback: the JavaScript gets wrapped, which causes unrelated JS errors when someone copies it locally and tries to run it. (HTML doesn't mind getting wrapped, but JS does -) It's better to open the bug first, then return to it and use the "Create a New Attachment" link to attach the source as either an HTML file or a text file. Better yet, you can use Mozilla's File > Save Page As feature. That automatically saves not only the original page, but all supporting JS files ,etc. in an additional folder. These can all be compressed into a .zip or tar.gz file, which can then be attached to the bug as a binary file (application/octet-stream). At this point, any attachments should be made to the other bug. What we really need is a login, though. Thank you for you efforts in obtaining one for us. Again, please post any such information to bug 141564. *** This bug has been marked as a duplicate of 141564 ***
Status: UNCONFIRMED → RESOLVED
Closed: 24 years ago
Resolution: --- → DUPLICATE
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.