//<script>

//
// Iron Speed constants
//



//
// Iron Speed Utility functions
//

function Fev_FocusOnFirstFocusableFormElement()
{
	for (i = 0; i < document.forms.length; i++)
	{
		if (Fev_FocusOnFirstFocusableElement(document.forms[i])) return;
	}
}

function Fev_FocusOnFirstFocusableElement(objForm)
{
	if (objForm && (objForm != null))
	{
		for (i = 0; i < objForm.length; i++)
		{
			var objElement = objForm.elements[i];
			if (Fev_IsFocusableElement(objElement))
			{
				objElement.focus();
				return true;
			}
		}
	}
	return false;
}

function Fev_IsFocusableElement(objElement)
{
	if (objElement && (objElement != null) && Fev_IsElementEnabled(objElement))
	{
		var strType = Fev_GetElementType(objElement);
		if (strType != null)
		{
			if ((strType == "text") || (strType == "textarea") || (strType.toString().charAt(0) == "s"))
			{
				return false;
			}
		}
	}
	return false;
}

function Fev_IsElementEnabled(objElement)
{
	if (objElement && (objElement != null))
	{
		if (objElement.disabled == false)
		{
			return true;
		}
	}
	return false;
}

/*
 * returns true if the element responds directly to Enter key presses
 * return true for:
 *     Textarea, Select/Dropdown, Input Buttons (Submit/Button/Image/Reset),
 *     A tags
 * return false for everything else, including:
 *     Input type=[Radio/Checkbox/Text/Password/File]
 *     IMG tags
 */
function Fev_IsElementUsesEnterKey(objElement)
{
	if (objElement && (objElement != null))
	{
		var strType = Fev_GetElementType(objElement);
        switch (strType)
        {
            case "textarea":
            case "select":
            case "submit":
            case "button":
            case "image":
            case "reset":
                return true;
                break;
            case "radio":
            case "checkbox":
            case "text":
            case "password":
            case "file":
                return false;
                break;
            default: 
                break;
        }

		var strTagName = Fev_GetElementTagName(objElement);
		switch (strTagName)
		{
			case "textarea":
			case "select":
			case "a":
				return true;
				break;
			case "img":
			case "input":
			default:
				break;
		}
	}
	return false;
}

function Fev_GetElementType(objElement)
{
	if (objElement && (objElement != null))
	{
		if (objElement.type)
		{
			return objElement.type;
		}
	}
	return null;
}

function Fev_GetElementTagName(objElement)
{
	if (objElement && (objElement != null))
	{
		if (objElement.tagName)
		{
			return objElement.tagName;
		}
	}
	return null;
}

function Fev_GetEventSourceElement(objEvent)
{
	if (objEvent && (objEvent != null))
	{
		if (objEvent.srcElement)
		{
			return objEvent.srcElement;
		}
	}
	return null;
}

function Fev_IsEnterKeyPressed(bIgnoreTextAreaEvents)
{
	if (window.event)
	{
		var e = window.event;
		var bIsEnterKeyPress = ((e.keyCode == 13) && (e.type == 'keypress'));
		if (bIsEnterKeyPress)
		{
			if (bIgnoreTextAreaEvents && (bIgnoreTextAreaEvents == true))
			{
				var strType = Fev_GetElementType(Fev_GetEventSourceElement(e));
				if (strType == "textarea")
				{
					return false;
				}
			}
			return true;
		}
	}
	return false;
}

function Fev_IsFormSubmitKeyPress()
{
	if (window.event)
	{
		var e = window.event;
		var bIsEnterKeyPress = ((e.keyCode == 13) && (e.type == 'keypress'));
		if (bIsEnterKeyPress)
		{
			var eventSrc = Fev_GetEventSourceElement(e);
			if (!Fev_IsElementUsesEnterKey(eventSrc))
			{
				return true;
			}
		}
	}
	return false;
}

function Fev_ClickButton(buttonId)
{
	var button = document.all(buttonId);
	if (button == null) button = document.all(buttonId + '_V_Button');
	if (button && (typeof(button.click) == 'object'))
	{
		button.click();
		return true;
	}
	return false;
}

function Fev_HandleFormSubmitKeyPress(buttonId)
{
	//if (window.event && (window.event.returnValue == false))
	//	return false;

	if (Fev_IsFormSubmitKeyPress()) //if (Fev_IsEnterKeyPressed(true))
	{
		if (Fev_ClickButton(buttonId))
		{
			if (window.event)
			{
				//window.event.returnValue = false;
				window.event.cancelBubble = true;
			}
			return true;
		}
	}
	return false;
}



//
// Iron Speed Helper Variables
//

