/*
	lib.form.js
	version 0.0.0.3
*/
			
function FlagInvalidField(fieldNameID)
{
	try
	{
		var element = document.getElementById(fieldNameID);
		if(element)
		{
			element.style.backgroundColor = "#F99";
			var onClickStr = element.getAttribute("onclick");
			element.setAttribute("onclick", onClickStr+";UnflagInvalidField(this);");
		}
	} catch (ex) { HandleExceptionError(ex); }
}

function UnflagInvalidField(fieldElement)
{
	try
	{
		if(fieldElement.style.background != "#FFF")
			fieldElement.style.background = "#FFF";
	} catch (ex) { HandleExceptionError(ex); }
}

function NumberFieldValueChanged(element, strict, positiveOnly)
{
	try
	{
		if(!element)
			return;
		if(!IsNumeric(element.value, strict))
			element.value = "0";
		if(positiveOnly && element.value<0)
			element.value = "-1";
	} catch (ex) { HandleExceptionError(ex); }
}

function GetFormValue(elementID)
{
	try
	{
		return document.getElementById(elementID).value;
	} catch (ex) { HandleExceptionError(ex); }
}

function CreateForm(method,action)
{
	try
	{
		var newForm = document.createElement("FORM");
		document.body.appendChild(newForm);
		newForm.method = method;
		newForm.action = action;
		return newForm;
	} catch (ex) { HandleExceptionError(ex); }
}

function CreateFormInputElement(type,name,value)
{
	try
	{
		var newElement = document.createElement("input");
		newElement.setAttribute("type",type);
		newElement.setAttribute("name",name);
		newElement.setAttribute("value",value);
		return newElement;
	} catch (ex) { HandleExceptionError(ex); }
}

function GetListboxSelectedIndices(listElement)
{
	try
	{
		var options = listElement.options;
		var selectedOptionIndices = new Array();
		for(var i=0;i<options.length;i++)
		{
			if(options[i].selected)
				selectedOptionIndices[selectedOptionIndices.length] = i;
		}
		return selectedOptionIndices;
	} catch (ex) { HandleExceptionError(ex); }
}

function AppendListboxOption(listElement, newValue, newText)
{
	try
	{
		listElement.options[listElement.options.length] = new Option(newValue, newText);
	} catch (ex) { HandleExceptionError(ex); }
}

function IsNumeric(strString, strict)
{
	try
	{
		var strValidChars = "0123456789.-";
		var strChar;
		var blnResult = true;
		
		if (strString.length == 0) return false;
		
		if((strString == "-" || strString == "." || strString == "-." || strString == ".-") && strict)
		 return false;
		 
		//  test strString consists of valid characters listed above
		for (i = 0; i < strString.length; i++)
		  {
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1)
			 {
			 blnResult = false;
			 break;
			 }
		  }
		return blnResult;
	} catch (ex) { HandleExceptionError(ex); }
}

function HandleExceptionError(exception)
{
	alert("Exception Error: "+exception);
}