// -------------------------------------------------------- //
// Replaces the contents of the specified control with HTML //
// returned by an AJAX call defined by the specified URL    //
// -------------------------------------------------------- //
function AjaxRefresh(url, ctrlID)
{
	request.GetNoCache( url,
	function(result)
	{
		if ( result.readyState != ReadyState.Complete )
		{
			return;
		}
			
		if ( result.status == HttpStatus.OK && result.responseText != "" )
		{
			// The result was successful and returned data
			var container = document.getElementById( ctrlID );
			if ( container )
			{
				container.innerHTML = result.responseText;
			}
			else
			{
				window.alert( "Could not find container control " + ctrlID );
			}
		}
		else
		{
			// Handle the failure condition
			window.alert( "Failed to refresh page contents!" );
		}
	}
	)
}

// ------------------------------ //
// Refreshes the ChassisAxle list //
// ------------------------------ //
function RefreshChassisAxle(chassisID, ctrlID)
{
	AjaxRefresh( "?AjaxAction=RefreshChassisAxle&ChassisID=" + chassisID, ctrlID );
}

// --------------------------------------------------------------- //
// Deletes the specified ChassisAxle object and refreshes the list //
// --------------------------------------------------------------- //
function DeleteChassisAxle(chassisID, axleCode, ctrlID)
{
	AjaxRefresh( "?AjaxAction=DeleteChassisAxle&ChassisID=" + chassisID + "&AxleCode=" + axleCode, ctrlID );
}

function RefreshChassisTransmission(chassisID, ctrlID)
{
	AjaxRefresh( "?AjaxAction=RefreshChassisTransmission&ChassisID=" + chassisID, ctrlID );
}

function DeleteChassisTransmission(chassisID, transmissionID, ctrlID)
{
	AjaxRefresh( "?AjaxAction=DeleteChassisTransmission&ChassisID=" + chassisID + "&TransmissionID=" + transmissionID, ctrlID );
}

function InsertSitePageGroup(url, ctrlID, groupID)
{
	AjaxRefresh( url + "&GroupID=" + groupID, ctrlID );
}

function DeleteSitePageGroup(url, ctrlID)
{
	AjaxRefresh( url, ctrlID );
}

function DeleteUserGroupMembership(url, spnID)
{
	if ( !window.confirm( "Are you sure you want to revoke the user's membership from this group?" ) ) return;
	
	AjaxRefresh( url, spnID );
}

function AddUserGroupMembership(url, spnID, groupCtrlID, typeCtrlID, objectCtrlID)
{
	var groupCtrl = document.getElementById( groupCtrlID );
	var typeCtrl = document.getElementById( typeCtrlID );
	var objectCtrl = document.getElementById( objectCtrlID );
	
	var groupID = groupCtrl.value;
	var objectTypeID = typeCtrl.value;
	var objectID = objectCtrl.value;
	
	AjaxRefresh( url + "&GroupID=" + groupID + "&ObjTypeID=" + objectTypeID + "&ObjID=" + objectID + "&AjaxAction=insert", spnID );
}

function RefreshObjectsDropdown(objectCtrlID, url)
{
	var ctrl = document.getElementById( objectCtrlID );
	
	request.GetNoCache( url,
	function(result)
	{
		if ( result.readyState != ReadyState.Complete )
		{
			return;
		}
			
		if ( result.status == HttpStatus.OK && result.responseText != "" )
		{
			// The result was successful and returned data
			//ctrl.options[0] = null;
			for ( var o=ctrl.options.length; o>=0; o-- )
			{
				ctrl.options[o] = null;
			}

			var list = result.responseText.split( "|" );
			
			if ( list.length < 2 )
			{
				var opt = document.createElement("OPTION");
				ctrl.options.add( opt );
				opt.value = "0";
				opt.innerText = "[ALL]";
				return;
			}
			
			for ( var i=0; i<list.length; i+=2 )
			{
				var opt = document.createElement("OPTION");
				ctrl.options.add( opt );
				opt.value = list[i];
				opt.innerText = list[i+1];
			}
		}
		else
		{
			// Handle the failure condition
			window.alert( "Failed to get query result!" );
		}
	}
	)
}

function ResetPassword(url)
{
	request.GetNoCache( url,
	function(result)
	{
		if ( result.readyState != ReadyState.Complete )
		{
			return;
		}
			
		if ( result.status == HttpStatus.OK && result.responseText != "" )
		{
			// The result was successful and returned data
			window.alert( result.responseText );
		}
		else
		{
			// Handle the failure condition
			window.alert( "Failed to update user's password!" );
		}
	}
	)
}
