function Body_Onload(ySupportsFCKeditor)
{
	var e;
	var aTextAreas;
	var i;
	
	// Set focus on first control.
	e = document.getElementById('FirstControl');
	if (e != null)
		if (e.value != '')
			document.getElementById(e.value).focus();
	
	if (ySupportsFCKeditor == null)
		ySupportsFCKeditor = false;
	
	// Set replace text areas containing HTML with Editor.
	if (ySupportsFCKeditor == true)
	{
		aTextAreas = document.getElementsByTagName('textarea');
		if (aTextAreas != null)
			for (i = 0; i < aTextAreas.length; i++)
			{
				e = aTextAreas[i];
				if (e.className == 'FormHTMLControl')
				{
					var oFCKeditor = new FCKeditor(e.id);
					var aBases = document.getElementsByTagName('base');
					if (aBases != null && aBases.length == 1)
						oFCKeditor.Config.BaseHref = aBases[0].href;
					else
						oFCKeditor.Config.BaseHref = document.location.href.substring(0, document.location.href.lastIndexOf(document.location.pathname) + document.location.pathname.length);
					oFCKeditor.BasePath = 'FCKeditor/';
					oFCKeditor.Height = e.offsetHeight;
					oFCKeditor.ReplaceTextarea();
				}
			}
	}
	
	// Load Filter Sub Lists
	var aSelects = document.getElementsByTagName('select');
	if (aSelects != null)
		for (i = 0; i < aSelects.length; i++)
		{
			var eSelect = aSelects[i];
			if (eSelect.attributes)
			{
				var aOnChange = eSelect.attributes.getNamedItem('onchange')
				if (aOnChange && aOnChange.value == 'FilterSubList(this);')
					FilterSubList(eSelect);
			}
		}
	
	
	// Display message when page loaded.
	e = document.getElementById('Message');
	if (e != null)
		if (e.innerText != '' && e.className != 'InformationMessage')
			alert(e.innerText);
	
	// Redirect when page loaded.
	e = document.getElementById('Redirect');
	if (e != null)
		if (e.value != '')
			if (window.navigate)
				window.navigate(e.value);
			else
				window.location = e.value;
}

function ToggleRecordSelectors()
{
	var bChecked = document.getElementById('RecordSelectorToggler').checked;
	var aInputs = document.getElementsByTagName('input');
	var oRecordSelector;
	var i;
	for (i = 0; i < aInputs.length; i++)
	{
		oRecordSelector = aInputs[i];
		if (oRecordSelector.type == 'checkbox')
			if (oRecordSelector.id != null)
				if (oRecordSelector.id != 'RecordSelectorToggler')
					if (oRecordSelector.id.substring(0, 14) == 'RecordSelector')
						oRecordSelector.checked = bChecked;
	}
}

function SelectedRecords()
{
	var aInputs = document.getElementsByTagName('input');
	var oRecordSelector;
	var i;
	var sRecords = '';
	for (i = 0; i < aInputs.length; i++)
	{
		oRecordSelector = aInputs[i];
		if (oRecordSelector.type == 'checkbox')
			if (oRecordSelector.id != null)
				if (oRecordSelector.id != 'RecordSelectorToggler')
					if (oRecordSelector.id.substring(0, 14) == 'RecordSelector')
						if (oRecordSelector.checked == true)
						{
							if (sRecords != '')
								sRecords += ',';
							sRecords += oRecordSelector.id.substring(14);
						}
	}
	return sRecords;
}

// This function was created due to IE not activating the ActiveX controls automatically
// It should be called at the end of the body tag
function ActivateControls()
{
//	var aObjects = document.getElementsByTagName('object');
//	for (var i = 0; i < aObjects.length; i++)
//		aObjects[i].outerHTML = aObjects[i].outerHTML;
	return;
}

var sMSIE = 'Microsoft Internet Explorer';
var msTempControls = { };
function FilterSubList(oFilter)
{
	var sSubListName = oFilter.attributes.getNamedItem('sublistname').value;
	var oSubList = document.getElementById(sSubListName);
	
	if (oSubList.className == 'FormItemControl' && navigator.appName == sMSIE)
		if (msTempControls[sSubListName])
		{
			oSubList.outerHTML = msTempControls[sSubListName];
			oSubList = document.getElementById(sSubListName);
		}
		else
			msTempControls[sSubListName] = oSubList.outerHTML;
	
	if (oFilter.value != '')
	{
		var oLoaded = oFilter.options.item(oFilter.selectedIndex).attributes.getNamedItem('loaded');
		if (oLoaded != null && oLoaded.value == 'False')
		{
			var sSubListURL = oFilter.attributes.getNamedItem('sublisturl').value.replace('%5bValue%5d', oFilter.value)
			var oXML = LoadXML(sSubListURL);
			var oItems = oXML.documentElement.childNodes;
			for (var i = 0; i < oItems.length; i++)
			{
				var oItem = oItems.item(i);
				if (oSubList.className == 'FormItemControl')
				{
					var oOption = document.createElement('option');
					oOption.setAttribute('value', oItem.attributes.getNamedItem('id').value);
					oOption.setAttribute('filtervalue', oFilter.value);
					var oText = document.createTextNode(oItem.childNodes.item(0).nodeValue);
					oOption.appendChild(oText);
					oSubList.appendChild(oOption);
				}
				else if (oSubList.className == 'FormLinkingForeignCollectionControl')
				{
					var oOption = document.createElement('div');
					oOption.setAttribute('filtervalue', oFilter.value);
					var sCheckboxName = sSubListName + oItem.attributes.getNamedItem('id').value;
					var oCheckbox = document.createElement('input');
					oCheckbox.setAttribute('id', sCheckboxName);
					oCheckbox.setAttribute('name', sCheckboxName);
					oCheckbox.setAttribute('type', 'checkbox');
					oOption.appendChild(oCheckbox);
					var oLabel = document.createElement('span');
					oLabel.setAttribute('onclick', sCheckboxName + '.checked = !' + sCheckboxName + '.checked');
					var oText = document.createTextNode(oItem.childNodes.item(0).nodeValue);
					oLabel.appendChild(oText);
					oOption.appendChild(oLabel);
					oSubList.appendChild(oOption);
				}
			}
			oLoaded.value = 'True';
			if (oSubList.className == 'FormItemControl' && navigator.appName == sMSIE)
				msTempControls[sSubListName] = oSubList.outerHTML;
		}
	}
	
	if (oSubList.className == 'FormItemControl')
	{
		for (i = 1; i < oSubList.length; i++)
		{
			var oOption = oSubList.options.item(i);
			if (oFilter.selectedIndex != 0 && oOption.attributes.getNamedItem('filtervalue').value != oFilter.value)
				if (navigator.appName == sMSIE)
					oSubList.remove(i--);
				else
				{
					oOption.selected = false;
					oOption.style.display = 'none';
				}
			else
				if (navigator.appName != sMSIE)
					oOption.style.display = 'list-item';
		}
	}
	else if (oSubList.className == 'FormLinkingForeignCollectionControl')
		for (i = 0; i < oSubList.childNodes.length; i++)
		{
			var oOption = oSubList.childNodes.item(i);
			if ((oFilter.selectedIndex == 0 && oOption.childNodes.item(0).checked == true) || oOption.attributes.getNamedItem('FilterValue').value == oFilter.value)
				oOption.style.display = 'list-item';
			else
				oOption.style.display = 'none';
		}
}

function LoadXML(sURL)
{
	var oXML;
	if (window.ActiveXObject)
	{
		oXML = new ActiveXObject('Microsoft.XMLDOM');
		oXML.async = false;
		oXML.load(sURL);
	}
	else
	{
		var oXMLHttpRequest = GetXMLHttpRequest();
		if (oXMLHttpRequest != false)
		{
			oXMLHttpRequest.open('GET', sURL, false);
			oXMLHttpRequest.send('');
			if (oXMLHttpRequest.status == 200)
				if (oXMLHttpRequest.responseXML != null)
					oXML = oXMLHttpRequest.responseXML;
				else
					oXML = (new DOMParser()).parseFromString(oXMLHttpRequest.responseText, "text/xml");
		}
		else
			alert('Your browser cannot handle this script');
	}
	return(oXML);
}


function GetXMLHttpRequest()
{
	var oXMLHttpRequest = false;
	if (window.XMLHttpRequest)
	{
        try
        {
			oXMLHttpRequest = new XMLHttpRequest();
        }
        catch(e)
        {
            oXMLHttpRequest = false;
        }
    }
    else if(window.ActiveXObject)
    {
        try
        {
            oXMLHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e)
        {
            oXMLHttpRequest = false;
        }
    }
    return oXMLHttpRequest;
}
