var iCurrentUserID = null;
var iCurrentTaskID = null;
var sCurrentPermission = null;


function edit_element(ElementID) {
	oElement = document.getElementById(ElementID);
	sText = oElement.innerHTML;
	
	oElement.innerHTML = '<input type="text" id="' + ElementID + '_Text" value="' + sText + '" style="width:75%; float:left;" />'
						+ '<span style="float:right;">'
							+ '<input type="button" value="Save" onclick="save_element(\'' + ElementID + '\');" />'
							+ '<input type="button" value="Cancel" onclick="edit_cancel(\'' + ElementID +'\', \'' + sText + '\');" />'
						+ '</span>';
}

function edit_cancel(ElementID, sText) {
	document.getElementById(ElementID).innerHTML = sText;
}

function save_element(ElementID) {
	sNewText = document.getElementById(ElementID + '_Text').value;
	x_save_element(ElementID, sNewText, cb_save_element);
}

function cb_save_element(aReturn) {
	aList = aReturn.split("|:|");
	document.getElementById(aList[0]).innerHTML = aList[1];
}

function get_CW_list(iUserID, iTaskID, sPermission) {
	if (iCurrentTaskID == null && iTaskID == null)
	{
		document.getElementById('CW_list_status').innerHTML = '&nbsp; A task must be selected to filter.';
		return;
	}
	
	if (iUserID == null)
	{
		iUserID = iCurrentUserID;
	}
	
	if (iTaskID == null)
	{
		iTaskID = iCurrentTaskID;
	}
	
	if (sPermission == null)
	{
		sPermission = sCurrentPermission;
	}
	
	iCurrentUserID = iUserID;
	iCurrentTaskID = iTaskID;
	sCurrentPermission = sPermission;

	document.getElementById('CW_list').innerHTML = '';
	document.getElementById('CW_list_status').innerHTML = '&nbsp; Loading . . .';
	sKeywords = document.getElementById('filter_keywords').value;
	sCurr = document.getElementById('filter_topic').value;
	sArea = document.getElementById('filter_area').value;
	
	x_get_CW_list(iUserID, iTaskID, sKeywords, sCurr, sPermission, sArea, cb_get_CW_list);
}

function cb_get_CW_list(aReturn) {
	aList = aReturn.split("|:|");
	document.getElementById('CW_list').innerHTML = aList[0];
	document.getElementById('CW_list_status').innerHTML = '&nbsp; ' + aList[1] + ' results found.';
	resize_boxes();
}

function resize_boxes(){
	if (document.getElementById('CWLinkChoices') != null)
	{
		document.getElementById('CWLinkChoices').style.width = (document.getElementById('CW_list').offsetWidth - 20) + "px";
	}
	
	if (document.getElementById('CWTasks') != null)
	{
		document.getElementById('CWTasks').style.width = (document.getElementById('CW_list').offsetWidth - 20) + "px";
	}
}

function CW_link(oElement)
{
	sCriteria = oElement.id;
	x_CW_link(sCriteria, cb_CW_link);
}

function cb_CW_link(aReturn)
{
	aList = aReturn.split("|:|");
	if (aList[1] == "1")
	{
		sImg = 'images/ico_chkbxSelected.gif';
		sColor = 'blue';
	}
	else
	{
		sImg = 'images/ico_chkbx.gif';
		sColor = 'black';
	}
	
	document.getElementById(aList[0]).src = sImg;
	document.getElementById(aList[0] + '_row').style.color = sColor;
}

function clear_Filter()
{
	document.getElementById('filter_keywords').value='';
	document.getElementById('filter_topic').selectedIndex = 0;
	get_CW_list();
}

function changeTopics(iAreaID)
{
	x_changeTopics(iAreaID, cb_changeTopics);
}

function cb_changeTopics(aReturn)
{
	document.getElementById('filter_topic').options.length = 0;
	document.getElementById('filter_topic').options[0] = new Option('All', '');
	aList = aReturn.split("|:|");
	for (i = 0; i < aList.length; ++i)
	{
		aParts = aList[i].split(":|:");
		document.getElementById('filter_topic').options[i + 1] = new Option(aParts[1], aParts[0]);
	}
	get_CW_list();
}


/*
 *	Name:		send_email()
 *
 *	Arguments:	sElementList	-	The list of elements to be checked for e-mail
 *
 *	Description:	Will go through the list of elements and create a list of users to be e-mailed
 */
function send_email(sElementList)
{
	aList = sElementList.split(',');
	sUserList = '';
	for (i = 0; i < aList.length; ++i)
	{
		if (document.getElementById(aList[i]).checked == true)
		{
			sUserList += aList[i] + ',';
		}
	}
	
	if (sUserList != '')
	{
		x_send_email(sUserList, cb_send_email);
	}
	else
	{
		alert("You must select at least one person.");
	}
}

function cb_send_email(sReturn)
{
	window.location.href = "mailto:" + sReturn;
}


/*
 *	Name:		list_steps()
 *
 *	Arguments:	iTaskID	-	The ID for the selected Task
 *				bShow	-	Tells whether to show or hide the Steps
 *
 *	Description:	Builds a list of Steps for the selected task and shows them
 */
function list_steps(iTaskID, bShow)
{
	if (document.getElementById('TaskName_' + iTaskID + '_div') != null)
	{
		var d = document.getElementById('TaskName_' + iTaskID + '_div');
		d.parentNode.removeChild(d);
	}
	else
	{
		x_list_steps(iTaskID, cb_list_steps);
	}
}

function cb_list_steps(aReturn)
{
	aList = aReturn.split("|:|");
	document.getElementById('TaskName_' + aList[0]).innerHTML += aList[1];
	//~ alert(sReturn);
}


/*
 *	Name:		getValues()
 *
 *	Arguments:	iFieldCount	-	Number to distinguish which field is being changed
 *				sField		-	The name of the field to get possible values for
 *				sValue		-	Selected value of the dropdown that will be created.
 *
 *	Description:	Builds a list of possible values for a selected field in the User table (Used in the report building)
 */
function getValues(sFieldCount, sField, sValue)
{
	if (sValue == null)
		sValue = "all";
	
	x_getValues(sFieldCount, sField, sValue, cb_getValues);
}

function cb_getValues(aReturn)
{
	aList = aReturn.split("|:|");
	document.getElementById('cut_ValuesBox_' + aList[0]).innerHTML = aList[1];
}



/*
 *	Name:		addAnotherField()
 *
 *	Arguments:	
 *
 *	Description:	Create another table with field dropdowns.
 */
function addAnotherField()
{
	count = parseInt(document.getElementById('field_count').value) + 1;
	document.getElementById('field_count').value = count;
	
	x_addAnotherField(count, cb_addAnotherField);
}

function cb_addAnotherField(aReturn)
{
	var newnode = document.createElement("div");
	newnode.innerHTML = aReturn;
	document.getElementById('fields_list').appendChild(newnode);
}