Tip: How to integrate MailArchiver with OWA 2003
|
Logged in as: Guest
|
|
Users viewing this topic:
none
|
|
Login | |
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 17.Mar.2006 4:14:52 AM
|
|
|
thesheriff
Posts: 55
Joined: 20.Oct.2005
From: Leicester
Status: offline
|
Thats looking pretty cool. How would I integrate the Mail Archiver web page in full outlook 2003? Cheers Dom
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 17.Mar.2006 2:10:24 PM
|
|
|
RGagne
Posts: 59
Joined: 21.Jun.2005
From: Memphis, TN
Status: offline
|
That is pretty nifty. Integration into the full blown client would be a nice feature as well.
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 17.Mar.2006 2:23:06 PM
|
|
|
RGagne
Posts: 59
Joined: 21.Jun.2005
From: Memphis, TN
Status: offline
|
Ha! It is kinda possible to 'intergrate' the Mail Archiver into the full blown client. Simply create a new folder in the navigation pane, right click and select properties, go to the 'Homepage' tab, set the homepage to the location of the Mail Archiver, and then check the 'Show home page by default for this folder' option. Voila! Instant access to the archive from Outlook!
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 23.Mar.2006 10:36:42 AM
|
|
|
BenN
Posts: 15
Joined: 20.Jan.2006
Status: offline
|
can't wait for you to post how you did it. I certainly don't want to try to do this from scratch if someone else has done it.
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 24.Mar.2006 4:28:31 AM
|
|
|
frederic
Posts: 23
Joined: 14.Mar.2006
Status: offline
|
INSTALL: 1. Logon to your Exchange server computer 2. Locate the Exchange server 2003 installation directory (usually "C:\Program Files\Exchsrvr") 3. Locate the folder "exchweb\<version>\controls" 4. Make a backup copy of the existing file "vw_Navbar.js" 5. Make changes to "vw_Navbar.js" as listed below 6. Copy your custom icons to "exchweb\img" 7. Do an "iisreset" from the command line (note: this will kick out all OWA users) 8. Clear your local browser cache UNINSTALL: 1. Logon to your Exchange server computer 2. Locate the Exchange server 2003 installation directory (usually "C:\Program Files\Exchsrvr" 3. Locate the folder "exchweb\<version>\controls" 4. Replace the existing file with the backup copy of "vw_Navbar.js" you made previously 5. Do an "iisreset" from the command line (note: this will kick out all OWA users) 6. Clear your local browser cache
/*
'------------------------------------------------------------------------------
'
' NAME: vw_Navbar.js
' VERSION: 1.01 - 16/03/2006 Compatible with all releases of Exchange 2003
' 1.00 - 03/23/2004 Initial release for OWA RTM _only_
'
' DESCRIPTION: This modification adds a new tab to the OWA 2003 rich client UI
' navigation bar.
'
' NOTE: This Exchange 2003 OWA tweak is unsupported by Microsoft. If
' you are running into problems you might need to revert back to
' to the backup done before applying this tweak.
'
' Copyright (c) 2006 Frederic Guigand
' 2004 Siegfried Weber [link=http://playground.doesntexist.org/]http://playground.doesntexist.org/[/link]
'
'------------------------------------------------------------------------------
*/
/*-----------------------------------------------------------------------------
' ##########
' # STEP 1 #
' ##########
' At the beginning of vw_Navbar.js, locate the g_rgBigLinks variable
' declaration, and add "idCustom" in the desired postion, as below:
*/
// #####################################################################################
//var g_rgBigLinks = new Array("idInbox","idCalendar","idContacts","idTasks","idPubFold","idRules","idOptions","idLogOff");
var g_rgBigLinks = new Array("idInbox","idCalendar","idContacts","idTasks","idPubFold","idRules","idOptions","idCustom","idLogOff");
// #####################################################################################
/*-----------------------------------------------------------------------------
' ##########
' # STEP 2 #
' ##########
' locate the window.onload() function, and just before the closing }
' insert a call to CUSTOMupdateShortcuts, as below:
*/
// #####################################################################################
CUSTOMupdateShortcuts();
// #####################################################################################
/*-----------------------------------------------------------------------------
' ##########
' # STEP 3 #
' ##########
' Locate the function showBigLinks (almost at the end) and modify the if statement
*/
// #####################################################################################
// if (oBL)
// oBL.parentElement.style.display = fShow ? "" : "none";
if (oBL != null && "undefined" != typeof(oBL))
{
if (oBL.parentElement != null && "undefined" != typeof(oBL.parentElement))
oBL.parentElement.style.display = fShow ? "" : "none";
}
// #####################################################################################
/*-----------------------------------------------------------------------------
' ##########
' # STEP 4 #
' ##########
' Append the CUSTOM... functions below, at the end of vw_Navbar.js
*/
// #####################################################################################
function CUSTOMupdateShortcuts()
{
// Point this url to your custom URL
var sNewQuery = "/MailArchiver";
CUSTOMinsertBefore("idOptions", "aQLOptions", "idCustom", "Archive", "/exchweb/img/Archive-lg.gif", "/exchweb/img/icon-archive.gif", sNewQuery);
}
/* #####################################################################################
Function: CUSTOMinsertBefore
Purpose: Add a new tab to the OWA 2003 navigation bar quick links section
Parameters:
beforeNBID == ID of element before insert should happen
beforeAID == <a> element before insert should happen
szID == ID (must be unique)
szText == Text to display (max 11 chars)
szImage == URL to large image (24x24)
szImageQL == URL to small image (16x16)
szRef == URL to navigate to
##################################################################################### */
function CUSTOMinsertBefore(beforeNBID, beforeAID, szID, szText, szImage, szImageQL, szRef)
{
var navBeforeTD = g_winDocAll.item(beforeNBID);
// If the navigation pane is not displayed just leave
if(null == navBeforeTD)
return;
// Find the containing row and table
var navBeforeTR = navBeforeTD.parentNode;
var navTable = navBeforeTR.parentNode;
// Create the new navigation pane button bar row. This is the big row containing a 24 x 24 image and the text of the navigation pane item
var NewTR = document.createElement("TR");
NewTR.className = "trQuickLinks";
NewTR.style.display = navBeforeTR.style.display;
var NewTD = document.createElement("TD");
NewTD.id = szID;
NewTD.className = "nbLabel";
NewTD.valign = "top";
NewTD.noWrap = true;
var NewA = document.createElement("A");
NewA.className = "nbHref nbHrefEx";
NewA.href = szRef;
// Use "_blank" if you want the link to open a new window, "viewer" otherwise
NewA.target = "viewer";
// NewA.target = "_blank";
var NewImg = document.createElement("IMG");
NewImg.className = "nbImage";
NewImg.align = "absmiddle";
NewImg.style.width = "24px";
NewImg.style.height = "24px";
NewImg.src = szImage;
var NewText = document.createTextNode(szText);
// Tie the elements together
NewA.appendChild(NewImg);
NewA.appendChild(NewText);
NewTD.appendChild(NewA);
NewTR.appendChild(NewTD);
// And add the new row
navTable.insertBefore(NewTR, navBeforeTR);
// Find the insertion point in the quick link navigation list
var qlBeforeA = g_winDocAll.item(beforeAID);
var qlBeforeTD = qlBeforeA.parentNode;
var qlBeforeTR = qlBeforeTD.parentNode;
// Add a quick link cell. This is the one line at the bottom of the navigation pane only visible if the navigation pane button bar is not expanded
NewTD = document.createElement("TD");
NewA = document.createElement("A");
NewA.className = "aQL";
NewA.href = szRef;
// Use "_blank" if you want the link to open a new window, "viewer" otherwise
NewA.target = "viewer";
// NewA.target = "_blank";
NewImg = document.createElement("IMG");
NewImg.className = "imgQL";
NewImg.align = "absmiddle";
NewImg.style.width = "16px";
NewImg.style.height = "16px";
NewImg.src = szImageQL;
NewImg.alt = "Go to " + szText;
// Tie the elements together
NewTD.appendChild(NewA);
NewA.appendChild(NewImg);
// And insert the quick link cell
qlBeforeTR.insertBefore(NewTD, qlBeforeTD);
if (null != g_rgBigLinks)
{
try
{
g_rgBigLinks.push(szID);
}
catch (e) {}
}
}
// #####################################################################################
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 24.Mar.2006 4:37:23 AM
|
|
|
frederic
Posts: 23
Joined: 14.Mar.2006
Status: offline
|
The Cascading Style Sheet for MailArchiver has not changed with the new version (20060315). I have made some changes to it, to make it better match the OWA 2003 Default (Blue) colours. Replace Styles.css in GFI\MailArchiver\ASPNET\Styles\ with the code below. As always, don't forget to make a backup first.
/*
GFI MailArchiver stylesheet
modified to match OWA 2003 Default (blue) color theme
by Frederic Guigand, 16/03/2006
(C:\Program Files\GFI\MailArchiver\ASPNET\Styles\Styles.css)
*/
a { text-decoration:none; }
a:link {
color:#000066;
text-decoration:none;
}
a:visited {
color:#000066;
text-decoration:none;
}
a:active {
color:#CC0000;
text-decoration:none;
}
a:hover {
color:#CC0000;
text-decoration:none;
}
BODY
{
padding-right: 0px;
padding-left: 0px;
padding-bottom: 0px;
margin: 0px;
padding-top: 0px;
font: 1em Arial;
/* ADDED */
background-color:white;
}
/* Tables (eg: list of emails) */
.bodyTable
{
padding-right: 14px;
padding-left: 14px;
padding-bottom: 14px;
width: 100%;
padding-top: 14px;
background-color: gainsboro;
}
.bodyCell {
padding-top: 15px;
padding-left: 6px;
padding-right: 6px;
vertical-align: top;
}
.contentTable {
width: 100%;
border-top: 1px solid #ffffff;
border-left: 1px solid #000000;
border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
background-color: white;
}
.contentTableShort {
width: 100%;
background-color: white;
}
.adminBorder {
border: 1px solid #000000;
}
.tablesTD {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: normal;
line-height: 100%;
text-align: left;
padding-right: 5px;
background-color: #ffffff;
}
.tablesTABLE {
font-family: Arial, Helvetica, sans-serif;
border: solid 2px #f2f2f2;
padding: 1px;
}
.contentCell {
vertical-align:top;
padding-top: 15px;
padding-left: 8px;
padding-right: 8px;
}
.normal {
font-family: Arial, Helvetica, sans-serif;
font-size: 0.7em;
font-weight: normal;
line-height: 1.2em
}
h1 {
font-weight: bold;
font-size: 10pt;
}
.SmallMargin {
margin-top: 0px;
margin-bottom: 10px;
}
/* Top bar Log off button */
.tabInactiveRight
{
border-right: #ffffff 1px solid;
padding-right: 5px;
padding-left: 5px;
font-weight: bold;
font-size: 11px;
color: #ffffff;
font-family: Arial, Verdana;
height: 20px;
text-align: right;
/*
background-color:#000000;
*/
background-color:#2557AD;
}
.tabInactiveRight a:link, .tabInactiveRight a:visited
{
/* color: #FFFFFF; */
color: #A2C2EE;
text-decoration: none;
}
.tabInactiveRight a:active, .tabInactiveRight a:hover
{
/* color: #F2F2F2; */
color: #FFFFFF;
text-decoration: none;
}
/* Top bar active tab */
.tabInactive {
height: 20px;
padding-left: 5px;
padding-right: 5px;
color: #FFFFFF;
font-family: Arial, Verdana;
font-size: 11px;
font-weight:bold;
border-right: solid 1px #FFFFFF;
/*
background-color:#000000;
*/
background-color:#2557AD;
}
.tabInactive a:link, .tabInactive a:visited
{
color: #FFFFFF;
text-decoration: none;
}
.tabInactive a:active, .tabInactive a:hover
{
/* color: #F2F2F2; */
color: #C3DAF9;
text-decoration: none;
}
/* Top bar active tab */
.tabActive {
height: 20px;
padding-left: 5px;
padding-right: 5px;
color: #FFFFFF;
font-family: Arial, Verdana;
font-size: 11px;
font-weight:bold;
border-right: solid 1px #FFFFFF;
/* background-color:#CC0000; */
/* background-color:#A2C2EE; */
background-color:#C3DAF9;
}
.tabActive a:link, .tabActive a:visited
{
/* color: #FFFFFF; */
color: #000000;
text-decoration: none;
}
.tabActive a:active, .tabActive a:hover
{
/* color: #FFFFFF; */
color: #2557AD;
text-decoration: none;
}
/* Top toolbar background */
.tabToolbar {
padding-left: 15px;
/* background-color:#000000; */
background-color:#2557AD;
}
.adminTabActive {
font-family: Arial, Helvetica, sans-serif;
font-size: 0.7em;
font-weight: bold;
color: #696969;
border-left: 1px solid #000000;
background-color: #ffffff;
text-align: center;
padding-top: 3px;
padding-right: 10px;
padding-bottom: 3px;
padding-left: 10px;
}
.adminTabInactive {
font-size: 0.7em;
border-left: 1px solid #000000;
border-bottom: 1px solid #000000;
background-color: #F2F2F2;
text-align: center;
padding-top: 3px;
padding-right: 10px;
padding-bottom: 3px;
padding-left: 10px;
}
.adminTabActiveLeft {
font-family: Arial, Helvetica, sans-serif;
font-size: 0.7em;
font-weight: bold;
color: #696969;
background-color: #ffffff;
text-align: center;
padding-top: 3px;
padding-right: 10px;
padding-bottom: 3px;
padding-left: 10px;
}
.adminTabInactiveLeft {
font-size: 0.7em;
border-bottom: 1px solid #000000;
background-color: #F2F2F2;
text-align: center;
padding-top: 3px;
padding-right: 10px;
padding-bottom: 3px;
padding-left: 10px;
}
.adminTabInactive a:link, .adminTabInactiveLeft a:link {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #000000;
text-decoration: none;
}
.adminTabInactive a:visited, .adminTabInactiveLeft a:visited {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #000000;
text-decoration: none;
}
.adminTabInactive a:active, .adminTabInactiveLeft a:active {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #000000;
text-decoration: none;
}
.adminTabInactive a:hover, .adminTabInactiveLeft a:hover {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #696969;
text-decoration: none;
}
.adminTabActive a:link, .adminTabActive a:visited, .adminTabActiveLeft a:link, .adminTabActiveLeft a:visited {
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #000000;
text-decoration: none;
}
.standardText {
font-family: Arial, Helvetica, sans-serif;
font-size: 0.9em;
color: #000000;
}
INPUT, SELECT, H3, .smallText {
font-family:Arial, Helvetica, sans-serif;
font-size:11px;
font-weight:normal;
line-height: 150%;
margin:0px;
}
.bodyText {
background-color:#FFFFFF;
color:#000000;
margin:0px;
font-family:Arial, Helvetica, Sans-Serif;
font-size:10pt;
text-align: justify;
line-height: 130%;
padding-left:15px;
padding-right:15px;
}
.gridFirstItem {
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
background-color: white;
padding-right: 5px;
border: solid 2px #f2f2f2;
}
.gridItem {
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
background-color: white;
padding-right: 5px;
border: solid 2px #f2f2f2;
}
.gridLastItem {
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
background-color: white;
padding-right: 5px;
border: solid 2px #f2f2f2;
}
.gridHeader {
font-weight: bold;
font-size: 11px;
font-family: Arial, Helvetica, sans-serif;
background-color: #f2f2f2;
padding-right: 5px;
border: solid 2px #f2f2f2;
}
.gridHeader a:active {
color: #000000;
text-decoration: none;
}
.gridHeader a:link {
color: #000000;
text-decoration: none;
}
.gridHeader a:visited {
color: #000000;
text-decoration: none;
}
.gridHeader a:hover {
color: #000000;
text-decoration: none;
}
td {
font-family: Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
}
pre {
font-size: 1em;
}
.disabledField
{
}
.toolbarGrad
{
font-weight: bold;
color: black;
font-family: Verdana;
background-color: #99ccff;
}
.DottedBlack {
height:1px;
background-image:url(../images/horline.gif);
width:100%;
margin:0px;
}
.toolbarHeader {
background-color:#000000;
height: 20px; padding-left: 5px;
padding-right: 5px;
color: #FFFFFF;
font-family: Arial, Verdana;
font-size: 11px;
font-weight:bold;
}
.toolbarItem
{
color: black;
font-family: Arial, Verdana;
background-color: #f2f2f2;
padding:3px;
width: 100%;
}
.toolbarEdit {
background-color: #ffffff;
}
.treeview {
background-color:#f2f2f2;
}
.toolbarBlue
{
border-right: #ffffff thin groove;
padding-right: 2px;
border-top: #ffffff thin groove;
padding-left: 2px;
padding-bottom: 2px;
margin: 0px;
border-left: #ffffff thin groove;
padding-top: 2px;
border-bottom: #ffffff thin groove;
background-color: #99ccff;
}
.internetHeaders
{
font-family: Monospace;
}
/* Language selection drop down list */
.toolbarDropdown
{
color: white;
/* background-color: black; */
background-color: #2557AD;
}
< Message edited by frederic -- 24.Mar.2006 6:10:28 AM >
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 26.Mar.2006 3:46:30 PM
|
|
|
BenN
Posts: 15
Joined: 20.Jan.2006
Status: offline
|
this is awesome Frederic. i can't wait to try this out!
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 28.Mar.2006 5:28:46 AM
|
|
|
rishishah
Posts: 61
Joined: 19.Jun.2005
From: UK
Status: offline
|
Does this change have to be made on the front-end server, back-end server or both? Thanks.
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 29.Mar.2006 11:00:02 AM
|
|
|
RGagne
Posts: 59
Joined: 21.Jun.2005
From: Memphis, TN
Status: offline
|
This doesn't seem to work correctly. I have tried to implement this in our test network but I keep receiving script errors when OWA loads. OWA still loads just fine but the new navigation items for the Archive are not present. The error message says that it expected an object at line 64 which is right after where I inserted the CUSTOMupdateShortcuts line. Not sure what's missing yet... I have been trying different ways of entering the MailArchiver URL in the CUSTOMupdateShortcuts function thinking that the problem is there. Has anyone else managed to get this to work?
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 29.Mar.2006 11:44:08 AM
|
|
|
RGagne
Posts: 59
Joined: 21.Jun.2005
From: Memphis, TN
Status: offline
|
Aha!, found the problem... I hate debuggin code. Anyways, works now.
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 30.Mar.2006 3:31:05 PM
|
|
|
shawner47
Posts: 4
Joined: 30.Mar.2006
Status: offline
|
Has anyone else been able to get this to work? Would it be too much to ask that someone who has gotten it to work post their vw_navbar.js file for those of us with no programming experience to have a peek :) TIA! Shawn
< Message edited by shawner47 -- 30.Mar.2006 3:32:18 PM >
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 3.Apr.2006 3:41:00 AM
|
|
|
frederic
Posts: 23
Joined: 14.Mar.2006
Status: offline
|
quote:
Has anyone else been able to get this to work? Would it be too much to ask that someone who has gotten it to work post their vw_navbar.js file for those of us with no programming experience to have a peek :) You need to follow the instructions carefully when editing the file. Here's mine anyway. Note that I am running Exchange 2003 SP3, and the file used by OWA is in C:\Program Files\Exchsrvr\exchweb\6.5.7638.1\controls\
/*
'------------------------------------------------------------------------------
'
' NAME: vw_Navbar.js
' VERSION: 1.01 - 16/03/2006 Compatible with all releases of Exchaage 2003
' 1.00 - 03/23/2004 Initial release for OWA RTM _only_
'
' DESCRIPTION: This modification adds a new tab to the OWA 2003 rich client UI
' navigation bar.
'
' NOTE: This Exchange 2003 OWA tweak is unsupported by Microsoft. If
' you are running into problems you might need to revert back to
' to the backup done before applying this tweak.
'
' Copyright (c) 2006 Frederic Guigand
' 2004 Siegfried Weber [link=http://playground.doesntexist.org/]http://playground.doesntexist.org/[/link]
'
'------------------------------------------------------------------------------
*/
//Copyright (c) 2000-2003 Microsoft Corporation. All rights reserved.
var g_winDocAll = window.document.all;var g_HTTPDelItems = null;var g_iAddCount=0;var g_iTabTopOffset = 38;var g_fHasGottenFolders = false;var g_rgAuthDomains = new Array();var g_nFlybarHeight = 25;var g_nFontHeight = 13;var g_idFlyPopup = -1;var CTL_E_PERMISSIONDENIED = (1^0x800a0046)-1;var FACILITY_WIN32_ERROR_ACCESS_DENIED = (1^0x80070005)+1;var g_wndReminder = null;var g_ctlReminder = null;var g_ctlTaskRem = null;var g_nEnableNewMail = 0;var g_nNewMailNewVal = 0;var m_fTasks = false;var m_fAppts = false;var g_fUpdTask = false;var g_fUpdAppt = false;var g_fCCM = false;var g_szDnIco = "expand.gif";var g_szUpIco = "collapse.gif";var g_iExp = 1;var g_iCol = -1;var g_fCMImgs = true;var g_rgFlyItms = new Array();var g_iFlyTr = 0;var REM_TYPE_APPT = "appt";var REM_TYPE_TASK = "task";var CONST_IPM_APPT = "IPM.Appointment";var CONST_IPM_TASK = "IPM.Task";var m_rgszXML = new Array(2);
// #####################################################################################
//var g_rgBigLinks = new Array("idInbox","idCalendar","idContacts","idTasks","idPubFold","idRules","idOptions","idLogOff");
var g_rgBigLinks = new Array("idInbox","idCalendar","idContacts","idTasks","idPubFold","idRules","idOptions","idCustom","idLogOff");
// #####################################################################################
var g_fDXInstalled = true;var g_szErrReq = "";var g_fUseTime2 = true;var MAX_REM_DELAY = 60000;var g_idTaskRmTmr = -1;var g_idCalRmTmr = -1;var CONST_B_SOUND = 0x1;var CONST_B_CALENDAR = 0x4;var CONST_B_TASKS = 0x8;g_szrgErrors = new Array();g_szrgErrors[900] = L_ErrComm;g_szrgErrors[401] = L_ErrLogon;g_szrgErrors[404] = L_ErrItmNotFound;g_szrgErrors[405] = L_ErrDupFoldName;g_szrgErrors[403] = L_ErrAccDenied;g_szrgErrors[412] = L_ErrPrecond;g_szrgErrors[500] = L_ErrIntSvr;g_szrgErrors[501] = L_ErrIntSvr;g_szrgErrors[502] = L_ErrGateway;g_szrgErrors[503] = L_ErrSvcNotAvail;g_szrgErrors[1001] = L_ErrBadChar;var g_ctlNotify = null;var g_oSound = null;var g_oPopup = null;var m_rgRequestQueue = null;
function objTree_OnFolderOperationComplete()
{if (event != null && event.contentType == 1)
{try
{if (event.rgParams != false)
parent.viewer.RefreshMessageList(null, event.rgParams);}
catch(e) {}
}
if (event != null && event.command == "EXPAND")
syncViewWithTree();}
function objTree_onError()
{f_HandleError(event.statusCode);}
function objTree_onReady()
{if (g_iAddCount == 0)
{g_iAddCount++;if (g_fIsPublic)
{objTree.addHierarchy(window.location, true, g_fPublicRoot ? L_PubFoldDN : null);}
else
{objTree.addHierarchy(g_sBase, true, g_sUserDisp, false);if ("1" == g_bShowSF)
{g_iAddCount++;objTree.addHierarchy(g_sBase+g_sFinderUrl, true, L_SavedSearch, true);}
showTree();}
}
syncViewWithTree();treeProgress.style.display = "none";}
function objTree_onSelectFolder()
{event.cancelBubble = true;event.returnValue = false;if (event)
Navigate(event.url + "?Cmd=contents"+((event.isDeletedItems)?"&allowShowDeleted=1":""));}
function objTree_OnLoginTimeout()
{showLogonPage(g_szVirtualRoot, g_sBase, true);}
function syncViewWithTree()
{try
{var sUrl = parent.viewer.document.location.protocol + "//" + parent.viewer.document.location.host + parent.viewer.document.location.pathname;objTree.selectNode(sUrl, false, false);}
catch(e){}
}
function window.onload()
{if (!g_sBase) return(false);try
{var iHeight = Math.round(screen.availHeight * 0.75);if (iHeight < 550)
iHeight = 550;parent.g_iNewWindowHeight = iHeight;} catch (e) {}
if (!g_fIsPublic)
{g_ctlReminder = g_winDocAll['objReminder'];g_ctlTaskRem = g_winDocAll['objTaskRem'];g_ctlNotify = g_winDocAll['objNotify'];if ((null != g_ctlReminder) && (CONST_B_CALENDAR == (g_bmpEnableReminders & CONST_B_CALENDAR))
&& (g_idCalRmTmr == -1))
g_idCalRmTmr = window.setTimeout(ldRem, MAX_REM_DELAY);if ((null != g_ctlTaskRem) && (CONST_B_TASKS == (g_bmpEnableReminders & CONST_B_TASKS))
&& (g_idTaskRmTmr == -1))
g_idTaskRmTmr = window.setTimeout(ldTaskRem, MAX_REM_DELAY);g_nNewMailNewVal = parseInt(g_szEnableNewMail, 10);window.setTimeout(ldNot, 60000);new flyItm(g_iFlyTr,treeCont,objTree,100);if ("1" == g_bShowFolders)
{g_iAddCount++;if ("1" == g_bShowSF)
g_iAddCount++;objTree.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_tree.htc");}
else
{treeCont.style.posHeight = 0;}
}
else
{objTree.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_tree_pf.htc");}
g_nFontHeight = g_winDocAll.idFontSize.offsetHeight;try
{window.createPopup();}
catch(e)
{g_fCMImgs = false;}
saveSize.size =window.document.body.clientWidth;
// #####################################################################################
CUSTOMupdateShortcuts();
// #####################################################################################
}
function window.onresize()
{if (!g_fIsPublic && saveSize.size != window.document.body.clientWidth)
{if (null != saveSize.iID)
clearTimeout(saveSize.iID);saveSize.size = window.document.body.clientWidth;saveSize.iID = window.setTimeout(saveSize, 2000);}
}
function saveSize()
{setProp(window.document.body.clientWidth, "webclientnavbarwidth");saveSize.iID = null;}
saveSize.size = 0;saveSize.iID = null;
function onViewLoad()
{if (g_idCalRmTmr >= 0)
{window.clearTimeout(g_idCalRmTmr);ldRem();g_idCalRmTmr = -1;}
if (g_idTaskRmTmr >= 0)
{window.clearTimeout(g_idTaskRmTmr);ldTaskRem();g_idTaskRmTmr = -1;}
syncViewWithTree();}
function nbLinkNav(sUrl, sCmd)
{if (null == sUrl)
return;var sNavUrl = sUrl;if (null != sCmd)
sNavUrl += "?cmd=" + sCmd;Navigate(sNavUrl);try
{if (!objTree.selectNode(sUrl, false))
objTree.clearSelection();}
catch(e)
{}
}
function Navigate(url, trgt)
{cmHide();if (event)
{event.cancelBubble = true;event.returnValue = false;}
if (trgt && null != trgt)
{window.open(url,trgt);}
else if (parent != null && url != null)
{if (parent.viewer != null)
{try
{if (url == parent.viewer.location)
{parent.viewer.externalRefresh();}
else
{parent.viewer.location = url;}
}
catch(e)
{parent.viewer.location = url;}
}
}
}
function DoRenameCommand()
{var objFolder = objTree.selectedNode;var szName = objFolder.displayname;var szURL = objFolder.url;var szNewName = prompt(L_RenCurFolder, szName);if (szNewName != null)
{if (szNewName.length > 255)
szNewName = szNewName.slice(0, 255);objTree.renameFolder(szURL, szNewName);}
}
function DoMoveCopyCommand()
{var szDialog = (g_fIsPublic ? "./":g_sBase) + "?Cmd=dialog&template=dlg_movecopy&ver=6.5.7638.1" + "&theme="+g_thid;var szNewFolderDialog = (g_fIsPublic ? "./":g_sBase)+ "?Cmd=dialog&template=dlg_newfolder&ver=6.5.7638.1" + "&theme="+g_thid;var rgParams = new Array();rgParams["g_OpenerTreeCtrl"] = objTree;rgParams["g_CurrentFolderNode"] = objTree.selectedNode;rgParams["g_Location"] = g_sBase;rgParams["g_VirtualRoot"] = g_szVirtualRoot;rgParams["g_NewFolderDialogPath"] = szNewFolderDialog;rgParams["g_fPublic"] = g_fIsPublic;var nFontSize = g_nFontHeight - 2;rgParams["fontSize"] = nFontSize;var nWidth = 50 + 20 * nFontSize;var nHeight = 220 + 12 * nFontSize;var hWin = showDlg(MODAL, szDialog, rgParams, nWidth, nHeight)
}
function DoNewFolderCommand()
{if (!f_Authenticate(objTree.selectedNode.contentHref))
return(false);var szNewFolderDialog = (g_fIsPublic ? "./":g_sBase) + "?Cmd=dialog&template=dlg_newfolder&ver=6.5.7638.1" + "&theme="+g_thid;var rgParams = new Array();rgParams["g_OpenerTreeCtrl"] = objTree;rgParams["g_CurrentFolderNode"] = objTree.selectedNode;rgParams["g_Location"] = g_sBase;rgParams["g_VirtualRoot"] = g_szVirtualRoot;rgParams["g_fPublic"] = g_fIsPublic;var nFontSize = g_nFontHeight - 2;var nWidth = 50 + 20 * nFontSize;var nHeight = 220 + 14 * nFontSize;var hWin = showDlg(MODAL, szNewFolderDialog, rgParams, nWidth, nHeight);}
function f_Authenticate(szURL)
{var szServerName = f_getServerName(szURL);var bretval = true;var szDocumentDomain = window.document.domain;if (szDocumentDomain.toLowerCase() != szServerName.toLowerCase())
{if (null == g_rgAuthDomains[szServerName])
{try
{var objXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");objXMLHTTP.open( "OPTIONS", szURL,false);objXMLHTTP.setRequestHeader("Accept-Language", g_szAcceptLang);objXMLHTTP.send();if (200 != objXMLHTTP.status)
{f_HandleError(objXMLHTTP.status);bretval = false;}
else
{g_rgAuthDomains[szServerName] = "";bretval = true;}
}
catch(e)
{f_HandleError(403);bretval = false;}
}
else
{bretval = true;}
}
return(bretval);}
function f_getServerName(szURL)
{f_getServerName.re.lastIndex=0;var rgVals = f_getServerName.re.exec(szURL);return(rgVals[1]);}
f_getServerName.re = new RegExp("^https?://([^/]+)","i")
function f_HandleError(num)
{if (440 == num)
showLogonPage(g_szVirtualRoot, g_sBase, true);else if (g_szrgErrors[num])
alert(g_szrgErrors[num]);else if(num == CTL_E_PERMISSIONDENIED || num == FACILITY_WIN32_ERROR_ACCESS_DENIED)
alert(L_XDomAccDenied)
else
alert(L_Unk + "\r\n" + num);window.document.body.style.cursor = "auto";return;}
function window.document.oncontextmenu()
{var oRetVal = event.returnValue;if (null != oRetVal)
{if ("object" == typeof(oRetVal))
{cmShow.oFolder = oRetVal;cmShow.x = event.clientX;cmShow.y = event.clientY + 12;if (!g_fCCM)
{idTreeMenu.onreadystatechange = cmShow;idTreeMenu.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_ctxtmenu.htc");}
else
{cmShow();}
}
}
}
function cmShow()
{if ( "complete" == idTreeMenu.readyState && cmShow.oFolder != null)
{idTreeMenu.onreadystatechange = null;var iSfId = 0;if (cmShow.oFolder.sfId)
iSfId = parseInt(cmShow.oFolder.sfId, 10);var fSpcFldr = iSfId > 0;var fSF = (cmShow.oFolder.searchFolder == "1");var fDelItems = cmShow.oFolder.id == (g_sBase + g_sDelItems + "/");var fJunkItems = cmShow.oFolder.id == (g_sBase + g_sJunkItems + "/");idTreeMenu.clearAll();idTreeMenu.add( L_CMRfrsh, "idRfrsh", g_fCMImgs?"refresh.gif":null,16,16);idTreeMenu.add( L_CMOpen, "idOpn", g_fCMImgs?"openfolder.gif":null,16,16);idTreeMenu.add( L_CMNewWin, "idNewWin");if (fDelItems)
idTreeMenu.add( L_CMEmpty, "idEmptyDel", g_fCMImgs?"deleted.gif":null,16,16);if (fJunkItems)
idTreeMenu.add( L_CMEmptyJunk, "idEmptyJunk", g_fCMImgs?"deleted.gif":null,16,16);if (!fSF && !fDelItems && !fJunkItems)
{if (!fSpcFldr)
{idTreeMenu.addDivider();idTreeMenu.add( L_CMMvCp, "idMvCp", g_fCMImgs?"copyto.gif":null,16,16);}
idTreeMenu.addDivider();if (!fSpcFldr)
{idTreeMenu.add( L_CMDel, "idDel", g_fCMImgs?"delete.gif":null,16,16);idTreeMenu.add( L_CMRnm, "idRnm", g_fCMImgs?"rename.gif":null,16,16);}
idTreeMenu.add( L_CMNew, "idNew", g_fCMImgs?"newfldr.gif":null,16,16);}
g_fCCM = true;idTreeMenu.show(cmShow.x, cmShow.y);}
}
cmShow.oFolder = null;cmShow.x = 0;cmShow.y = 0;
function cmHide()
{try
{idTreeMenu.hide();}
catch(e){}
}
function cmAction()
{idTreeMenu.hide();switch (event.szCmd)
{case "idDel":
var node = objTree.selectedNode;var szName = node.displayname;var szURL = node.url;if (confirm(L_AskDel))
objTree.deleteFolder(szURL);break;case "idRnm":
DoRenameCommand();break;case "idMvCp":
DoMoveCopyCommand();break;case "idNew":
DoNewFolderCommand();break;case "idRfrsh":
var objFolder = objTree.selectedNode;if (null != objFolder)
objTree.refreshFolder(objFolder.url);break;case "idOpn":
var node = objTree.selectedNode;if(node)
Navigate(node.url + "?Cmd=contents" +((node.isDeletedItems)?"&allowShowDeleted=1":"") );break;case "idNewWin":
var node = objTree.selectedNode;var szURL = node.url + "?Cmd=contents" +((node.isDeletedItems)?"&allowShowDeleted=1":"");var windowName = new String(Math.round(Math.random() * 100000));var hWin = window.open(szURL,windowName,"toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1");break;case "idEmptyDel":
if (confirm(L_AskEmptyDel))
{evt_EmptyItems.folder = g_sDelItems;var szURL = g_sBase + g_sDelItems + "/?Cmd=emptydeleteditems&sessid=" + g_szSessionId;g_HTTPDelItems = new ActiveXObject("Microsoft.xmlhttp");g_HTTPDelItems.onreadystatechange = evt_EmptyItems;g_HTTPDelItems.open("GET", szURL, true);g_HTTPDelItems.setRequestHeader("Accept-Language", g_szAcceptLang);g_HTTPDelItems.send();}
break;case "idEmptyJunk":
if (confirm(L_AskEmptyJunk))
{evt_EmptyItems.folder = g_sJunkItems;var szURL = g_sBase + g_sJunkItems + "/?Cmd=emptyjunkemail&sessid=" + g_szSessionId;g_HTTPDelItems = new ActiveXObject("Microsoft.xmlhttp");g_HTTPDelItems.onreadystatechange = evt_EmptyItems;g_HTTPDelItems.open("GET", szURL, true);g_HTTPDelItems.setRequestHeader("Accept-Language", g_szAcceptLang);g_HTTPDelItems.send();}
break;}
}
function evt_EmptyItems()
{var sFldr = "";if (evt_EmptyItems.folder != null)
sFldr = evt_EmptyItems.folder;if (g_HTTPDelItems && g_HTTPDelItems.readystate == 4)
{if (g_HTTPDelItems.status < 300)
{var nErrno = g_HTTPDelItems.responseXML.selectSingleNode("result/errorcode");if (null != nErrno && 0 != nErrno.text)
{if (null != g_HTTPDelItems.responseXML.selectSingleNode("result/errortext"))
alert(g_HTTPDelItems.responseXML.selectSingleNode("result/errortext").text);else
alert(nErrno.text+" "+L_Unk);}
else if (parent != null)
{if (0 == parent.viewer.location.href.indexOf(g_sBase + g_sDelItems))
parent.viewer.location = g_sBase + g_sDelItems + "/?Cmd=contents&allowShowDeleted=1";else if (0 == parent.viewer.location.href.indexOf(g_sBase + g_sJunkItems))
parent.viewer.location = g_sBase + g_sJunkItems + "/?Cmd=contents&allowShowDeleted=1";}
}
else
{alert("Error " + g_HTTPDelItems.status + ": " + g_HTTPDelItems.statusText);}
}
objTree.refreshFolder(g_sBase + sFldr + "/");}
var m_szItemType;
function fIsDlg()
{if ((null != g_wndReminder) && (!g_wndReminder.closed))
{var x = g_wndReminder.dialogLeft;if (0 > window.screenLeft)
{g_wndReminder.close();g_wndReminder=null;return false;}
else
{return true;}
}
else
{return false;}
}
function ShowReminders()
{var i = 0;var fRc = false;var rgParams= new Array();try
{if (fIsDlg())
{if (g_bmpEnableReminders >=(CONST_B_TASKS | CONST_B_CALENDAR))
{if (m_fTasks == true && m_fAppts == true)
resetReminders(false);else
return;}
g_wndReminder.updateData(m_rgszXML);fRc = true;}
if (true === fRc)
return;}
catch(e)
{g_wndReminder = null;}
if (g_bmpEnableReminders >=(CONST_B_TASKS | CONST_B_CALENDAR))
{if (m_fTasks == true && m_fAppts == true)
resetReminders(false);else
return;}
var f_sound = (CONST_B_SOUND == (g_bmpEnableReminders & CONST_B_SOUND));rgParams["rg_xmlData"]= m_rgszXML;rgParams["callback"] = onSnooze;rgParams["Sound"] = f_sound
rgParams["WavFile"] = g_szReminderWav;rgParams["Snooze"] = Snooze;rgParams["Dismiss"] = Dismiss;rgParams["type"] = m_szItemType;rgParams["Count"] = UpdRnmdrCount;rgParams["DayStart"] = g_lDayStart;var nWidth = 110 + 30 * g_nFontHeight;var nHeight = 210 + 9 * g_nFontHeight;g_wndReminder = showDlg(MODELESS, g_sBase+ "?Cmd=dialog&template=dlg_reminders&ver=6.5.7638.1" + "&theme="+g_thid, rgParams,nWidth,nHeight);}
function UpdateReminder()
{resetReminders(true);ShowReminders();}
function closeReminder()
{idReminder.style.display = 'none';if (g_wndReminder && (!g_wndReminder.closed))
{try
{g_wndReminder.close();}
catch(e)
{}
}
g_wndReminder = null;}
function resetReminders(fValue)
{m_fAppts = fValue;m_fTasks = fValue;}
function onReminders()
{if (0 == event.count)
{if ((0 == (g_bmpEnableReminders & CONST_B_TASKS)) || (0 == (g_bmpEnableReminders & CONST_B_CALENDAR)))
{closeReminder();return;}
else if ( (g_bmpEnableReminders >=(CONST_B_TASKS | CONST_B_CALENDAR)))
{if ( ((event.type == REM_TYPE_TASK) && (m_fAppts == true) && (m_rgszXML[REM_TYPE_APPT] == "" )) ||
((event.type == REM_TYPE_APPT) && (m_fTasks == true) && (m_rgszXML[REM_TYPE_TASK] == "" )))
{resetReminders(false);closeReminder();return;}
}
}
m_szItemType = event.type;if (g_bmpEnableReminders >=(CONST_B_TASKS | CONST_B_CALENDAR))
{if (m_szItemType == REM_TYPE_APPT)
{m_fAppts = true;if (0 != event.count)
m_rgszXML[REM_TYPE_APPT] = event.szXml;else
m_rgszXML[REM_TYPE_APPT] = "";}
if (m_szItemType == REM_TYPE_TASK)
{m_fTasks = true;if (0 != event.count)
m_rgszXML[REM_TYPE_TASK] = event.szXml;else
m_rgszXML[REM_TYPE_TASK] = "";}
}
else
{if (m_szItemType == REM_TYPE_APPT)
{m_rgszXML[REM_TYPE_APPT] = event.szXml;m_rgszXML[REM_TYPE_TASK] = "";}
if (m_szItemType == REM_TYPE_TASK)
{m_rgszXML[REM_TYPE_TASK] = event.szXml;m_rgszXML[REM_TYPE_APPT] = "";}
}
window.setTimeout(ShowReminders, 1000);}
function UpdRnmdrCount(iCnt)
{if (null != iCnt && iCnt <= 0)
{remText.innerText = "";idReminder.style.display = 'none';}
else
{idReminder.style.display = '';remText.innerText = remText.fmtStr.replace(/\%1/gi,iCnt);}
}
function onSnooze()
{window.setTimeout( cb_onSnooze, 100 );}
function cb_onSnooze()
{if ((g_ctlReminder) && (CONST_B_CALENDAR == (g_bmpEnableReminders & CONST_B_CALENDAR)) && (g_fUpdAppt))
g_ctlReminder.poll();if ((g_ctlTaskRem) && (CONST_B_TASKS == (g_bmpEnableReminders & CONST_B_TASKS)) && (g_fUpdTask))
window.setTimeout(poll_Tasks, 100);}
function poll_Tasks()
{g_ctlTaskRem.poll();}
function poll_Appts()
{g_ctlReminder.poll();}
function Snooze(rgItems, iMinutes, fnCallback)
{if (null == rgItems || rgItems.length == 0)
return;var rgRequestQueue= new Array();var iRequestCount = 0;var oRequestData = null;var re = /\/[^/]*$/;
var szProp;var szApptURL = "";var szTaskURL = "";var xmlTask = "";var xmlAppt = "";var dtRNT = null;var dtReminder = null;var iMinFromNow = 0;var iMinOffset = 0;g_fUpdTask = false;g_fUpdAppt = false;if (0 > iMinutes)
{dtReminder = new Date();dtReminder.setMinutes( dtReminder.getMinutes() + -iMinutes );iMinFromNow = toISOTimeString(dtReminder);szProp = 'remindernexttime';}
else
{iMinOffset = iMinutes * 60;szProp = 'reminderoffset';}
xmlAppt = '<?xml version="1.0"?\><a:propertyupdate xmlns:a="DAV:"><a:set><a:prop>' +
'<d:' + szProp + ' xmlns:d="urn:schemas:calendar:">';if (0 > iMinutes)
xmlAppt += iMinFromNow + '</d:' + szProp + '>';else
xmlAppt += iMinOffset + '</d:' + szProp + '>';xmlAppt += '</a:prop></a:set><a:target>';xmlTask = '<?xml version="1.0"?\><a:propertyupdate xmlns:a="DAV:"><a:set><a:prop>' +
'<d:remindernexttime xmlns:d="'">http://schemas.microsoft.com/mapi/">'+ iMinFromNow + '</d:remindernexttime>' +
'</a:prop></a:set><a:target>';var i;var k = 0;var l = 0;for ( i = 0;i < rgItems.length;i++ )
{if (rgItems[i].messageclass == CONST_IPM_APPT && szApptURL == "")
szApptURL = rgItems[i].apptURL.replace( re, "" );if (rgItems[i].messageclass == CONST_IPM_TASK && szTaskURL == "")
szTaskURL = rgItems[i].apptURL.replace( re, "" );var szTemp = rgItems[i].apptURL.replace( re, "" );if ((rgItems[i].messageclass == CONST_IPM_APPT) && (szTemp === szApptURL))
{xmlAppt += '<a:href>' + rgItems[i].apptURL + '</a:href>';k++;}
else if ((rgItems[i].messageclass == CONST_IPM_TASK) && (szTemp === szTaskURL ))
{xmlTask += '<a:href>' + rgItems[i].apptURL + '</a:href>';l++;}
}
if (k > 0)
{g_fUpdAppt = true;xmlAppt += '</a:target></a:propertyupdate>';oRequestData = new RequestData();oRequestData.url = szApptURL;oRequestData.xml = xmlAppt;rgRequestQueue[iRequestCount++] = oRequestData;}
if (l > 0)
{g_fUpdTask = true;xmlTask += '</a:target></a:propertyupdate>';oRequestData = new RequestData();oRequestData.url = szTaskURL;oRequestData.xml = xmlTask;rgRequestQueue[iRequestCount++] = oRequestData;}
var bRet = mf_Request(rgRequestQueue, fnCallback);return bRet;}
function Dismiss(rgItems, fnCallback)
{if (null == rgItems || rgItems.length == 0)
return;var re = /\/[^/]*$/;
var rgRequestQueue= new Array();var iRequestCount = 0;var i = 0;var oRequestData = null;var szApptURL = "";var szTaskURL = "";var xmlSAppt = "";var xmlRAppt = "";var xmlRSTask = "";var szTemp= "";var rgTodo = new Array();var j = 0;var k = 0;var l = 0;g_fUpdTask = false;g_fUpdAppt = false;xmlSAppt = '<?xml version="1.0"?\><a:propertyupdate xmlns:a="DAV:"><a:remove><a:prop>' +
'<d:reminderoffset xmlns:d="urn:schemas:calendar:" />' +
'</a:prop></a:remove><a:target>';xmlRAppt = '<?xml version="1.0"?\><a:propertyupdate xmlns:a="DAV:"><a:set><a:prop>' +
'<d:remindernexttime xmlns:d="urn:schemas:calendar:">4501-01-01T00:00:00.000Z</d:remindernexttime>' +
'</a:prop></a:set><a:target>';xmlRSTask = '<?xml version="1.0"?\><a:propertyupdate xmlns:a="DAV:"><a:set><a:prop>' +
'</a:prop><a:prop><e:reminderset xmlns:e="0'">http://schemas.microsoft.com/mapi/">0</e:reminderset>' +
'</a:prop><a:prop><f:resetreminder xmlns:f="1'">http://schemas.microsoft.com/exchange/tasks/">1</f:resetreminder>' +
'</a:prop></a:set><a:target>';for (i = 0;i < rgItems.length;i++)
{if (rgItems[i].messageclass == CONST_IPM_APPT && szApptURL == "")
szApptURL = rgItems[i].apptURL.replace( re, "" );else if (rgItems[i].messageclass == CONST_IPM_TASK && szTaskURL == "")
szTaskURL = rgItems[i].apptURL.replace( re, "" );if (("0" != rgItems[i].type) && (rgItems[i].messageclass == CONST_IPM_APPT))
{szTemp = rgItems[i].apptURL.replace( re, "" );if (szTemp === szApptURL)
{xmlRAppt += '<a:href>'+rgItems[i].apptURL + '</a:href>';k++;}
}
else
{rgTodo[j++] = rgItems[i];}
}
if (k > 0)
{g_fUpdAppt = true;xmlRAppt += '</a:target></a:propertyupdate>';oRequestData = new RequestData();oRequestData.url = szApptURL;oRequestData.xml = xmlRAppt;rgRequestQueue[iRequestCount++] = oRequestData;}
k = 0;l = 0;if (null != rgTodo && rgTodo.length)
{rgItems = rgTodo;for (i = 0;i < rgItems.length;i++)
{if (rgItems[i].messageclass == CONST_IPM_APPT && szApptURL == "")
szApptURL = rgItems[i].apptURL.replace( re, "" );else if (rgItems[i].messageclass == CONST_IPM_TASK && szTaskURL == "")
szTaskURL = rgItems[i].apptURL.replace( re, "" );szTemp = rgItems[i].apptURL.replace( re, "" );if ((rgItems[i].messageclass == CONST_IPM_APPT) && (szTemp === szApptURL))
{xmlSAppt += '<a:href>'+rgItems[i].apptURL + '</a:href>';k++;}
else if ((rgItems[i].messageclass == CONST_IPM_TASK) && (szTemp === szTaskURL))
{xmlRSTask += '<a:href>'+rgItems[i].apptURL + '</a:href>';l++;}
}
}
if (0 < k)
{g_fUpdAppt = true;xmlSAppt += '</a:target></a:propertyupdate>';oRequestData = new RequestData();oRequestData.url =szApptURL;oRequestData.xml = xmlSAppt;rgRequestQueue[iRequestCount++] = oRequestData;}
if (0 < l)
{g_fUpdTask = true;xmlRSTask += '</a:target></a:propertyupdate>';oRequestData = new RequestData();oRequestData.url = szTaskURL;oRequestData.xml = xmlRSTask;rgRequestQueue[iRequestCount++] = oRequestData;}
var bRet = mf_Request(rgRequestQueue, fnCallback);return bRet;}
function RequestData()
{this.pending = true;this.result = false;this.url = null;this.xml = null;}
function mf_Request(rgRequestQueue, fnCallback)
{var objContext = null;var oRequest = null;var oXmlHttp = null;try
{for (var iRequestIndex = 0;iRequestIndex < rgRequestQueue.length;iRequestIndex++)
{objContext = new Object();objContext.requestIndex = iRequestIndex;objContext.callback = fnCallback;oRequest = new requestFactory(rgRequestQueue[iRequestIndex].url, "BPROPPATCH", objContext, mfcb_Request);oXmlHttp = oRequest.xmlhttp;oXmlHttp.setRequestHeader("Accept-Language", g_szAcceptLang);oXmlHttp.setRequestHeader("Content-Type","text/xml");oXmlHttp.setRequestHeader("Translate","f");oXmlHttp.setRequestHeader("Brief","t" );oXmlHttp.send(rgRequestQueue[iRequestIndex].xml);}
}
catch(e)
{return (false);}
m_rgRequestQueue = rgRequestQueue;return (true);}
function mfcb_Request(oRequest)
{var fSuccess = true;var fResult = true;var objContext = oRequest.context;var iRequestIndex = objContext.requestIndex;var oXmlHttp = oRequest.xmlhttp;var iStatus = oXmlHttp.status;if ( iStatus < 200 || iStatus == 207 || iStatus >= 300)
{switch(iStatus)
{case 207:
var rgStatus = oXmlHttp.responseXML.selectNodes("a:multistatus/a:response[a:status $ge$ 'HTTP/1.1 4']");if (rgStatus.length)
{for (var i = 0 ;i < rgStatus.length;i++)
{if (rgStatus[i].text.indexOf("507") != -1)
{fSuccess = false;g_szErrReq = L_RemQuotaMax;break;}
}
}
break;case 404:
fSuccess = true;break;case 507:
fSuccess = false;g_szErrReq = L_RemQuotaMax;break;default:
fSuccess = false;}
}
m_rgRequestQueue[iRequestIndex].pending = false;m_rgRequestQueue[iRequestIndex].result = fSuccess;for (iRequestIndex = 0;iRequestIndex < m_rgRequestQueue.length;iRequestIndex++)
{if (m_rgRequestQueue[iRequestIndex].pending)
return;fResult = fResult && m_rgRequestQueue[iRequestIndex].result;}
m_rgRequestQueue = null;try
{var fnCallback = objContext.callback;fnCallback(fResult, g_szErrReq);g_szErrReq = "";}
catch(e) {}
}
function toISOTimeString(dtDate)
{var sTime = dtDate.getUTCFullYear() + "-00-00T00:00:00Z";var i = dtDate.getUTCMonth()+1;sTime = sTime.substr(0,(10 > i) ? 6 : 5) + i + sTime.substr(7);i = dtDate.getUTCDate();sTime = sTime.substr(0,(10 > i) ? 9 : 8) + i + sTime.substr(10);i = dtDate.getUTCHours();sTime = sTime.substr(0,(10 > i) ? 12 : 11) + i + sTime.substr(13);i = dtDate.getUTCMinutes();sTime = sTime.substr(0,(10 > i) ? 15 : 14) + i + sTime.substr(16);return sTime;}
function resetMailPoll()
{if (g_ctlNotify!= null && parent != null)
{if (parent.viewer != null)
{if (g_ctlNotify.folder +"/?Cmd=contents" == parent.viewer.location)
g_ctlNotify.resetPoll();}
}
}
function onNewMail()
{if (2 <= g_nEnableNewMail)
PlaySound();if (0 == (1 & g_nEnableNewMail))
return;var obj = g_winDocAll['idNewMail'];if (null != obj)
{obj.style.display="";AnimateNotify();}
if (0 < g_iAddCount)
objTree.updateFolderCount( g_ctlNotify.folder+"/" );}
function PlaySound()
{if (null == g_oSound)
g_oSound = window.document.all['idSound'];if (g_fDXInstalled)
{try
{g_oSound.src = g_szVirtualRoot + "/img/notify.wav";g_oSound.beginElement();return;}
catch(e)
{g_fDXInstalled = false;}
}
var oSnd = document.createElement("BGSOUND");oSnd.id = "idSound";oSnd.src = g_szNewMailWav;oSnd.LOOP=1;g_oSound = document.body.insertBefore( oSnd, null );g_oSound.src = g_oSound.src;}
function flyInit()
{flyMove.curH = 0;if (window.document.dir === "rtl")
flyMove.curX = 0;else
flyMove.curX = window.screen.availWidth - flyMove.flyWidth;flyMove.curY = window.screen.availHeight;}
function flyMove()
{flyMove.curH += 2;flyMove.curY -= 2;showPU(g_oPopup, flyMove.curX, flyMove.curY, flyMove.flyWidth, flyMove.curH);if (flyMove.curH >= flyMove.flyHeight)
{window.clearInterval(g_idFlyPopup);g_idFlyPopup = -1;window.setTimeout('closePopup()', 15000);}
}
flyMove.curH = 0;flyMove.curY = 0;flyMove.curX = 0;flyMove.flyHeight = 126;flyMove.flyWidth = 130;
function AnimateNotify()
{if (null == g_oPopup)
return;var oPopupBody = g_oPopup.document.body;var szFont = window.document.body.currentStyle.fontFamily;var szHTML = "<TABLE height=100% width=100% cellpadding=4 cellspacing=0 style=\"font-family:"+szFont+";font-size:100%;\">"+
"<TR style=\"background-image:url("+g_szImagePath+"newitem.gif);background-repeat:no-repeat;background-position:99% 99%\">"+
"<TD align=middle >"+L_NewMail+"</TD></TR></TABLE>";oPopupBody.innerHTML = szHTML;oPopupBody.style.fontSize = document.body.currentStyle.fontSize;oPopupBody.style.cursor="hand";oPopupBody.style.color = "black";oPopupBody.style.borderWidth='3px';oPopupBody.style.borderStyle='window-inset';oPopupBody.style.borderColor='activeborder';oPopupBody.style.backgroundImage="url("+g_szThemesPath+"nin-bg.gif)";oPopupBody.style.backgroundRepeat="no-repeat";oPopupBody.style.backgroundPosition="center center";oPopupBody.style.backgroundColor="#8D9FB7";oPopupBody.onclick = ShowInbox;flyInit();if (g_idFlyPopup == -1)
g_idFlyPopup = window.setInterval(flyMove,10);}
function closePopup()
{if (null != g_oPopup)
g_oPopup.hide();}
function ShowInbox()
{window.top.focus();nbLinkNav(g_ctlNotify.folder + "/", "contents");if (-1 != g_idFlyPopup)
{window.clearInterval(g_idFlyPopup);g_idFlyPopup = -1
}
closePopup();var obj = g_winDocAll['idNewMail'];if (null != obj)
obj.style.display="none";}
function newOptions(iRem, iNot)
{var f_OnOld = (g_bmpEnableReminders >= (CONST_B_TASKS | CONST_B_CALENDAR));var f_OldTask = (CONST_B_TASKS == (g_bmpEnableReminders & CONST_B_TASKS));var f_OldAppt = (CONST_B_CALENDAR == (g_bmpEnableReminders & CONST_B_CALENDAR));var f_LdRem = null;var f_LdTask = null;var ldFirst = null;if (g_bmpEnableReminders != iRem)
{g_bmpEnableReminders = iRem;f_LdRem = (CONST_B_CALENDAR == (g_bmpEnableReminders & CONST_B_CALENDAR));f_LdTask = (CONST_B_TASKS == (g_bmpEnableReminders & CONST_B_TASKS));}
var f_OnNew = (g_bmpEnableReminders >=(CONST_B_TASKS | CONST_B_CALENDAR));if (f_OnOld && f_OnNew)
return;if (f_OnOld && !f_OnNew)
{if ((f_LdTask == false) && (f_LdTask != f_OldTask))
ldTaskRem();if ((f_LdRem == false) && (f_LdRem != f_OldAppt))
ldRem();if ((f_OldAppt == true) && (f_LdRem == f_OldAppt))
g_ctlReminder.poll();if ((f_OldTask == true) && (f_LdTask == f_OldTask))
g_ctlTaskRem.poll();}
if (!f_OnOld && f_OnNew)
{resetReminders(false)
if ((f_OldAppt == true) && (f_LdRem == f_OldAppt))
g_ctlReminder.poll();else
ldRem();if ((f_OldTask == true) && (f_LdTask == f_OldTask))
g_ctlTaskRem.poll();else
ldTaskRem();}
if (!(f_OnOld || f_OnNew))
{if (f_LdRem != null)
ldRem();if (f_LdTask != null)
ldTaskRem();}
if( g_nEnableNewMail != iNot )
{g_nNewMailNewVal = iNot ;ldNot();}
}
ldRem.loaded = false;
function ldRem()
{if (g_idCalRmTmr >= 0)
{window.clearTimeout(g_idCalRmTmr);g_idCalRmTmr = -1;}
if (null == g_ctlReminder)
return;if (ldRem.loaded)
{udRem();}
else if (CONST_B_CALENDAR == (g_bmpEnableReminders & CONST_B_CALENDAR))
{g_ctlReminder.onreadystatechange = udRem;g_ctlReminder.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_reminder.htc");}
}
function udRem()
{if ("complete" == g_ctlReminder.readyState)
{g_ctlReminder.onreadystatechange = null;ldRem.loaded = true;closeReminder();if (CONST_B_CALENDAR == (g_bmpEnableReminders & CONST_B_CALENDAR))
{g_ctlReminder.onchange = onReminders;g_ctlReminder.enable = true;g_ctlReminder.type = REM_TYPE_APPT;}
else
{g_ctlReminder.enable=false;}
}
}
ldTaskRem.loaded = false;
function ldTaskRem(fLoad)
{if (g_idTaskRmTmr >= 0)
{window.clearTimeout(g_idTaskRmTmr);g_idTaskRmTmr = -1;}
if (null == g_ctlTaskRem)
return;if (ldTaskRem.loaded)
{udTaskRem();}
else if (CONST_B_TASKS == (g_bmpEnableReminders & CONST_B_TASKS))
{g_ctlTaskRem.onreadystatechange = udTaskRem;g_ctlTaskRem.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_reminder.htc");}
}
function udTaskRem()
{if ("complete" == g_ctlTaskRem.readyState)
{g_ctlTaskRem.onreadystatechange = null;ldTaskRem.loaded = true;closeReminder();if (CONST_B_TASKS == (g_bmpEnableReminders & CONST_B_TASKS))
{g_ctlTaskRem.onchange = onReminders;g_ctlTaskRem.enable = true;g_ctlTaskRem.type = REM_TYPE_TASK;}
else
{g_ctlTaskRem.enable=false;}
}
}
ldNot.loaded = false;
function ldNot()
{if (null == g_ctlNotify)
return;if (ldNot.loaded)
{udNot();}
else if (0 != g_nNewMailNewVal)
{if (null != g_winDocAll.idSound)
{g_fUseTime2 = (getBrowserVer() >= 5.5);idSound.addBehavior(g_fUseTime2 ? "#default#time2" : "#default#time");idSound.begin = "indefinite";}
g_ctlNotify.onreadystatechange = udNot;g_ctlNotify.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_notify.htc");}
}
function udNot()
{if ("complete" == g_ctlNotify.readyState)
{g_ctlNotify.onreadystatechange = null;ldNot.loaded = true;if (0 == g_nNewMailNewVal)
{g_ctlNotify.enable = false;}
else
{try
{g_oPopup = window.createPopup();}
catch(e){}
if (0 == g_nEnableNewMail)
{g_ctlNotify.enable = true;g_ctlNotify.onchange = onNewMail;}
}
g_nEnableNewMail = g_nNewMailNewVal;}
}
function onopened(szFolder)
{var szInbox = "";if (g_szInboxFolder.length)
{szInbox = g_szInboxFolder.substr(1);if (szFolder === szInbox)
{closePopup();var obj = g_winDocAll['idNewMail'];if (null != obj)
obj.style.display="none";}
}
return szInbox;}
function tglTree()
{cmHide();if (event)
{event.cancelBubble = true;event.returnValue = false;}
if ("1" == g_bShowFolders)
hideTree();else
showTree();}
function showTree()
{if (g_iAddCount == 0)
{treeProgress.style.display = "";objTree.addBehavior("/exchweb/6.5.7638.1/controls/ctrl_tree.htc");}
else
{idTglTH.src = g_szImagePath + g_szUpIco;g_rgFlyItms[g_iFlyTr].expand();g_bShowFolders = "1";idUdTree.style.display = "";setProp(g_bShowFolders, "webclientshowhierarchy");syncViewWithTree();}
}
function hideTree()
{idTglTH.src = g_szImagePath + g_szDnIco;g_rgFlyItms[g_iFlyTr].collapse();g_bShowFolders = "0";idUdTree.style.display = "none";setProp(g_bShowFolders, "webclientshowhierarchy");}
function flyMvDv(iID)
{var oItm = g_rgFlyItms[iID];oItm.oTR.style.posHeight += oItm.dir*oItm.step;oItm.oDiv.runtimeStyle.filter = "alpha(opacity="+(100*(oItm.oTR.style.posHeight/oItm.size))+")";
if (0 >= oItm.oTR.style.posHeight || oItm.size <= oItm.oTR.style.posHeight)
{window.clearInterval(oItm.iTgl);oItm.iTgl = null;if (g_iCol == oItm.dir) oItm.oTR.style.display= 'none';oItm.oDiv.style.overflow = 'auto';}
}
function flyItm(iID, oTR, oDiv, iSize)
{this.oTR = oTR;this.oDiv = oDiv;this.size = iSize;this.step = iSize/15;
this.expand = flyExp;this.collapse = flyCol;this.toggle = flyTgl;this.iTgl = null;this.iID = iID;g_rgFlyItms[iID] = this;}
function flyExp()
{this.toggle(g_iExp);}
function flyCol()
{this.toggle(g_iCol);}
function flyTgl(iDir)
{this.dir = iDir;this.oDiv.style.overflow = 'hidden';if (this.dir == g_iExp)
this.oTR.style.display = '';if (this.iTgl == null)
this.iTgl = window.setInterval("flyMvDv("+this.iID+")",15);}
function tglQL()
{if (event)
{event.cancelBubble = true;event.returnValue = false;}
if (g_bShowQL)
{g_bShowQL = 0;hideQL();}
else
{g_bShowQL = 1;showQL();}
setProp(g_bShowQL, "quicklinks");}
function showQL()
{g_winDocAll.imgHideQL.style.display = g_winDocAll.trQuickLinks.style.display = "";g_winDocAll.imgShowQL.style.display = "none";showBigLinks(false);}
function hideQL()
{g_winDocAll.imgShowQL.style.display = "";g_winDocAll.trQuickLinks.style.display = g_winDocAll.imgHideQL.style.display = "none";showBigLinks(true);}
function showBigLinks(fShow)
{for(var i=0;i < g_rgBigLinks.length;++i)
{var oBL = g_winDocAll[g_rgBigLinks[i]];
// #####################################################################################
// if (oBL)
// oBL.parentElement.style.display = fShow ? "" : "none";
if (oBL != null && "undefined" != typeof(oBL))
{
if (oBL.parentElement != null && "undefined" != typeof(oBL.parentElement))
oBL.parentElement.style.display = fShow ? "" : "none";
}
// #####################################################################################
}
}
function setProp(sVal, sProp)
{var szXML = "<?xml version=\"1.0\" ?>" +
"<D:propertyupdate xmlns:D=\"DAV:\" xmlns:a=\"http://schemas.microsoft.com/exchange/\">" +
"<D:set><D:prop><a:" + sProp + ">" + sVal + "</a:" + sProp + "></D:prop></D:set>" +
"</D:propertyupdate>";var oXMLReq= new ActiveXObject("Microsoft.XMLHTTP");oXMLReq.open("PROPPATCH", g_sBase, true);oXMLReq.setRequestHeader("Accept-Language", g_szAcceptLang);oXMLReq.setRequestHeader("Content-Type","text/xml");oXMLReq.setRequestHeader("Depth", "0");oXMLReq.send(szXML);}
function udTree()
{if (event)
{event.cancelBubble = true;event.returnValue = false;}
if (g_iAddCount < 1)
return;objTree.refreshFolder(g_sBase);objTree.refreshFolder(g_sBase+g_sFinderUrl);}
// #####################################################################################
function CUSTOMupdateShortcuts()
{
// Point this url to your custom site
var sNewQuery = "/MailArchiver";
CUSTOMinsertBefore("idOptions", "aQLOptions", "idCustom", "Archive", "/exchweb/img/Archive-lg.gif", "/exchweb/img/icon-archive.gif", sNewQuery);
}
/* #####################################################################################
Function: CUSTOMinsertBefore
Purpose: Add a new tab to the OWA 2003 navigation bar quick links section
Parameters:
beforeNBID == ID of element before insert should happen
beforeAID == <a> element before insert should happen
szID == ID (must be unique)
szText == Text to display (max 11 chars)
szImage == URL to large image (24x24)
szImageQL == URL to small image (16x16)
szRef == URL to navigate to
##################################################################################### */
function CUSTOMinsertBefore(beforeNBID, beforeAID, szID, szText, szImage, szImageQL, szRef)
{
var navBeforeTD = g_winDocAll.item(beforeNBID);
// If the navigation pane is not displayed just leave
if(null == navBeforeTD)
return;
// Find the containing row and table
var navBeforeTR = navBeforeTD.parentNode;
var navTable = navBeforeTR.parentNode;
// Create the new navigation pane button bar row. This is the big row containing a 24 x 24 image and the text of the navigation pane item
var NewTR = document.createElement("TR");
NewTR.className = "trQuickLinks";
NewTR.style.display = navBeforeTR.style.display;
var NewTD = document.createElement("TD");
NewTD.id = szID;
NewTD.className = "nbLabel";
NewTD.valign = "top";
NewTD.noWrap = true;
var NewA = document.createElement("A");
NewA.className = "nbHref nbHrefEx";
NewA.href = szRef;
// Use "_blank" if you want the link to open a new window, "viewer" otherwise
NewA.target = "viewer";
// NewA.target = "_blank";
var NewImg = document.createElement("IMG");
NewImg.className = "nbImage";
NewImg.align = "absmiddle";
NewImg.style.width = "24px";
NewImg.style.height = "24px";
NewImg.src = szImage;
var NewText = document.createTextNode(szText);
// Tie the elements together
NewA.appendChild(NewImg);
NewA.appendChild(NewText);
NewTD.appendChild(NewA);
NewTR.appendChild(NewTD);
// And add the new row
navTable.insertBefore(NewTR, navBeforeTR);
// Find the insertion point in the quick link navigation list
var qlBeforeA = g_winDocAll.item(beforeAID);
var qlBeforeTD = qlBeforeA.parentNode;
var qlBeforeTR = qlBeforeTD.parentNode;
// Add a quick link cell. This is the one line at the bottom of the navigation pane only visible if the navigation pane button bar is not expanded
NewTD = document.createElement("TD");
NewA = document.createElement("A");
NewA.className = "aQL";
NewA.href = szRef;
// Use "_blank" if you want the link to open a new window, "viewer" otherwise
NewA.target = "viewer";
// NewA.target = "_blank";
NewImg = document.createElement("IMG");
NewImg.className = "imgQL";
NewImg.align = "absmiddle";
NewImg.style.width = "16px";
NewImg.style.height = "16px";
NewImg.src = szImageQL;
NewImg.alt = "Go to " + szText;
// Tie the elements together
NewTD.appendChild(NewA);
NewA.appendChild(NewImg);
// And insert the quick link cell
qlBeforeTR.insertBefore(NewTD, qlBeforeTD);
if (null != g_rgBigLinks)
{
try
{
g_rgBigLinks.push(szID);
}
catch (e) {}
}
}
// #####################################################################################
|
|
|
|
RE: Tip: How to integrate MailArchiver with OWA 2003 - 3.Apr.2006 11:52:31 AM
|
|
|
shawner47
Posts: 4
Joined: 30.Mar.2006
Status: offline
|
frededric- Thank you for the response. I must say that I had tried several times following the instructions given but for some reason, I could not get it to work. The new tab would not sahow up and when I would try to click on any of the other tabs (Contacts, Calendar, etc) it would do nothing. I want to compare your version to mine to see where I might have gone wrong. Thank you again! Shawn
|
|
|
|
New Messages |
No New Messages |
Hot Topic w/ New Messages |
Hot Topic w/o New Messages |
Locked w/ New Messages |
Locked w/o New Messages |
|
Post New Thread
Reply to Message
Post New Poll
Submit Vote
Delete My Own Post
Delete My Own Thread
Rate Posts |
|
|