﻿function GetActiveRadWindow(managerClientID)
{
	var oManager = $find(managerClientID);
	var oWindow = oManager.GetActiveWindow();

	return oWindow;
}

function RadWindowOpen(url)
{
	var oWindow = window.radopen("/" + url, null);
}

function RadWindowOpenDimensions(url, width, height)
{
	var oWindow = window.radopen("/" + url, null);
	oWindow.SetWidth(width);
	oWindow.SetHeight(height);
}

function RadWindowOpenAtPosition(managerClientID, elementClientID, window, url)
{
	var oManager = $find(managerClientID);
	oManager.Open(url, window);
	
	RadWindowPosition(managerClientID, elementClientID);
}

function RadWindowCloseActive(managerClientID)
{
	var oWindow = GetActiveRadWindow(managerClientID);
	
	if (oWindow)
		oWindow.Close();
}

function RadWindowPosition(managerClientID, elementClientID)
{
	var oWindow = GetActiveRadWindow(managerClientID);

	if (oWindow)
	{
		var windowPosition = new Array();
		windowPosition = GetElementPosition(elementClientID);
		oWindow.MoveTo(windowPosition[0] + "px", windowPosition[1] + "px");
	}
}

function GetElementPosition(elementClientID)
{
	var currentLeft = currentTop = 0;
	var room = document.getElementById(elementClientID);

	if (room.offsetParent)
	{
		// while loop intentionally uses assignment operator
		do {
			currentLeft += room.offsetLeft;
			currentTop += room.offsetTop;
		} while (room = room.offsetParent);
		
		currentTop += 24;
	}

	return [currentLeft, currentTop];
}