var main, i18n, errnumi18n, errmsgi18n, smimei18n, IE, NN, NSCP, appVersion, nbsp, crlf, security, mac, win ,sun, SMIME
function getSMIMEErrorText(errnum){
return errmsgi18n[eval("'"+errnum+"'")]
}
function initSMIME(){
SMIME = new Array()
if (main.cfgFrame!=null)
SMIME.enable=main.cfgFrame.smimeEnabled==true
else
SMIME.enable=false
if (SMIME.enable==false)
return
if(!main.SMIMECapableBrowser()) {
SMIME.enable=false
return
}
if(main.applet_init!=true)
SMIME.enable=false
}
function is_ssl_enabled(){
if(typeof(main.msgHREF) != undefined && main.msgHREF.indexOf('https') != -1) return true;
return false;
}
function init(path) {
init(path,null);
}
function init(path, title) {
var s = navigator.userAgent
IE = NN = NSCP = 0
appVersion = parseFloat(navigator.appVersion)
if (s == '')
IE = 3
else if (s.indexOf('MSIE') != -1)
IE = appVersion = parseFloat(s.substring(s.indexOf('MSIE') + 5, s.length))
else if (s.indexOf('Opera') != -1)
IE = appVersion
else if (s.indexOf('Mozilla') != -1)
NN = appVersion
var t = s.match(/(Netscape\d?\/)(\S*)/)
if (t && t[2])
NSCP = parseFloat(t[2])
mac = s.indexOf('Mac') != -1
s = s.toLowerCase()
win = s.indexOf('win') != -1 || s.indexOf('16bit') != -1
sun = s.indexOf('sun') != -1
if (win && NN < 5)
crlf = '\r\n'
else if (mac)
crlf = '\r'
else
crlf = '\n'
if (!mac && handleError)
window.onerror = handleError
if(NN >= 4.0 && NN < 5 && handleResize)
{
window.onresize = handleResize
}
security = false
if (NN) document.domain = document.domain
if (path == null)
main = parent.main;
else
main = eval(path);
initSMIME()
i18n = main.i18n
smimei18n = main.smimei18n
errnumi18n = main.errnumi18n
errmsgi18n = main.errmsgi18n
if (i18n['dir'])
document.dir = i18n['dir']
nbsp = i18n['nbsp']
if (!nbsp)
nbsp = ' '
if (title)
document.write('
' + eval(title) + '')
}
// smime routine
function getAppletBaseHREF()
{
var href = ""
if (navigator.platform.search('Win32') != -1)
href = 'applet_fs_win.html'
else if (navigator.platform.search('SunOS') != -1) {
// not fully implemented, need to determine ISA
href = 'applet_fs_sunsparc.html'
} else if (navigator.platform.search('MacPPC') != -1)
// Mac 68k not supported
href = 'applet_fs_mac.html'
else if (navigator.platform.search('Linux') != -1)
// only x86 supported for linux client
href = 'applet_fs_linx86.html'
else
alert(i18n['unsupported platform']) // need to lookup from i18n
return href
}
function handleError(msg, url, line) {
alert(i18n['js error'] + '\n\n' + url + ', ' +
i18n['line'] + ' ' + line + '\n\n' + msg)
return true
}
function handleResize()
{
if(NN >= 4.0 && NN < 5) // Double check -- function might be called from other resize handlers
{
for(i=0; i= 1024 * 1024) {
n /= 1024.0 * 1024
ss = 'MB'
} else {
n /= 1024.0
if (n < 1)
n = 1
ss = 'K'
}
} else if (type == 'k') {
if (n >= 1024) {
n /= 1024.0
ss = 'MB'
} else {
ss = 'K'
}
} else {
ss = 'MB'
}
if (n < 10)
s = (n + .0499) + ''
else
s = (n + .499) + ''
i = s.indexOf('.')
if (i == -1)
return n + ss
else if (i == 1 && ss == 'MB')
return s.substring(0, 3) + ss
else
return s.substring(0, i) + ss
}
function html(str) {
var c, i, s = ''
if (str == null)
return s
for (i = 0; i < str.length; i++ ) {
c = str.charAt(i)
if (c == ' ' && str.charAt(i+1) == ' ') // Changes for 1.14 in Tip
s += ' '
else if (c == '"')
s += '"'
else if (c == '<')
s += '<'
else if (c == '>')
s += '>'
else if (c == '&')
s += '&'
else
s += c
}
return s
}
function htmlPlusBR(str) {
var c, i, s = ''
if (str == null)
return s
for (i = 0; i < str.length; i++ ) {
c = str.charAt(i)
if (c == ' ' && str.charAt(i+1) == ' ') // Changes for 1.14 in Tip
s += ' '
else if (c == '"')
s += '"'
else if (c == '<')
s += '<'
else if (c == '>')
s += '>'
else if (c == '&')
s += '&'
else if (c == '\n')
s += "
"
else if (c == '\r') {
s += "
"
if ( (i+1 < str.length) && str.charAt(i+1) == '\n')
i++;
}
else
s += c
}
return s
}
function encode(str) {
var c, i, s = ''
if (NN >= 5 && navigator.userAgent.indexOf('Safari')==-1)
str = encodeURIComponent(str)
else
str = escape(str, 1)
for (i = 0; i < str.length; i++) {
c = str.charAt(i)
if (c == '+')
s += '%2B'
else if (c == '&')
s += '%26'
else
s += c
}
return s
}
function split(s, d) {
var a = new Array()
var i, j
if (d == '') {
for (i = 0; i < s.length; i++)
a[a.length] = s.charAt(i)
} else if (s == '') {
a[0] = s
} else {
for (i = 0; i < s.length; i = j + d.length) {
j = s.indexOf(d, i)
if (j == -1)
j = s.length
a[a.length] = s.substring(i, j)
}
}
return a
}
function join(a, d) {
var i, s = ''
if( typeof(a) == 'string' && IE > 3)
{
if (a.length) {
s = a.charAt(0)
for (i = 1; i < a.length; i++)
s += d + a.charAt(i)
}
}
else
{
if (a.length) {
s = a[0]
for (i = 1; i < a.length; i++)
s += d + a[i]
}
}
return s
}
function gethref(s) {
if (main.laurel) {
var i = s.lastIndexOf('.html')
if (i != -1) s = s.substring(0, i) + '_lr' + s.substring(i)
}
return s
}
function load(f, href, reload) {
href += (href.indexOf('?')==-1 ? '?' : '') +
(href.indexOf(main.clientargs())==-1 ? main.clientargs() : '')
if(href.indexOf('cfg.msc') > -1)
href += "&sid=";
if (!reload) href = gethref(href)
if (NN > 0 || (IE >= 4 && !mac))
f.location.replace(href)
else
f.location.href = href
}
function reload(f) {
load(f, main.srcHREF+'frame.html', true)
}
function compressArray(l) {
var i, a = new Array()
for (i = 0; i < l.length; i++) {
if ((l[i] != null && l[i] != '') || l[i] == '0')
a[a.length] = l[i]
}
return a
}
function orphaned() {
a = split(window.location.search.substring(1, window.location.search.length), '&')
argv = new Array(a.length)
for (i = 0; i < argv.length; i++) {
j = a[i].indexOf('=')
if (j == -1)
argv[a[i]] = true
else
argv[a[i].substring(0, j)] = a[i].substring(j + 1, a[i].length)
}
if(argv['view'] != 'compose')
return ((IE >= 4 || NN > 2) && window.opener && window.opener.closed) || main.sortno == null
else
return ((IE >= 4 || NN > 2) && parent.closed) || main.sortno == null
}
function hint(s) {
window.status = (s ? s : '')
return true
}
function adjust() {
if (IE >= 4) {
var i, a = split(document.body.rows, ',')
for (i = 0; i < a.length; i++) {
if (a[i] != '*' && a[i] != '0')
a[i] = frames[i].document.body.scrollHeight
}
document.body.rows = join(a, ',')
}
}
// window handling funcs
function Window(url, name, args) {
this.url = gethref(url)
this.name = name
this.args = args
this.close = main.__close
this.isClosed = main.__isClosed
var r = open(this.url, name, args)
return r
}
function isasciistring(s) {
for (var i = 0; i < s.length; i++) {
if (s.charAt(i) > '~')
return false
}
return true
}
function isvalidemailaddress(s) {
if (s.length == 0)
return true
if (!isasciistring(s))
return false
if (s.search('@') == -1)
return false
return true
}
function getArg(arg, s, nocase, init) {
var i
s = s.substring(s.indexOf('?') + 1)
var a = split(s, '&')
arg = encode(arg)
for (i = 0; i < a.length; i++) {
j = a[i].indexOf('=')
if (j != -1 && (a[i].substring(0, j) == arg ||
(nocase && a[i].substring(0, j).toLowerCase() == arg.toLowerCase()))) {
if (NN >= 5 && navigator.userAgent.indexOf('Safari')==-1)
return decodeURIComponent(a[i].substring(j+1, a[i].length))
else
return unescape(a[i].substring(j+1, a[i].length))
}
}
if (init)
return ''
else
return null
}
// Some native objects (Windows) can enter infinite loops when being cloned.
// That's bad.
// &! We need a way to guarantee that recursion in cloneObject is not infinite.
function dontClone(o) {
if (!o)
return true
if (NN > 0)
return o.toString && o.toString() == '[object Window]'
else
return (o['clientInformation'] != null)
return false
}
// IE doesn't return 'function' when using the typeof operator so we have to hack it.
function isFunction(o) {
if (!o)
return false
if (NN > 0) {
return typeof o == 'function'
}
if (typeof o != 'object')
return false
var tmp = o.toString()
return tmp.indexOf('function') != -1
}
function isArray(o) {
if (!o || typeof o != 'object')
return false
if (o.length)
return true
else {
// arrays of length 0 do not have a zeroth element, but other objects might.
for (p in o)
return false
var a = new Array()
return o.toString() == a.toString()
}
}
function cloneObject(o) {
if (!o) return null
var i, p, no = new Object()
for (p in o) {
// alert(p + ' = ' + o[p])
if (typeof o[p] == 'object' && !isFunction(o[p])) {
if (!isArray(o[p])) {
// alert(p + ' = ' + o[p] + ' (' + typeof o[p] + ').\n')
// clone object here.
if (!dontClone(o[p]))
no[p] = cloneObject(o[p])
else
no[p] = o[p]
} else {
// clone array object.
no[p] = new Array()
for (i = 0; i < o[p].length; i++) {
if (typeof o[p][i] == 'object')
no[p][i] = cloneObject(o[p][i])
else
no[p][i] = o[p][i]
}
}
} else
no[p] = o[p]
}
// for..in seems to skip toString in Transfer object, possibly elsewhere.
if (o && o['toString'])
no['toString'] = o['toString']
return no
}
function isWS(c) {
return c == ' ' || c == '\b' || c == '\f' || c == '\n' || c == '\r' || c == '\t'
}
function trim(s) {
s += ''; // make sure that s is a string.
s = split(s, '')
for (var i = 0; i < s.length; i++) {
if (isWS(s[i]))
s[i] = ''
else
break
}
for (var i = s.length - 1; i > -1; i--) {
if (isWS(s[i]))
s[i] = ''
else
break
}
return join(compressArray(s), '')
}
function adjustAddressFrame() {
if (IE >= 4) {
var i, a = split(document.body.rows, ',')
for (i = 0; i < a.length; i++) {
if (a[i] != '*' && a[i] != '0')
a[i] = frames[i].document.body.scrollHeight
}
document.body.rows = join(a, ',')
}
if(NN>2)
{
if(main.isRefreshing)
{
main.start()
}
}
}
// Comment Added by Webmail Team India to check check-in from Bangalore
function hasGC(s) {
return s.indexOf(',') != -1 ||
s.indexOf(';') != -1 ||
s.indexOf(':') != -1 ||
s.indexOf('<') != -1 ||
s.indexOf('>') != -1 ||
s.indexOf('@') != -1 ||
s.indexOf('(') != -1 ||
s.indexOf(')') != -1
}
function encCn(n,g) {
n = split(n, '')
for (var i = 0; i < n.length; i++) {
if ( !g && (IE > 0 || NN >= 5) && (n[i] == '&' || n[i] == '#'))
n[i] = encode(n[i])
if (n[i] == '"')
n[i] = ''
}
return join(n, '')
}
function s_EmailEntry(n, m, g) {
if (!m)
return nbsp
var s
n = encCn(main.unescape_crlf(n),g)
n = (!g && (IE > 0 || NN >= 5)) ? main.i18n_squote(n) : n
var m1 = (!g && (IE > 0 || NN >= 5)) ? main.i18n_squote(m) : m
n = hasGC(n) ? '\"' + n + '\"' : n
if (g)
s = encode(n + ' <' + m + '>')
else
s = '' + main.unescape_crlf(m) + ''
return s
}
function s_EmailGroup(n, un,g) {
var i , u = main.pabFrame.people, s = ''
for (i = 0; i < u.length; i++) {
if (u[i].mail && u[i].mail[0] && indexOfGroup(u[i], un) > -1)
s += (s ? ',' : '') + s_EmailEntry(u[i].cn, u[i].mail[0], true)
}
if(!g) return 'Email ' + n + ''
return s
}
function displayName(filename)
{
var f, ff
ff = filename
if (navigator.userAgent.toLowerCase().indexOf('win') != -1 ||
navigator.userAgent.toLowerCase().indexOf('16bit') != -1) {
f = filename
if (f.lastIndexOf('\\') == -1) {
if (f.indexOf(':') != -1) {
ff = f.substring(f.lastIndexOf(':') + 1)
}
} else {
ff = f.substring(f.lastIndexOf('\\') + 1)
}
}
return ff
}
function addContent(part) {
var i = 0, start, end
var s = part.content
backgroundcid = 'background=cid:'
cidstr = 'SRC="cid:'
if (s.indexOf(cidstr, i) == -1)
cidstr = cidstr.toLowerCase()
while (i < s.length && i != -1) {
start = s.indexOf(cidstr, i)
if (start == -1) {
i = -1
break
}
end = s.indexOf('"', start + 5)
var left = s.substring(0, start + 5)
var cid = s.substring(start + 9, end)
var right = s.substring(end, s.length)
s = left + right
i = end + 1
}
i = 0
while (i < s.length && i != -1) {
start = s.indexOf(backgroundcid, i)
if (start == -1|| i == -1) {
i = -1
break
}
end = s.indexOf('>', start + 11)
var left = s.substring(0, start + 11)
var cid = s.substring(start + 15, end)
var right = s.substring(end, s.length)
s = left + right
i = end + 1
}
return s
}