function toggleBox() // 1 visible, 0 hidden
{
	var szDivID = arguments[0];
	var iState = arguments[1];
	var formId = arguments[2];
	var fieldType = arguments[3];
	var fieldName = arguments[4];
	var notinuse = arguments[5] ? arguments[5] : 0;
	
	//alert("szDivID = " + szDivID + "\n iState = "+ iState +" \n formId = "+formId +"\n fieldType = "+ fieldType +"\n fieldName = " +fieldName +"\n not in use = " + notinuse); 		 
	if(document.layers)	   //NN4+
	{
		document.layers[szDivID].visibility = iState ? "show" : "hide";
		document.layers[szDivID].style.display = iState ? '' : 'none';
	}
	else if(document.getElementById)	  //gecko(NN6) + IE 5+
	{
		var obj = document.getElementById(szDivID);
		if(obj != null){
			obj.style.visibility = iState ? "visible" : "hidden";
			obj.style.display = iState ? '' : 'none';
		}
	}
	else if(document.all)	// IE 4
	{
		document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
		document.all[szDivID].style.display = iState ? '' : 'none';
	}

	if (notinuse != 1){
		if (formId != undefined)
		{
			document.getElementById("formId").value = formId;
			document.getElementById("fieldType").value = fieldType;
			document.getElementById("fieldName").value = fieldName;
		}
	}
}

function updateField(formId, fieldType, fieldName, fieldValue,fieldValueDisplay, layerName, action, closeLayerAfterSelection)
{
	if (fieldType == "select")
	{
		var userList = document.getElementById(fieldName);
		var userOptions = userList.options;
		//loop through the select lsit and display the correct value
		for (var i = 0; i < userOptions.length; i++)
		{
			if (userOptions[i].value == fieldValue)
			{
				userOptions[i].selected = true;
				break;
			}
		}
	}
	else if (fieldType == "text")
	{
		document.getElementById(fieldName).value = fieldValue;
	}
	else if (fieldName == "singleParticipant") 
	{
			if (!isUserSelected(fieldValue)) 
			{
				addNomineeRowToTable_singleNominee(fieldValue, fieldValueDisplay);
			}
		}
	else
	{
		if (formId == "rewardSearchFormLayer")
		{
			addRewardToTable(fieldValue, fieldValueDisplay);
		}
		else if(formId == "participantSearchFormLayer")
		{
			addUserToTeamReward(fieldValue, fieldValueDisplay);
		}
		else if (formId == "nomineeSearchSearch") 
		{
			if (!isUserSelected(fieldValue)) 
			{
				addNomineeRowToTable(fieldValue, fieldValueDisplay);
			}
		}
		else if (formId == "draftDetails") 
		{
			if (!isUserSelected(fieldValue)) 
			{
				addNomineeRowToTable(fieldValue, fieldValueDisplay);
			}
		}
		else if (formId == "departmentNotes") 
		{
			if (!isUserSelected(fieldValue)) 
			{
				addNomineeRowToTable(fieldValue, fieldValueDisplay);
			}
		}
		else if (formId == "nomineeSearchSearch_dep") 
		{
			if (!isUserSelected(fieldValue)) 
			{
				addNomineeRowToTable_dep(fieldValue, fieldValueDisplay);
			}
		}
		else if (formId == "finalApprover") 
		{
			if (!isUserSelected(fieldValue)) 
			{
				addNomineeRowToTable_finalApprover(fieldValue, fieldValueDisplay);
			}
		}
		else
		{
			if (!isUserInPool(fieldValue))
			{
				addPoolRowToTable(fieldValue, fieldValueDisplay);
			}
		}
		
	}

	if (closeLayerAfterSelection != 0 || closeLayerAfterSelection == "")
	{
		showSelectLists(selectList);
		document.getElementById('searchResults').innerHTML='';
		HideContent('searchLayertemp');
	}
}

function updateFilterField(formId, fieldType, fieldName, fieldValue,fieldValueDisplay, layerName, action, closeLayerAfterSelection, level1Label, level2Label, level3Label)
{
	var alertText = "formId = "+ formId +"\n"+" fieldType = "+ fieldType +"\n"+" fieldName = "+ fieldName +"\n"+
					"fieldValue = "+ fieldValue+"\n"+" fieldValueDisplay = "+ fieldValueDisplay +"\n"+ "layerName = "+ layerName +"\n"+
					"action = "+ action +"\n"+ " closeLayerAfterSelection = "+ closeLayerAfterSelection +"\n"+
					"level1Label = "+ level1Label +"\n"+" level2Label = "+ level2Label +"\n"+ " level3Label = "+ level3Label +"\n";
	//alert(alertText);
	
	if (fieldType == "select")
	{
		var userList = document.getElementById(fieldName);
		var userOptions = userList.options;
		//loop through the select lsit and display the correct value
		for (var i = 0; i < userOptions.length; i++)
		{
			if (userOptions[i].value == fieldValue)
			{
				userOptions[i].selected = true;
				break;
			}
		}
	}
	else if (fieldType == "text")
	{
		document.getElementById(fieldName).value = fieldValue;
	}
	addNomineeRowToTable_filter(fieldValue, fieldValueDisplay,level1Label,level2Label,level3Label);
	if (closeLayerAfterSelection != 0 || closeLayerAfterSelection == "")
	{
		showSelectLists(selectList);
		document.getElementById('searchResults').innerHTML='';
		HideContent('searchLayertemp');
	}
	
}

function updateCategoryProductField(productId, productName, rewardItemIndex, layerName, action, closeLayerAfterSelection)
{
	var hiddenIndex = "sweep" + rewardItemIndex;
	document.getElementById(hiddenIndex).value = productId;
	
	var hiddenIndex = "reward" + rewardItemIndex;
	document.getElementById(hiddenIndex).innerHTML = productName;

	if (closeLayerAfterSelection != 0 || closeLayerAfterSelection == "")
	{
		document.getElementById('searchResults').innerHTML='';
		HideContent('searchLayer');
	}
}

function hideSelectLists(selectList)
{
	for (var i = 0; i < selectList.length; i++)
	{
		toggleBox(selectList[i], 0);
	}
}

function showSelectLists(selectList)
{
	for (var i = 0; i < selectList.length; i++)
	{
		toggleBox(selectList[i], 1);
	}
}

function isUserInPool(poolid)
{
	if (document.getElementById('assignUserToPools') != null)
	{
		if (document.adminForm['assignUserToPools[]'].length != undefined)
		{
			for (var i = 0; i < document.adminForm['assignUserToPools[]'].length; i++)
			{
				if (document.adminForm['assignUserToPools[]'][i].value == poolid)
				{
					alert ('User has been assigned to this pool');
					return true;
				}
			}
		}
		else
		{
			if (document.getElementById('assignUserToPools').value == poolid)
			{
				alert ('User has been assigned to this pool');
				return true;
			}
		}
	}
	return false;
}

function isUserSelected(userId)
{
	if (document.getElementById('assignNominee') != null)
	{
		if (document.nominationForm == undefined) {
			if(document.adminForm['assignNominee[]'] != undefined){
				if (document.adminForm['assignNominee[]'].length != undefined)
				{
					for (var i = 0; i < document.adminForm['assignNominee[]'].length; i++)
					{
						if (document.adminForm['assignNominee[]'][i].value == userId)
						{
							alert ('User has been assigned to this nomination');
							return true;
						}
					}
				}
				else
				{
					if (document.getElementById('assignNominee').value == userId)
					{
						alert ('User has been assigned to this nomination');
						return true;
					}
				}
			}
		}
		else {
			if (document.nominationForm['assignNominee[]'].length != undefined)
			{
				for (var i = 0; i < document.nominationForm['assignNominee[]'].length; i++)
				{
					if (document.nominationForm['assignNominee[]'][i].value == userId)
					{
						alert ('User has been assigned to this nomination');
						return true;
					}
				}
			}
			else
			{
				if (document.getElementById('assignNominee').value == userId)
				{
					alert ('User has been assigned to this nomination');
					return true;
				}
			}
		}
	}
	return false;
}

function mousePosition() {
	document.getElementById('notes').style.top = '200';
	// posx and posy contain the mouse position relative to the document
	// Do something with this information
}

function displayNotes()
{
	document.write ('<a href="#" onmousedown="if(document.getElementById(\'notes\').style.visibility == \'hidden\'){ var box = \'1\'; }else{ var box=0;} toggleBox(\'notes\', box); mousePosition(); return false;">Notes</a>');
}

function checkSelectedOrderStatus(orderId)
{
	var statusArrayId = new Array();
	if (document.report['bulkUpdate[]'].length != undefined)
	{
		for (var i = 0, k = 0; i < document.report['bulkUpdate[]'].length; i++)
		{
			if (document.report['bulkUpdate[]'][i].checked == true)
			{
				statusArrayId[k] = document.report['currentStatus[]'][i].value;
				k++;
			}
		}

		for (var i = 0; i < statusArrayId.length; i++)
		{
			if (statusArrayId[0] != statusArrayId[i])
			{
				alert ('Only orders with the same status may be bulk updated');
				document.getElementById('status').disabled = true;
				document.getElementById('actionButton').disabled = true;
				break;
			}
			else
			{
				document.getElementById('status').disabled = false;
				document.getElementById('actionButton').disabled = false;
				xajax_getOrderWorkFlowToStatus(statusArrayId[0], orderId);
			}
		}
	}
	else
	{
		document.getElementById('status').disabled = false;
		document.getElementById('actionButton').disabled = false;
		statusArrayId[0] = document.report.currentStatus.value;
		xajax_getOrderWorkFlowToStatus(statusArrayId[0], orderId);
	}
}

function checkSelectedReferralStatus(referralId)
{
	var statusArrayId = new Array();
	for (var i = 0, k = 0; i < document.report['bulkUpdate[]'].length; i++)
	{
		if (document.report['bulkUpdate[]'][i].checked == true)
		{
			if (document.report['currentStatus[]'][i] != undefined)
			{
				statusArrayId[k] = parseInt(document.report['currentStatus[]'][i].value);
			}
			else
			{
				statusArrayId[k] = parseInt(document.getElementById('currentStatus').value);
			}

			k++;
		}
	}

	if (statusArrayId[1] != undefined)
	{
		for (var i = 1; i < statusArrayId.length; i++)
		{
			if (statusArrayId[0] != statusArrayId[i])
			{
				alert ('Only referrals with the same status may be bulk updated');
				document.getElementById('status').disabled = true;
				document.getElementById('actionButton').disabled = true;
				break;
			}
			else
			{
				document.getElementById('status').disabled = false;
				document.getElementById('actionButton').disabled = false;
				xajax_getWorkFlowToStatus(statusArrayId[0], referralId);
			}

		}
	}
	else
	{
		document.getElementById('status').disabled = false;
		document.getElementById('actionButton').disabled = false;
		xajax_getWorkFlowToStatus(statusArrayId[0], referralId);
	}
}

function getStatusAction()
{
	if (document.getElementById('status').options[document.getElementById('status').options.selectedIndex].value != '')
	{
		if (confirm("Please confirm you want to proceed with this action: "+document.getElementById('status').options[document.getElementById('status').options.selectedIndex].text))
		{
			document.report.submit();
		}
	}
	else
	{
		alert ('Please select a action to update your records to.');
	}
}

function checkPositiveNumber(num, field) {
    var numericExpression = /^[0-9]+$/;
    if(!num.match(numericExpression)){
        alert ('Value must be a positive number');
        document.getElementById(field).value = '';
    }
}