///<summary>
/// Globals
///</summary>
var newWin; 
var textField = null;
var valueField = null;

///<summary>
/// Open the window and set the current value.
///</summary>
function OpenPopup(_url, _popupType, _width, _height, _resize, _valField, _txtField)
{
	// Store current values.
	textField = _txtField; 
	valueField = _valField;
	
	// If window already open, then close it.
	if (newWin)
	{
	      newWin.close();
	}
	
	// Open the window.
	newWin = window.open(_url, _popupType, 'height=' + _height + ', width=' + _width + ', outerHeight=' + _height + ', outerWidth=' + _width + ', screenX=25, screenY=50, left=25, top=50, scrollbars=no, directories=no, toolbars=no, menubar=no, dependent=no, resizable=' + _resize );
	
	// Set Focus To Window
	if (newWin)
	{
	     newWin.focus();
	}
}

///<summary>
/// Called by the child to set the previous selected value.
///</summary>
function ListBoxOnLoad()
{
	var currVal = document.getElementById(textField);
	var listBox = newWin.document.getElementById("ListBoxList");

	if (listBox && currVal && currVal.value != "")
	{
		// split currVal
		var part_num = 0;
		var my_array = currVal.value.split(";");

		while (part_num < my_array.length)
		{
			for (i = 0; i < listBox.length; i++)
			{
				if (listBox.options[i].text == my_array[part_num])
				{
					listBox.options[i].selected = true;
					break;
				}
			}
			part_num += 1;
		}
	}
}


///<summary>
/// Called by the child to set the previous selected value.
///</summary>
function CheckBoxListOnLoad()
{
	var table = newWin.document.getElementById("CheckBoxList");
	
	if (table)
	{
		var textControl = document.getElementById(textField);

		if (textControl && textControl.value != "")
		{
			var values = textControl.value.split(";");
			var inputs = table.getElementsByTagName("input");
			var labels = table.getElementsByTagName("label");
			
			if (inputs && labels)
			{
				for (i = 0; i < values.length; i++)
				{
					for (j = 0; j < labels.length; j++)
					{
						if (labels[j].innerText == values[i])
						{
							inputs[j].checked = true;
							break;
						}
					}
				}
			}
		}
	}
}


///<summary>
/// Update the controls "client side".
///</summary>
function ClientSideItemSelected(_selectedValue, _selectedText)
{
	// Update the control's values.
	var txtField = document.getElementById(textField);
	var valField = document.getElementById(valueField);

	if (valField)
	{
		valField.value = _selectedValue;
	}
	if (txtField)
	{
		txtField.value = _selectedText;
	}
	
	// Done.
	valueField = null;
	textField = null;
}

///<summary>
/// Update the controls "server side".
///</summary>
function ServerSideItemSelected(_selectedValue, _selectedText)
{
	var params = "ItemSelected:" + _selectedValue + ":" + _selectedText;
	
	__doPostBack(valueField, params)
}

