function getElementsByNameAlt(name, tag){
	if(!tag){
		tag = '*';
	}
	var elems = document.getElementsByTagName(tag);
	var result = [];
	for(var i=0; i < elems.length; i++) {
		attName = elems[i].getAttribute('name');
		if(attName == name) {
			result.push(elems[i]);
		}
	}
	return result;
}

function PopulateTextBoxDefaultValue(ID, defaultValue)
{
	var textBox = document.getElementById(ID);
	if (textBox)
	{
		if(textBox.value == "")
			textBox.value = defaultValue;
	}
}

function PopulateTextBoxNumeric(ID, value, defaultValue)
{
	if(defaultValue != null && value == "")
		value = defaultValue;
	
	var textBox = document.getElementById(ID);
	if (textBox)
	{
		if(textBox.value == "")
			textBox.value = Number_Format(value, textBox.getAttribute("format"));
		else
			textBox.value = Number_Format(textBox.value, textBox.getAttribute("format"));
	}
}

function PopulateTextBoxTimeOnly(ID, value, defaultValue)
{
	if(defaultValue != null && value == "")
		value = defaultValue;
	var timeTB = document.getElementById(ID);
	if (timeTB && value && value != "")
	{
		if (typeof(msPreviewPage) != "undefined")
			timeTB.value = value;
		else
			timeTB.value = Time_Format(new Date("01/01/2010 " + value));
	}
}

function PopulateTextBoxDateOnly(ID, value, defaultValue)
{
	if(defaultValue != null && value == "")
		value = defaultValue;
	var dateTB = document.getElementById(ID);
	if (dateTB && value && value != "")
	{
		if (typeof(msPreviewPage) != "undefined")
		{
			dateTB.value = value;
		}
		else
		{
			var dte = new Date(Date_Unformat(value));
			dateTB.value = Date_Format(dte);
		}
	}
}

function PopulateTextBoxDateTime(ID, value, defaultValue)
{
	var usingDefaultDateVal = false;
	if(defaultValue != null && value == "")
	{
		usingDefaultDateVal = true;
		value = defaultValue;
	}
	var timeTB = document.getElementById(ID + "_T");
	var dateTB = document.getElementById(ID + "_D");
	if (timeTB && dateTB)
	{
		var spaceIndex = value.indexOf(" ");
		var dateVal = value.substring(0, spaceIndex);
		var timeVal = value.substring(spaceIndex + 1);
		if (dateVal && dateVal != "")
		{
			if (typeof(msPreviewPage) != "undefined")
			{
				dateTB.value = value;
			}
			else
			{
				var dteToUse;
				if (usingDefaultDateVal)
					dteToUse = new Date(dateVal);
				else
					dteToUse = new Date(Date_Unformat(dateVal));
				dateTB.value = Date_Format(dteToUse);
			}
		}
		if (timeVal && timeVal != "")
		{
			if (typeof(msPreviewPage) != "undefined")
				timeTB.value = value;
			else	
				timeTB.value = Time_Format(new Date("01/01/2010 " + timeVal));
		}
	}
}

function PopulateTextAreaDefaultValue(ID, defaultValue)
{
	var textArea = document.getElementById(ID);
	if (textArea)
	{
		if(textArea.value == "")
			textArea.value = defaultValue;
	}
}

function PopulateCheckBox(ID, value, defaultValue)
{
	var checkBox = document.getElementById(ID);
	if(!checkBox)
		return;
	if(defaultValue != null && value == "")
		value = defaultValue;
	if(value != "")
		checkBox.checked = true;
	else
		checkBox.checked = false;
}

function PopulateRadioButton(ID, value, defaultValue)
{
	var radButtons;
	if (!document.getElementsByName) {
		radButtons = getElementsByNameAlt(ID, "INPUT");
	}
	else {
		radButtons = document.getElementsByName(ID);
	}
	if (radButtons)
	{
		if(defaultValue != null && value == "")
			value = defaultValue;
		for(var i = 0; i < radButtons.length; i++)
		{
			if(radButtons[i].AprimoText == value)
			{
				radButtons[i].checked = true;
				FireEvent(radButtons[i].id, "onclick");
				break;
			}
		}
	}
}

function PopulatePicklist(ID, value, defaultValue)
{	
	var usingDefaultValue = false;
	
	if(defaultValue != null && value == "")
	{
		usingDefaultValue = true;
		value = defaultValue;
	}
	var picklist = document.getElementById(ID);
	if (picklist)
	{
		var selectedOptionFound = false;
		for(var i = 0; i < picklist.options.length; i++)
		{
			if(picklist.options[i].text == value)
			{
				selectedOptionFound = true;
				picklist.options[i].selected = true;
				break;
			}
		}
		
		if (!selectedOptionFound && value != "" && !usingDefaultValue)
			PopulatePicklist(ID, "", defaultValue);
	}
}

function UpdateFormFieldNumberFormat(ID)
{
	if (userDecSep && userThdSep)
	{
		var elm = document.getElementById(ID);
		if (elm)
		{		
			var dType = elm.DataType;
			if (dType && dType == "dtSingleDouble")
			{
				var fmt = elm.format;
				var serverdecimal = "";
				var thousandseparator = "";
				var userdecimal = "";
				var precision = "";
				var arr = fmt.split("|");
				
				if (arr.length > 1) 
				{
					fmt = arr[0];
					serverdecimal = arr[1];
					if(arr.length > 2)
						thousandseparator = arr[2];
				}

				var newFormat = "";
				
				//Identify the format's decimal character
				for (i=0; i < fmt.length; i++) {
					if ((fmt.charAt(i) != "-") && 
						(fmt.charAt(i) != "+") && 
						(isNaN(fmt.charAt(i)))) {
							newFormat = newFormat + userDecSep;
							userdecimal = fmt.charAt(i);
							precision = fmt.substring(i+1);
					}
					else { newFormat = newFormat + fmt.charAt(i); }
				}
				if (arr.length > 1)
				{
					newFormat = newFormat + "|" + serverdecimal;
					if (arr.length > 2)
						newFormat = newFormat + "|" + userThdSep;
				}
				elm.format = newFormat;
			}
		}
	}
}

function PopulateMultiSelect(ID, value, defaultValue)
{
	if(defaultValue != null && value == "")
		value = defaultValue;
	var multiSelect = document.getElementById(ID);
	var vals = value.split(",");
	if(multiSelect != null && multiSelect.tagName == "SELECT")
	{
		for(var i = 0; i < multiSelect.options.length; i++)
		{
			for(var x = 0; x < vals.length; x++)
			{
				if(multiSelect.options[i].value == parseInt(vals[x]))
				{
					multiSelect.options[i].selected = true;
					break;
				}
			}
		}
	}
	else
	{
		var checkBoxes;
		if (!document.getElementsByName) {
			checkBoxes = getElementsByNameAlt(ID, "INPUT");
		}
		else {
			checkBoxes = document.getElementsByName(ID);
		}
		if (checkBoxes)
		{
			for(var i = 0; i < checkBoxes.length; i++)
			{
				for(var x = 0; x < vals.length; x++)
				{
					if(checkBoxes[i].value == parseInt(vals[x]))
					{
						checkBoxes[i].checked = true;
						break;
					}
				}
			}
		}
	}
}

