//Copyright (c) 2000-2001 Microsoft Corporation.  All rights reserved.
//<script>

var g_szImagePath;
var g_winDocAll;
var g_ctrlMedia = null;
var m_otxtBody = null;
var m_otblHeader = null;
var m_oEMCell = null;
var g_szContentClass;
var g_szMsgClass;
var m_bPrevNext = false;

function window.onresize()
{
	txtMsgBody.style.posHeight = document.body.clientHeight - txtMsgBody.offsetTop - 5;
}

function window.onload()
{
	if (null != opener && null != opener.idMsgViewer)
	{
		m_bPrevNext = true;
	}
	else
	{
		previous.runtimeStyle.filter = "alpha(opacity=35)"
		next.runtimeStyle.filter = "alpha(opacity=35)"
	}
	g_winDocAll = window.document.all;
	try  //g_iInstanceType may not even exist (in which case we can ignore this)
	{
		if (g_iInstanceType != null && g_iInstanceType.length > 0) //this is a read appt response form
		{
			if (Number(g_iInstanceType) > 0) //recurring
			{
				//put the recurrence pattern in the When field
				if (g_PrintRecurrencePattern.length)
				{
					g_winDocAll['spanWhenText'].innerText = g_PrintRecurrencePattern;
				}
			}
		}
	}
	catch(e)
	{
	}

	g_szImagePath = g_szVirtualRoot + "/img/";

	window.document.attachEvent("onkeydown",event_onkeydown);

	m_otblHeader = AccessFld(g_winDocAll.tblHeader);

	m_otxtBody = AccessFld(g_winDocAll.txtMsgBody);
	if( null != m_otxtBody )
	{
		var i;
		var objs = m_otxtBody.children;
		for( i = 0; i < objs.length; i++ )
		{
			if( "TABLE" == objs[i].tagName )
			{
				objs[i].border = 0;
				objs[i].tBodies[0].rows[0].cells[0].bgColor="";
				break;
			}
		}
	}

	var fEnableMM = false;
	if( null != m_otxtBody )
	{
		if( null != g_rgInlines )
		{
			var oInlines = inlineAttachments(document);
			if( null != oInlines )
			{
				fEnableMM = true;
			}
		}
	}

	if( fEnableMM )
	{
		var obj = AccessFld(g_winDocAll.multimedia);
		if( obj )
		{
			var fInstalled = oClientCaps.isComponentInstalled("{6E767503-024A-11D3-9D47-00C04F68AC7D}", "ComponentID", g_szEMVer);

			if( fInstalled )
			{
				insertMediaCtrl();
			}
			else
			{
//				obj.style.display="";
			}
		}
	}

	CheckHeaderFieldsHeight();
	var szText = "";
	var iImp = parseInt(g_szImportance);
	var oStatus = AccessFld( g_winDocAll.trStatus );
	if( null != oStatus )
	{
		if( !isNaN(iImp) )
		{
			if (iImp == 2)
			{
				szText = L_MessageSentWithHighImportance_Text;
			}
			else if (iImp == 0)
			{
				szText = L_MessageSentWithLowImportance_Text;
			}

			if( 0 < szText.length )
			{
				var oRow = oStatus.cloneNode( true );
				oRow.style.display = "";
				oRow.lastChild.innerText = szText;
				oStatus.parentElement.insertBefore( oRow, oStatus );
			}
		}

		var iFlag = parseInt(g_szFlag);
		if( !isNaN(iFlag) )
		{
			//array set in util_OWA20.js
			if( 0 < L_rgszFlags[iFlag].length )
			{
				var oRow = oStatus.cloneNode( true );
				oRow.style.display = "";
				oRow.lastChild.innerText = L_rgszFlags[iFlag];
				oStatus.parentElement.insertBefore( oRow, oStatus );
			}
		}
		if( g_szMsgClass )
		{
			var reSMIME = /\.smime(\.multipartsigned)?$/i;
			var rgDat = reSMIME.exec( g_szMsgClass );
			if( null != rgDat )
			{
				szText = ( rgDat[1].length ) ? g_sz_W_SMIME_multipart : g_sz_W_SMIME;
			}
			else
			{
				var re = /\.secure$/i
				szText = ( re.test( g_szMsgClass ) ) ?  g_sz_W_SMIME : "";
			}
			if( 0 < szText.length )
			{
				var oRow = oStatus.cloneNode( true );
				oRow.style.display = "";
				oRow.lastChild.innerText = szText;
				oStatus.parentElement.insertBefore( oRow, oStatus );
			}
		}
	}

	if( null != g_ctrlMedia )
	{
		ctrlMedia_positionUpdate();
	}
	window.onresize();
}

function window.onbeforeprint()
{
	if( null != m_otxtBody )
	{
		m_otxtBody._szTitle = document.title;
		document.title = "";
	}
	var obj = AccessFld(g_winDocAll.curUser);
	if( null != obj )
	{
		obj.innerText = g_szUserDisplayName;
	}
}

function window.onafterprint()
{
	document.title = m_otxtBody._szTitle;

	if( null != g_ctrlMedia )
	{
		ctrlMedia_positionUpdate();
	}
}

function onCbClick(szCommand, varValue )
{
	if(event.button == 2)
	{
		return(false);
	}
	var szURL  = window.document.location.protocol + "//" + window.document.location.host + window.document.location.pathname + "?Cmd=" + szCommand;
	var fOpen = true;
	switch(szCommand.toUpperCase())
	{
	case "PRINT":
		window.print();
		fOpen=false;
		break;
	case "MOVE":
		//Move message function is defined in util_OWA20.js
		var szMsgURL = window.document.location.protocol + "//" + window.document.location.host + window.document.location.pathname;
		var szContentClass = "urn:content-classes:message";
		if (MoveMessage(g_szUserBase, g_szUserDisplayName, szMsgURL, g_szVirtualRoot, szContentClass))
		{
			try
			{
				window.opener.RefreshMessageList(g_szFolder);
			}
			catch(e) {}

			self.close();
		}
		fOpen=false;
		break;
	case "DELETE":
		DeleteMessage(szURL, g_szUserBase)
		fOpen=false;
		break;
	case "MEDIATOOL":
		insertMediaCtrl();
		fOpen=false;
		break;
	case "PREVIOUS":
		if (m_bPrevNext)
		{
			try
			{
				opener.idMsgViewer.seekURL(g_szURL,-1,window.name);
			}
			catch(e)
			{
				self.close();
			}
			m_bPrevNext = false;
		}
		fOpen=false;
		break;
	case "NEXT":
		if (m_bPrevNext)
		{
			try
			{
				opener.idMsgViewer.seekURL(g_szURL,1,window.name);
			}
			catch(e)
			{
				self.close();
			}
			m_bPrevNext = false;
		}
		fOpen=false;
		break;
	case "HELP":
		LaunchHelp();
		fOpen=false;
		break;
	}
	if(fOpen)
	{
		var oDate = new Date();
		szURL += "&tzoffset=" + oDate.getTimezoneOffset();
		openNewWindow(szURL, "", 700, 500);
		self.close();
	}
	return(true);
}

function event_onkeydown()
{
	switch(event.keyCode)
	{
		case 27:
			window.close();
			break;
		case 188:
			if (event.ctrlKey && !event.altKey)
				onCbClick("PREVIOUS");
			break;
		case 190:
			if (event.ctrlKey && !event.altKey)
				onCbClick("NEXT");
			break;
	}
	return(true);
}

function CheckHeaderFieldsHeight()
{
	var fields = m_otblHeader.children[4].children;
	var i;
	var nBegin = 2;
	var nLine = fields[nBegin].children[0].children[0].offsetHeight;
	for( i = nBegin; i < fields.length - 1; i++ )
	{
		var objItem = fields[i].children[1];
		if( objItem )
		{
			objItem = objItem.children[0];
			if( objItem )
			{
				objItem.style.overflow = "visible";
				objItem.runtimeStyle.overflow = "auto";
				objItem.runtimeStyle.height = (objItem.scrollHeight > nLine) ? 2 * nLine : nLine;
			}
		}
	}

	var objItem = fields[fields.length - 1].children[1];
	if( objItem )
	{
		objItem = objItem.children[0];
		if( objItem && ((objItem.scrollHeight > objItem.offsetHeight) || (objItem.scrollWidth > objItem.offsetWidth)) )
		{
			objItem.style.overflow = "visible";
			objItem.runtimeStyle.overflow = "auto";
			objItem.runtimeStyle.height = 2 * nLine;
		}
	}
}

function ctrlMedia_readyState()
{
	if( null != event.srcElement.object )
	{
		var obj = AccessFld(g_winDocAll.multimedia);
		if( obj )
		{
			obj.style.display="none";
		}

		g_ctrlMedia = event.srcElement;
		var objItem = g_ctrlMedia.parentElement;
		objItem.style.display = "";
		g_ctrlMedia._fHide = true;

		ctrlMedia_AddEventFor( 'command(val)', 'return ctrlMedia_Command(val);' );
		ctrlMedia_AddEventFor( 'ResolveFileName(val)', 'return ctrlMedia_ResolveRef(val)' );

		g_szEMgid = g_ctrlMedia.object.GroupID;
		document.body._EMGroupID = g_szEMgid;

		var szHTML = '<object ID="EMConduct" CLASSID="CLSID:D2646502-2424-11D3-9D50-00C04F68AC7D" style="display:none"></object>';
		document.body.insertAdjacentHTML( "afterBegin", szHTML );

		if( null != m_otxtBody )
		{
			AddMMObjTags( document );
		}
		
		if( null != objItem )
		{
			g_ctrlMedia._minHeight = g_ctrlMedia.object.MinHeight;
			g_ctrlMedia._offset = 0;
			g_ctrlMedia.onresize=ctrlMedia_positionUpdate;
			ctrlMedia_positionUpdate();
			window.attachEvent( "onresize", ctrlMedia_positionUpdate );
		}
	}
}

function insertMediaCtrl()
{
	var objBody = document.body;

	try
	{
		var szText =	'<SPAN id="_spMedia" class="trButtons" STYLE="display:none;position:absolute;z-index:2">'+
						'<OBJECT ID="ctrlMedia" CLASSID="CLSID:6E767503-024A-11D3-9D47-00C04F68AC7D" '+
						' onreadystatechange="ctrlMedia_readyState()">' +
						'<PARAM NAME="EnableRecord" VALUE="0">'+
						'<PARAM NAME="ResLang" VALUE="' + g_szResLang + '">' +
						'<PARAM NAME="ShowHide" VALUE="-1">'+
						'<PARAM NAME="EMail" VALUE="' + g_szUserEmail + '">' +
						'</OBJECT></SPAN>';
		objBody.insertAdjacentHTML("afterBegin", szText );
	}
	catch( e )
	{
	}
}

