//Copyright (c) 2000-2001 Microsoft Corporation.  All rights reserved.
//<script> force VID to colorize
var L_rgDayNamesShort               = L_sdShortDayNames_Text.split(";");
var L_rgDayNamesLong                = L_sdLongDayNames_Text.split(";");
var L_rgMonthNamesShort             = L_sdShortMonths_Text.split(";");
var L_rgMonthNamesLong              = L_sdLongMonths_Text.split(";");
var L_rgDayNamesLetter              = L_sdDayLetters_Text.split(";");
var L_rgszDayLettersMonthlyView     = L_sdDayLettersMonthlyView_Text.split(";");
var g_fLoadComplete = false;  //Variable to indicate when the body is loaded
var g_szLTimeUnits;
var m_szXMLDOMProgID = "Microsoft.xmldom";
var m_szXMLHTTPProgID = "Microsoft.xmlhttp";
var m_gobjXMLHTTP = new ActiveXObject(m_szXMLHTTPProgID);
var L_rgszFlags = new Array();
L_rgszFlags[0]="";
L_rgszFlags[1]=L_FollowUp_Text;
L_rgszFlags[2]=L_ForYourInformation_Text;
L_rgszFlags[3]=L_Forward_Text;
L_rgszFlags[4]=L_NoResponseNecessary_Text;
L_rgszFlags[5]=L_Read_Text;
L_rgszFlags[6]=L_Reply_Text;
L_rgszFlags[7]=L_ReplyToAll_Text;
L_rgszFlags[8]=L_Review_Text;
var g_iPollingIneterval = 60; //calendar polling interval in seconds
var g_nFontHeight = 13;
var g_objHTTPBody;  //XMLHTTP object used to retrieve html body over ssl

function fVerifyTimeZone(itzOffsetJan, itzOffsetJul)
{
	var objDate = new Date();
	objDate.setUTCDate(1);
	objDate.setUTCMonth(0);
	if(objDate.getTimezoneOffset() != itzOffsetJan) return(false);
	objDate.setUTCDate(1);
	objDate.setUTCMonth(6);
	if(objDate.getTimezoneOffset() != itzOffsetJul) return(false);
	return true;
}

function AccessFld( obj )
{
	return ( null != obj.length ) ? obj[0] : obj;
}

function public_IsLeapYear(yr)
{
	if ((yr % 4 == 0) && (yr % 100 != 0) || (yr % 400 == 0))
		return 1;
	else
		return 0;
}

function public_daysInMonth(mo, yr)
{
	if (mo == 2)
		return 28 + public_IsLeapYear(yr);
	else
		return 30 + ((mo + (mo > 7)) % 2);
}

//returns szValue or null on fail
function public_getURLparam(szParam,szURL)
{
	var szRetVal=null;
	var iX = szURL.indexOf(szParam + "=");
	if ( iX != -1 )
	{    
		szRetVal = szURL.substring(iX + szParam.length + 1);
		iX = szRetVal.indexOf("&");
		if (iX > -1)
		{
			szRetVal = szRetVal.substring(0,iX);
		}
	}
	return(szRetVal);
}

//removes leading and trailing space characters
function Trim(szWhat) {
	return(szWhat.replace(/^\s*|\s*$/g, ""));
}

function openGal(szFieldNameTo,szFieldNameCc,szFieldNameBcc, objMessage) 
{
	var rgParams=null;
	if (szFieldNameTo != null)
	{
		rgParams=new Array();

		rgParams["ToName"]   = szFieldNameTo;
		rgParams["CcName"]   = szFieldNameCc;
		rgParams["BccName"]  = szFieldNameBcc;
		rgParams["objMessage"] = objMessage;
	}

	var oStyle = window.document.body.currentStyle;
	var nFontHeight = g_nFontHeight - 4;
	var szFont = "FONT:"+ oStyle.fontFamily + ";font-size:" + nFontHeight + "px;";
	var nWidth = 110 + 30 * nFontHeight;
	var nHeight = 210 + 25 * nFontHeight;
	var vRetval = window.showModelessDialog(g_szUserBase+"?Cmd=dialog&template=dlg_gal", rgParams, szFont+"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;status:no;resizable:yes;help:no;");
}

var rgNonLocShortMonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
function TzDateToUTC(szTzDate) {
	var szDay   = szTzDate.substring(8,10);
	var szMonth = new Number(szTzDate.substring(5,7))-1;
		szMonth = rgNonLocShortMonths[szMonth];                 
	var szYear  = szTzDate.substring(0,4);
	var szHr    = szTzDate.substring(11,13);
	var szMin   = szTzDate.substring(14,16);
	var szSec   = szTzDate.substring(17,19);
	return(szDay + " " + szMonth + " " + szYear + " " +szHr+":"+szMin+":"+szSec+" UTC");
}

function getLocalDateFormated(fConvertToLocal,szFormat,iYr,iMon,iDate,iHr,iMin)
{
	var objD = new Date(iYr,iMon,iDate,iHr,iMin);
		   
	if (fConvertToLocal)
	{
		var iYear       = objD.getUTCFullYear();
		var szMonth     = objD.getUTCMonth()+1; //0 offset adjustment
		var szDate      = objD.getUTCDate();
		var szHours     = objD.getUTCHours();
		var szMinutes   = objD.getUTCMinutes();
	}
	else
	{
		var iYear       = objD.getFullYear();
		var szMonth     = objD.getMonth()+1; //0 offset adjustment
		var szDate      = objD.getDate();
		var szHours     = objD.getHours();
		var szMinutes   = objD.getMinutes();
	}   


	if (szMonth < 10)
	{
		szMonth =  "0"+szMonth;
	}   
	if (szDate < 10)
	{
		szDate =  "0"+szDate;
	}   
	if (szHours < 10)
	{
		szHours =  "0"+szHours;
	}   
	if (szMinutes < 10)
	{
		szMinutes =  "0"+szMinutes;
	}

	if (szFormat == "yy/mm/dd hh:mm:ss") 
	{
		var szDate1 = iYear+"/"+szMonth+"/"+szDate+" "+szHours+":"+szMinutes+":00";
	}
	else //assume XML format "yyyy-mm-ddThh:mm:ss.sssZ"
	{
		var szDate1 = iYear+"-"+szMonth+"-"+szDate+"T"+szHours+":"+szMinutes+":00.000Z";
	}
	
	return(szDate1);
}

//PARAM: szDtTime = "1999-02-18T02:00:00.000Z"
//RETURN: a date object adjusted from GMT to local time
function getLocalDateObjFromGMTTime(szDtTime)
{
		
	var szDay   = szDtTime.substring(8,10);
	var szMonth = Number(szDtTime.substring(5,7))-1;    
	var szYear  = szDtTime.substring(0,4);
	var szHr    = szDtTime.substring(11,13);
	var szMin   = szDtTime.substring(14,16);
	var szSec   = szDtTime.substring(17,19);

	var objD = new Date();
	objD.setUTCFullYear(szYear,szMonth,szDay);
	objD.setUTCHours(szHr,szMin);

	return(objD);
}

//Function to properly initialize the HTMLEdit control with a fully qualified document
//Paramter objHTMLEdit has to be a referenct to the HTML Edit object
function InitializeHTMLEditor(objHTMLEdit, bodyHTML)
{
	if(bodyHTML==null)
		bodyHTML="";
	objHTMLEdit.DocumentHTML    = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">' +
									 '<HTML><HEAD>'+ 
									 '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">' +
									 '</HEAD><BODY><DIV>&nbsp;</DIV>' +
									  String(bodyHTML) +
									 '</BODY></HTML>';
	
	
}

//returns hWin
function openNewWindow(fileName,windowName,theWidth,theHeight) {

	if ("newMessageWindow" == windowName || "" == windowName) 
	{
		//generate random window ID
		 windowName = new String(Math.round(Math.random() * 100000));
	}
	return (window.open(fileName,windowName,"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width="+theWidth+",height="+theHeight));
}

//**********************************************
//spews to a textarea
//use szWindowName="" for new window each time
//else will open and keep using the same window
//**********************************************
function spewDebugText(szWindowName,szSpew,szHeader,fAppend) {
	wDebug = window.open("",szWindowName); 
	dDebug = wDebug.document.body;
	if (szHeader!="") szHeader += "\r\n**********************\r\n";
	if (wDebug["idTextarea"]==null) 
		dDebug.innerHTML="<textarea id='idTextarea' style='width:100%;height:100%'></textarea>";
	if (fAppend) wDebug["idTextarea"].value = wDebug["idTextarea"].value + "\r\n"+szHeader + szSpew;
	else wDebug["idTextarea"].value = szHeader + szSpew;
}

function MoveMessage(szUserBase, szDisplayName, szMessageURL, szExchWebVroot, szContentClass)
{
		var rgURLSplit;
		var szParentURL = szUserBase;
		var szXML = '<transferdata xmlns:a="DAV:">' + 
					 '<item>' + 
						'<objectname></objectname>' + 
						'<objectid></objectid>' +
						'<content-class></content-class>' + 
						'<droptype></droptype>' +
						'<a:href></a:href>' +
					'</item>' +     
				'</transferdata>';
			  
	   
		rgURLSplit = szMessageURL.split("/");
		var szName = rgURLSplit[rgURLSplit.length-1];
		var szDialog                        =   szUserBase+"?Cmd=dialog&template=dlg_movecopy"
		var szNewFolderDialog               =   szUserBase +"?Cmd=dialog&template=dlg_newfolder"                
   
		
		var objXML = new ActiveXObject("Microsoft.xmldom"); 
	
		objXML.loadXML(szXML);
		var node = objXML.selectSingleNode("transferdata/item/objectid");
		node.text = szMessageURL;
		node = objXML.selectSingleNode("transferdata/item/content-class");
		node.text = szContentClass;
		node = objXML.selectSingleNode("transferdata/item/a:href");
		node.text = szMessageURL;
		node = objXML.selectSingleNode("transferdata/item/objectname");
		node.text = szName;
		node = objXML.selectSingleNode("transferdata/item/droptype");
		node.text = "message";
			   
		
		var szDataString = objXML.xml;
		
		
		var rgParams = new Array();
		
		rgParams["g_Location"]  = szUserBase;
		rgParams["g_DisplayName"] = szDisplayName;
		rgParams["g_VirtualRoot"] = szExchWebVroot;
		rgParams["g_NewFolderDialogPath"] = szNewFolderDialog;   
		rgParams["g_MessageDataString"] = szDataString;
		rgParams["g_MoveCopyMode"] = "Move"; 
		
		rgParams["status"]="";
		
		var bMove = window.showModalDialog(szDialog,    rgParams,"dialogHeight:400px;dialogWidth:350px;status:no;resizable:yes;help:no;");
		
		return(bMove);

}

function fnForceImagePaint()
{
	if (window.document.all.dirtyImage == null)
	{
		window.document.body.insertAdjacentHTML("beforeEnd","<div id='dirtyImage' style='display:none;'></div>");
	}
	window.document.all.dirtyImage.innerHTML = "<img style='' src='"+g_szVirtualRoot + "/img/tool-send.gif'>";
	
}

function LaunchHelp()
{
	if(idHelpLinkText != null)
	{
		openNewWindow(idHelpLinkText.innerText, "OutlookWebAccessHelp", 550, 540).focus();
	}
}

var m_szDeletedItemsURL;
function DeleteMessage(szURL, szRoot, iAction)
{
	if (iAction == DeleteMessage.iACT_NO_CONFIRM)
	{
		m_gobjXMLHTTP.open( "DELETE", szURL ,true);
		m_gobjXMLHTTP.onreadystatechange = event_OnDeleteCompleted;
		event_OnDeleteCompleted.bCloseWindow = true;
		m_gobjXMLHTTP.send();
	}
	else if (iAction == DeleteMessage.iACT_NO_CONFIRM_SYNC)
	{
		m_gobjXMLHTTP.open( "DELETE", szURL ,false);
		m_gobjXMLHTTP.send();

		var iStatus = m_gobjXMLHTTP.status;
		var szStatus = m_gobjXMLHTTP.statusText;
		mfRefreshViewer();
		CheckStatus(iStatus, szStatus);
	}
	else if (null == m_szDeletedItemsURL) //we need to get the url to deleted items
	{
		setDeletedItemsFolderAndDelete(szURL, szRoot, iAction);
	}
	else
	{
		var m_szLastVerb;
		var urlpath =szURL.split("?");
		var endURL = urlpath[0].split("/");
		
		//If not in deleted items folder then move
		if(urlpath[0].toUpperCase().indexOf(m_szDeletedItemsURL.toUpperCase()) == -1 && szRoot)
		{
	
				var szDestURL = m_szDeletedItemsURL + endURL[endURL.length-1];
				m_gobjXMLHTTP.open( "MOVE", urlpath[0], true);
				m_gobjXMLHTTP.setRequestHeader( "Destination:", szDestURL);
				m_gobjXMLHTTP.setRequestHeader( "allow-rename:", "t");  
				m_gobjXMLHTTP.setRequestHeader( "Overwrite:", "f");
				m_gobjXMLHTTP.setRequestHeader( "Translate:", "f");
				m_gobjXMLHTTP.onreadystatechange = event_OnDeleteCompleted;
				event_OnDeleteCompleted.bCloseWindow = (iAction != DeleteMessage.iACT_NO_CLOSE);
				m_gobjXMLHTTP.send();
		}
		else //in delted items folder so just delete
		{
			if(confirm(L_WarningDeletePermanent_Text))
			{
				m_gobjXMLHTTP.open( "DELETE", urlpath[0] ,false);
				m_gobjXMLHTTP.send();
				var iStatus = m_gobjXMLHTTP.status;
				var szStatus = m_gobjXMLHTTP.statusText;
				mfRefreshViewer();
				CheckStatus(iStatus, szStatus, (iAction != DeleteMessage.iACT_NO_CLOSE));
			}
		}
	}
	return;
}
// Function properties
DeleteMessage.iACT_NO_CONFIRM = 1;          // Delete w/out confirmation dialog.
DeleteMessage.iACT_NO_CONFIRM_SYNC = 3;     // Delete synchronously w/ dialog - only used by ComposeMMMsg
DeleteMessage.iACT_NO_CLOSE = 4;            // Delete w/out closing window.

var m_gobjHTTP;
function setDeletedItemsFolderAndDelete(szURL, szSearchRoot, iAction)
{
	if (szSearchRoot != null)
	{
		m_gobjHTTP = new ActiveXObject(m_szXMLHTTPProgID);     
		var szPropfind ='<?xml version="1.0"?>' + 
						'<a:propfind xmlns:a="DAV:" xmlns:b="urn:schemas:httpmail:">' + 
						'<a:prop><b:deleteditems/>' + 
						'</></>';
		m_gobjHTTP.open( "PROPFIND", szSearchRoot,true);
		m_gobjHTTP.setRequestHeader( "Depth:", "0");
		m_gobjHTTP.setRequestHeader( "Content-type:", "text/xml");
		m_gobjHTTP.onreadystatechange = eventcallback_setDeletedItemsFoldersAndDelete;
		eventcallback_setDeletedItemsFoldersAndDelete.szRoot = szSearchRoot;
		eventcallback_setDeletedItemsFoldersAndDelete.szURL = szURL;
		eventcallback_setDeletedItemsFoldersAndDelete.iAction = iAction;
		m_gobjHTTP.send(szPropfind);
	}
	return;
}
function event_NOP()
{
	return;
}

function eventcallback_setDeletedItemsFoldersAndDelete()
{
	if(m_gobjHTTP.readyState == 4)
	{
		m_gobjHTTP.onreadystatechange = event_NOP;
		var xmlResponseXML = m_gobjHTTP.responseXML;
		var xmlNodes = xmlResponseXML.selectNodes("a:multistatus/a:response/a:propstat/a:prop/*");
		var szURLNode = xmlResponseXML.selectNodes("a:multistatus/a:response/a:href");
		var istatus = m_gobjHTTP.status;
		var i;
		m_gobjHTTP.abort();
		if (xmlNodes.length) //should be only one item returned
		{
			m_szDeletedItemsURL = xmlNodes.item(0).text + "/";
			DeleteMessage(eventcallback_setDeletedItemsFoldersAndDelete.szURL, eventcallback_setDeletedItemsFoldersAndDelete.szRoot, eventcallback_setDeletedItemsFoldersAndDelete.iAction);
		}
		else
		{
			if (401 == istatus) //status returned by store may be changed
			{
				alert(L_errDeletePermission_ErrorMessage);
			}
			else
			{
				alert(L_NoDelete);
			}
		}
	}

}
// Function properties
eventcallback_setDeletedItemsFoldersAndDelete.szURL;
eventcallback_setDeletedItemsFoldersAndDelete.szRoot;
eventcallback_setDeletedItemsFoldersAndDelete.iAction;

function event_OnDeleteCompleted()
{
	if (m_gobjXMLHTTP.readyState == 4) 
	{
		var iStatus = m_gobjXMLHTTP.status;
		var szStatus = m_gobjXMLHTTP.statusText;
		m_gobjXMLHTTP.abort();
		CheckStatus(iStatus, szStatus, event_OnDeleteCompleted.bCloseWindow);
	}
}
// Function properties
event_OnDeleteCompleted.bCloseWindow = true;

function mfRefreshViewer()
{
	try
	{
		if (window.opener)
		{
			//if the callback is given on the URL use it
			if ('string'==typeof(g_szCallback))
			{
				eval("window.opener."+g_szCallback+"(idXmlMessageData)");
			}
			else
			{
				window.opener.RefreshMessageList(g_szFolder);
			}
		}
		//is function available local (for inframe extensibility)
		else if ("function" == typeof(RefreshMessageList) )
		{
			RefreshMessageList(g_szFolder);
		}
	}
	catch(e){}
}
function CheckStatus(iStatus, szStatus, bCloseWindow)
{
	if (iStatus < 300) 
	{
		mfRefreshViewer();
		if (bCloseWindow == true)
		{
			self.close();  //Close window after deleting
		}
	}
	else 
	{
		switch(iStatus) 
		{
					
			case 401:   //Status returned by store may be changed
			case 403:
			  iLockCount = 0;
			  alert(L_errDeletePermission_ErrorMessage);
			  break;
			case 404:
			  alert(L_errDelteResourceNotFound_ErrorMessage);
			  break;
			default:
			  alert(iStatus + " " + szStatus);
			  break;
		}
	}
}

function parseURLfor(szWhat)
{
	var re = new RegExp("[?|&]"+szWhat+"=([^&]*)","gi");
	var arr = re.exec( window.document.location.search );
	return( (arr==null)?null:arr[1]);
}

function WarnUser(level, url)
{
	var fOpen = true;
	
	if (level == 1)
		fOpen = confirm(L_warnOpenUnsafeContent_Text);
	
	if (fOpen)
	{
		window.open(url);
	}
	return(false);
}

function fixIE_width()
{
	var re = /MSIE 5\.([0-9]+)/;
	var rgArgs = clientInformation.appVersion.match(re);
	if( null != rgArgs && 1 > rgArgs[1] )
	{
		var j;
		for( j = 0; j < document.styleSheets.length; j++ )
		{
			if( -1 == document.styleSheets[j].href.indexOf( "OWAStyle20.css" ) )
			{
				continue;
			}

			var rules = document.styleSheets[j].rules;
			var i;
			for( i = 0; i < rules.length; i++ )
			{
				if( ".MSGBODY" == rules[ i ].selectorText )
				{
					rules[i].style.marginRight = 12;
					break;
				}
			}
			break;
		}
	}
}

//returns all characters utf8 encoded
function toUTF8(szInput)
{
	var wch,x,uch="",szRet="";

	for (x=0; x<szInput.length; x++)
	{
		wch=szInput.charCodeAt(x);
		if (!(wch & 0xFF80))
		{
			szRet += "%" + wch.toString(16);
		}
		else if (!(wch & 0xF800))
		{
			uch = "%" + (wch>>6 | 0xC0).toString(16) + 
				  "%" + (wch & 0x3F | 0x80).toString(16);
			szRet += uch; 
		}
		else
		{
			uch = "%" + (wch >> 12 | 0xE0).toString(16) + 
				  "%" + (((wch >> 6) & 0x3F) | 0x80).toString(16) +
				  "%" + (wch & 0x3F | 0x80).toString(16);
			szRet += uch; 
		}
	}
	return(szRet);
}

function openNewFolderDialog(szBaseURL, szDisplayName, szVirtualRoot)
{
		var szNewFolderDialog           =   szBaseURL +"?Cmd=dialog&template=dlg_newfolder";
		var rgParams                    =   new Array(); 
		rgParams["g_Location"]          =   szBaseURL;
		rgParams["g_DisplayName"]		=	szDisplayName;
		rgParams["g_VirtualRoot"]       =   szVirtualRoot;
		var hWin = window.showModalDialog(szNewFolderDialog, rgParams,"dialogHeight:400px;dialogWidth:350px;status:no;resizable:yes;help:no;")   
}

function openAlert(szMsg,bOK,bYes,bNo,bCancel)
{
	var rgParams=new Array();
	rgParams["message"]=szMsg;
	rgParams["btnOk"]=bOK;
	rgParams["btnYes"]=bYes;
	rgParams["btnNo"]=bNo;
	rgParams["btnCancel"]=bCancel;
	var oStyle = window.document.body.currentStyle;
	var szFont = "FONT:"+ oStyle.fontFamily + ";";
	rgParams["fontSize"]=oStyle.fontSize;
	return(window.showModalDialog(g_szUserBase+"?Cmd=dialog&template=dlg_alert", rgParams,szFont+"dialogHeight:9em;dialogWidth:40em;status:no;resizable:no;help:no;"));
}

function isOrganizer(iStateFlags)
{
	//is a meeting && was not recieved && not being forwarded
	return( ((iStateFlags&0x1) && !(iStateFlags&0x2) && !(iStateFlags&0x8)) ? true : false );
}
function isMeeting(iStateFlags)
{
	return( (iStateFlags&0x1) ? true : false );
}
function objMessage_OnUpdateAttachments()
{
	var oAttachments = document.all("idAttachmentWell");
	if( null != oAttachments )
	{
		oAttachments.innerHTML = event.returnValue;
	}
}

function loadBodyContents(objDHTMLEdit, szURL)
{
	
	try
	{
		objDHTMLEdit.LoadURL(szURL+"/"+g_szHtmlViewUrl);
	}
	catch(e)
	{
		//If the error code is 13 - "Unknown Protocol" and the protocol is https
		//then do workaround and retrieve html using xmlhttp
		if( 13 == (e.number & 0xFFFF) && ("https:" == window.location.protocol.toLowerCase() ) )
		{
			var objDate = new Date();
			g_objHTTPBody = new ActiveXObject(m_szXMLHTTPProgID)
			g_objHTTPBody.open("GET",szURL+"/"+g_szHtmlViewUrl + "&uuid=" + objDate.getTime().toString(36), true);	
			g_objHTTPBody.setRequestHeader("Accept-Language:",g_szAcceptLang);
			g_objHTTPBody.onreadystatechange = onGetHTMLBody;
			g_objHTTPBody.send();
			return;
		}
		
	}    
	
	g_fLoadComplete = true;
	return (true);
}

function onGetHTMLBody()
{
	if(null != g_objHTTPBody && g_objHTTPBody.readystate == 4 && onGetHTMLBody.busy == false)
	{
		if(g_objHTTPBody.status >= 200 && g_objHTTPBody.status < 300)
		{
			onGetHTMLBody.busy = true;
			window.document.all("tbContentElement").documentHTML = g_objHTTPBody.responseText;
			g_objHTTPBody = null;
			onGetHTMLBody.busy = false;
			g_fLoadComplete = true;
		}	
	}
}
onGetHTMLBody.busy = false;

function SetReminderOffsetValue(objReminderSelect, szOffset)
{
	objReminderSelect.value = szOffset;
	if (szOffset != objReminderSelect.value)
	{
		if( null == g_szLTimeUnits || 0 == g_szLTimeUnits.length)
		{
			return;
		}

		// this is a custom reminder value which is not in the list of options
		// format the localized string for it and add a selected option for it
		var oOpt = new Option();
		var m_rgTimeUnits = g_szLTimeUnits.split(";");
		if( 8 > m_rgTimeUnits.length)
		{
			return;
		}

		if( szOffset % 604800 == 0)
		{
			var nWeeks = szOffset/604800;
			oOpt.text = nWeeks + m_rgTimeUnits[(nWeeks==1)?0:1];
		}
		else
		{
			if( szOffset % 86400 == 0)
			{
				var nDays = szOffset/86400;
				oOpt.text = nDays + m_rgTimeUnits[(nDays==1)?2:3];
			}
			else
			{
				if( szOffset % 3600 == 0)
				{
					var nHours = szOffset/3600;
					oOpt.text = nHours + m_rgTimeUnits[(nHours==1)?4:5];
				}
				else
				{
					var nMins = szOffset/60;
					oOpt.text = nMins + m_rgTimeUnits[(nMins==1)?6:7];
				}
			}
		}
		oOpt.text = oOpt.text.replace( /^\s+/, "" );
		oOpt.value = szOffset;
		objReminderSelect.options.add(oOpt,0);
		objReminderSelect.value = szOffset;
	}			
}
function SetAccessKeys()
{
	var rgBtns = document.body.getElementsByTagName("BUTTON");
	var reAccel = /<U>(.)<\/U>/;
	var obj;
	for( var i=0; i < rgBtns.length;i++ )
	{
		obj = rgBtns[i];
		var rgRet = reAccel.exec( obj.innerHTML );
		if( null != rgRet )
		{
			obj.accessKey = rgRet[1];
		}
	}
}
function resizeButtons(winDocAll, rgszButtons)
{
	var nWidth = 0;
	for( var i=0; i < rgszButtons.length; i++ )
	{
		var obj = winDocAll[rgszButtons[i]];
		var n = obj.scrollWidth-obj.clientWidth + obj.offsetWidth + 8;
		if( n > nWidth )
		{
			nWidth = n;
		};
	}
	if( 0 < nWidth )
	{
		for( var i=0; i < rgszButtons.length; i++ )
		{
			var obj = winDocAll[rgszButtons[i]];
			obj.style.width = ""+nWidth+"px";
		}
	}
}
function forceSave()
{
	alert(L_SaveAttachToDisk);
	return false;
}

