//###############################################################################
//#
//# Copyright © 2002 Simon Dowdell 
//# Filename     : formfunctions.js
//# Author       : Simon Dowdell
//# Date Written : 1st May 2002
//# Purpose      : Javascript form functions
//# Objects      : None
//#
//#                             File Change History
//###############################################################################

var mstrDefaultForm = "Standard";																																															

function GetFormValue(FieldName, FormName) {
  var i;
  var sValue = '';
	var objFormField = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (!IsUndefined(objFormField)) {
	
		if ("select-one"==objFormField.type || "text"==objFormField.type || "password"==objFormField.type || "hidden"==objFormField.type || "textarea"==objFormField.type) {
		  sValue = objFormField.value;
		}
		else if ("select-multiple"==objFormField.type) {
      for (i=0; i < objFormField.length; i++)
        if (objFormField.options[i].selected)
          sValue += objFormField.options[i].value+',';
		}
		else if (isNaN(objFormField.length) && IsChecked(objFormField) ) {
		  sValue = objFormField.value;
		}
		else {
			for (var intLoop=1; intLoop <= objFormField.length; intLoop++) {
				if (objFormField[intLoop-1].checked) sValue = objFormField[intLoop-1].value;
			}
		}
	}
	return sValue;
}

function SetFormValue(FieldName, FieldValue, FormName) {
	var objDocument = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (!IsUndefined(objDocument)) objDocument.value=FieldValue;
	return true;
}

function GetSelectElementIndex(FieldName,FormName) {
	return  document.forms[SelectFormName(FormName)].elements[FieldName].selectedIndex;
}

function SetSelectedElementIndex(FieldName,IndexPosition,FormName) {
	document.forms[SelectFormName(FormName)].elements[FieldName].selectedIndex = IndexPosition;
	return true;
}

function IsBlank(TargetValue) {
	var vntResult;
	var strPattern = /[^ ]/;
	if (null==TargetValue) vntResult=null
	else vntResult = TargetValue.match(strPattern);
	if (null==vntResult) return true
	else return false;
}

function IsNumeric(ValueToCheck) {	
  var blnReturn = !isNaN(Number(ValueToCheck))
  if (blnReturn) {
	var strValueToCheck = Trim(ValueToCheck)
	if (strValueToCheck.lastIndexOf(".")==strValueToCheck.length-1) blnReturn = false
  }	
  return blnReturn;
}

function Trim(TargetValue) {
 	var regexpstring = new RegExp("[ ]","g")
	return TargetValue.replace(regexpstring,"")
}

function IsUndefined(Value) {
	if ("undefined"==Value || "undefined"==typeof Value) return true
	else return false;
}

function IsRadioButtonChecked(FieldName,FormName) {
	return document.forms[SelectFormName(FormName)].elements[FieldName].checked;
}

function CheckRadioButton(FieldName,Position,FormName) {
	var objElement = document.forms[SelectFormName(FormName)].elements[FieldName]
	objElement[Position].checked=true;
	return false;
}

function CheckAllRadioButtons(FieldName,FormName) {
	var objElement = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (IsUndefined(objElement.length)) objElement.checked=true
	else {
		for (var intPos=0;intPos<objElement.length;intPos++) {
			objElement[intPos].checked=true;
		}
	}
	return false;
}

function UnCheckAllRadioButtons(FieldName,FormName) {
	var objElement = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (IsUndefined(objElement.length)) objElement.checked=false;
	else {
		for (var intPos=0;intPos<objElement.length;intPos++) {
			objElement[intPos].checked=false;
		}
	}
	return false;
}
function UnCheckRadioButton(FieldName,Position,FormName) {
	var objElement = document.forms[SelectFormName(FormName)].elements[FieldName]
	objElement[Position].checked=false;
	return false;
}
function CountCheckedRadioButtons(FieldName,FormName) {
	var intCount =0;
	var objElement = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (IsUndefined(objElement.length)) {
		if (objElement.checked==true) intCount=1;
	}
	else {
		for (var intPos=0;intPos<objElement.length;intPos++) {
			if (objElement[intPos].checked==true) intCount++;
		}
	}
	return intCount;
}
function CountSelectedCheckBoxes(FieldName,FormName)
{
	var intCount = 0;
	var objElement = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (!IsUndefined(objElement))
	{
	    if (IsUndefined(objElement.length))
	    {
		    if (objElement.checked==true)
		        intCount=1;
	    }
	    else
	    {
		    for (var intPos=0;intPos<objElement.length;intPos++)
		    {
			    if (objElement[intPos].checked==true)
			        intCount++;
		    }
	    }
	}
	return intCount;
}

function SubmitForm(TargetPage,FormName) {
	var objForm  = document.forms[SelectFormName(FormName)]
	objForm.action=TargetPage;
	objForm.submit();
	return true;
}

function SelectFormName(FormName) {
	if ("undefined"==FormName || typeof(FormName)=="undefined") return mstrDefaultForm
	else return FormName;
}

function SetFocus(FieldName, FormName) {
	if (!IsBlank(FieldName)) {
		var objFormField = document.forms[SelectFormName(FormName)].elements[FieldName];
		if (!IsUndefined(objFormField))
		{
		    if ("hidden"==objFormField.type) null 
		    else if (IsUndefined(typeof objFormField.length)) objFormField.focus()
		    else {
			    if ("select-one"==objFormField.type || "text"==objFormField.type || "textarea"==objFormField.type) objFormField.focus() 
			    else if (IsUndefined(typeof Element)) objFormField[0].focus()
			    else objFormField[Element].focus();
		    }
		}
	}
	return true;
}

//**UseDefaultIfBlank  ------------------------------------------------------------------------------------------------------------------------------
function UseDefaultIfBlank(Item,DefaultValue) {
	if (IsUndefined(Item)) return DefaultValue
	else return Item;
}

function EnableFormField(FieldName,FormName) {
	var objFormField = document.forms[SelectFormName(FormName)].elements[FieldName]
	objFormField.disabled=false;
	return true;
}

function DisableFormField(FieldName,FormName) {
	var objFormField = document.forms[SelectFormName(FormName)].elements[FieldName]
	objFormField.disabled=true;
	return true;
}

//**UseDefaultIfBlankOrNull  ------------------------------------------------------------------------------------------------------------------------------
function UseDefaultIfBlankOrNull(Item,DefaultValue) {
	if (IsUndefined(Item) ||  null==Item) return DefaultValue
	else return Item;
}

function IsChecked(FieldName,FormName) {
	var blnReturn=false
	var objFormField = document.forms[SelectFormName(FormName)].elements[FieldName]
	if (!IsUndefined(objFormField)) {
		if (objFormField.checked==true) blnReturn = true;
	}
	return blnReturn;
}