function GetAssociatedPortfolios()
{
	try
	{
		var selMinisters = document.getElementById("StatementDetails1_lstMinisters");
		var i;
				
		// iterate through ministers listbox, firing off a call to determine whether each associated
		// portfolio should be selected or not...
		for (i = 0; i < selMinisters.options.length; i++)
		{
			PostStatement.GetAssociatedPortfolio(selMinisters.options[i].value, selMinisters.options[i].selected, GetAssociatedPortfolios_Callback);
		}
	}
	catch(e)
	{}
}

function GetAssociatedPortfolios_Callback(res)
{
	if (res.error != null)
	{
		alert(res.error);
		return;
	}
	
	try
	{
		var selPortfolios = document.getElementById("StatementDetails1_lstPortfolios");
		var i;
		
		// iterate through portfolios listbox, selecting portfolios if associated minister has been selected...
		for (i = 0; i < selPortfolios.options.length; i++)
		{
			if (selPortfolios.options[i].value == res.value[0])
				selPortfolios.options[i].selected = res.value[1];
		}
	}
	catch(e)
	{}
}

function GetAssociatedMinisters()
{
	try
	{
		var selPortfolios = document.getElementById("StatementDetails1_lstPortfolios");
		var i;
				
		// iterate through portfolios listbox, firing off a call to determine whether each associated
		// minister should be selected or not...
		for (i = 0; i < selPortfolios.options.length; i++)
		{
			PostStatement.GetAssociatedMinister(selPortfolios.options[i].value, selPortfolios.options[i].selected, GetAssociatedMinisters_Callback);
		}
	}
	catch(e)
	{}
}

function GetAssociatedMinisters_Callback(res)
{
	if (res.error != null)
	{
		alert(res.error);
		return;
	}
	
	try
	{
		var selMinisters = document.getElementById("StatementDetails1_lstMinisters");
		var i;
		
		// iterate through ministers listbox, selecting ministers if associated portfolio has been selected...
		for (i = 0; i < selMinisters.options.length; i++)
		{
			if (selMinisters.options[i].value == res.value[0])
				selMinisters.options[i].selected = res.value[1];
		}
	}
	catch(e)
	{}
}

function GetStatus()
{
	try
	{
		DistributerAdministration.GetStatus(GetStatus_Callback);
	}
	catch(e)
	{
		alert(e);
	}
}
				
function GetStatus_Callback(res)
{
	if (res.error != null)
	{
		alert(res.error);
		return;
	}
	if (res.value[0] == "Refreshing")
		setTimeout(GetStatus(), 2000);
			
	document.getElementById("serviceStatusImage").innerHTML = res.value[1];
	document.getElementById("serviceStatusImageDescription").innerHTML = res.value[2];
}

function StopService()
{
	try
	{
		document.getElementById("serviceStatusImage").innerHTML = "<img src='../../images/gear_refresh.gif' border='0'></img>"
		document.getElementById("serviceStatusImageDescription").innerHTML = "The distribution service is currently changing status...";
		DistributerAdministration.StopService(GetStatus_Callback);
	}
	catch(e)
	{
		alert(e);
	}
}

function StartService()
{
	try
	{
		document.getElementById("serviceStatusImage").innerHTML = "<img src='../../images/gear_refresh.gif' border='0'></img>"
		document.getElementById("serviceStatusImageDescription").innerHTML = "The distribution service is currently changing status...";
		DistributerAdministration.StartService(GetStatus_Callback);
	}
	catch(e)
	{
		alert(e);
	}
}

function PauseService()
{
	try
	{
		document.getElementById("serviceStatusImage").innerHTML = "<img src='../../images/gear_refresh.gif' border='0'></img>";
		document.getElementById("serviceStatusImageDescription").innerHTML = "The distribution service is currently changing status...";
		DistributerAdministration.PauseService(GetStatus_Callback);
	}
	catch(e)
	{
		alert(e);
	}
}

function TestEmailService()
{
	try
	{
		document.getElementById("testEmailServiceDescription").innerHTML = "Testing...this may take a few moments.";
		DistributerAdministration.TestEmailService(TestEmailService_Callback);
	}
	catch(e)
	{
		alert(e);
	}
}

function TestFaxService()
{
	try
	{
		document.getElementById("testFaxServiceDescription").innerHTML = "Testing...this may take a few moments.";
		DistributerAdministration.TestFaxService(TestFaxService_Callback);
	}
	catch(e)
	{
		alert(e);
	}
}

function TestEmailService_Callback(res)
{
	if (res.error != null)
	{
		document.getElementById("testEmailServiceDescription").innerHTML = "Click the image to test the email distributer service.";
		alert(res.error);
		return;
	}
	
	document.getElementById("testEmailServiceDescription").innerHTML = "Click the image to test the email distributer service.";
	alert(res.value);
}

function TestFaxService_Callback(res)
{
	if (res.error != null)
	{
		document.getElementById("testFaxServiceDescription").innerHTML = "Click the image to test the fax distributer service.";
		alert(res.error);
		return;
	}
	
	document.getElementById("testFaxServiceDescription").innerHTML = "Click the image to test the fax distributer service.";
	alert(res.value);
}
