Closed
Bug 142176
Opened 24 years ago
Closed 24 years ago
iPlanet Messenger Service "Webmail" JavaScript functions fail at UTS
Categories
(SeaMonkey :: General, defect)
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"> </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> </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> </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> </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> </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 ?
' <a href="javascript:main.pageBack()" onMouseOver="return
hint()"><img src="imx/back_btn.gif" border=0 width=16 height=16></a> ' :
' <img src="imx/back_not.gif" width=16 height=16>') +
' </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 ?
' <a href="javascript:main.pageForward()" onMouseOver="return
hint()"><img src="imx/next_btn.gif" border=0 width=16 height=16></a> ' :
' <img src="imx/next_not.gif" width=16 height=16>') +
' </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"> </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>
Comment 1•24 years ago
|
||
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
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•