function hideLoadingIndicator()
{
	if (document.getElementById ('loadingIndicator') != null)
	{
		changeClass ('loadingIndicator', 'hide');
	}
	if (document.getElementById ('loadingIndicator2') != null)
	{
		changeClass ('loadingIndicator2', 'show');
	}
}

function showLoadingIndicator ()
{
	if (document.getElementById ('loadingIndicator') != null)
	{
		changeClass ('loadingIndicator', 'show');
	}
	if (document.getElementById ('loadingIndicator2') != null)
	{
		changeClass ('loadingIndicator2', 'hide');
	}
}

function loadPage(page, idIn, runAfter)
{
	showLoadingIndicator ();
  Ext.Ajax.request ({
    'url':page,
    'success':function(req) {if (idIn != null) document.getElementById(idIn).innerHTML = req.responseText; if (runAfter != null) eval (runAfter); hideLoadingIndicator (); return req.responseText;},
    'failure':function(req) {showErrorMessage(req.responseText); hideLoadingIndicator ();}
    });
}

function evalPage(page, runAfter)
{
	showLoadingIndicator ();
	Ext.Ajax.request ({
		'url':page,
		'success':function(req){ eval(req.responseText); if (runAfter != null) eval (runAfter); hideLoadingIndicator (); return req.responseText; },
		'failure':function(req){ alert(req.responseText);  hideLoadingIndicator (); }
  	});
}

function getFormWithSessionBind (sessionBind)
{
	var forms = document.getElementsByTagName('form');
	for(i = 0;i < forms.length; i++)
	{
		var formSessionBind = forms[i].getAttribute ('session-bind');
		if (formSessionBind != null)
		{
			if (formSessionBind == sessionBind)
			{
				return forms[i];
			}
		}
	}
}

function setFocus ()
{
	var inputs = document.getElementsByTagName ('input');
	for(i = 0;i < inputs.length; i++)
	{
		var focusAttribute = inputs[i].getAttribute ('setfocushere');
		if (focusAttribute != null)
		{
			inputs[i].onFocus = inputs[i].setActive();			
			inputs[i].focus();			
			break;
		}
	}
}

function setFieldClassName (sessionBind, fieldName, className)
{
	var form = getFormWithSessionBind (sessionBind);
	if (form != null)
	{
		var field = form.elements[fieldName];
		if (field != null)
		{
			field.className = className;
		}
	}
}

function setFieldValue (sessionBind, fieldName, value)
{
	var forms = document.getElementsByTagName ('form');
	for(i = 0; i < forms.length; i++)
	{
		var formSessionBind = forms[i].getAttribute ('session-bind');
		if (formSessionBind != null)
		{
			if (formSessionBind == sessionBind)
			{
				var field = forms[i].elements[fieldName];
				if (field != null)
				{
					field.value = value;
				}
			}
		}
	}
}

function disableField (sessionBind, fieldName)
{
	var forms = document.getElementsByTagName ('form');
	for(i = 0; i < forms.length; i++)
	{
		var formSessionBind = forms[i].getAttribute ('session-bind');
		if (formSessionBind != null)
		{
			if (formSessionBind == sessionBind)
			{
				var field = forms[i].elements[fieldName];
				if (field != null)
				{
					field.disabled = true;
				}
			}
		}
	}
}

function enableField (sessionBind, fieldName)
{
	var forms = document.getElementsByTagName ('form');
	for(i = 0; i < forms.length; i++)
	{
		var formSessionBind = forms[i].getAttribute ('session-bind');
		if (formSessionBind != null)
		{
			if (formSessionBind == sessionBind)
			{
				var field = forms[i].elements[fieldName];
				if (field != null)
				{
					field.disabled = false;
				}
			}
		}
	}
}

function showErrorMessage (errorMessage)
{
  if ((errorMessage == null) || (errorMessage == ''))
  {
    errorMessage = 'An unknown error occurred, please try resubmitting your request.';
  }
  Ext.Msg.show({
     title:'Error',
     msg: errorMessage,
     buttons: Ext.Msg.OK,
     fn: closeErrorMessage,
     icon: Ext.MessageBox.ERROR
  });
}

function closeErrorMessage ()
{
  Ext.Msg.hide ();
}

function hide (id)
{
  var element = window.parent.document.getElementById (id);
  if (element != null)
  {
    element.className = 'hide';
  }
}

function show (id)
{
  var element = window.parent.document.getElementById (id);
  if (element != null)
  {
    element.className = 'show';
  }
}
