//
//	form handlers

genericFormSubmitDisableForm = function (form)
{
	var e;
	for (var i = form.elements.length; i--;)
	{
		e = form.elements[i];
		
		switch (e.type)
		{
			case "hidden":
				break;
			
			default:
				if (!e.disabled)
				{
					e._genericFormSubmit_enableMe = true;
					e.disabled = true;
				}
				break;
		}
	}
}

genericFormSubmitHandler = function (form)
{
	window.setTimeout((function () { genericFormSubmitDisableForm(form); }), 1);
	return true;
}

genericFormResponseEnableForm = function (form)
{
	var e;
	for (var i = form.elements.length; i--;)
	{
		e = form.elements[i];
		
		switch (e.type)
		{
			case "hidden":
				break;
			
			default:
				if (e.disabled && e._genericFormSubmit_enableMe) 
				{
					e._genericFormSubmit_enableMe = false;
					e.disabled = false;
				}
				break;
		}
	}
}

genericFormResponseHandler = function (type, result, evt, request)
{
	genericFormResponseEnableForm(request.formNode);

	switch (type)
	{
		case "load":

			if (result.message)
				alert(result.message);

			if (result.redirect)
				window.location.href = result.redirect;

			if (result.reload)
				window.location.reload();

			if (result.reset)
				request.formNode.reset();

			if (result.windowOpen)
			{
				switch (typeof result.windowOpen)
				{
					case "array":
						window.open(result.windowOpen[0], result.windowOpen[1], result.windowOpen[2], result.windowOpen[3]);
						break;
					
					default:
						window.open(result.windowOpen)
						break;
				}
			}

			break;

		case "error":
			alert("An error occurred when attempting to perform this action. Please try again later.");
			break;
			
		default:
			alert("Unhandled form result type: "+ type);
			break;
	}
}

memberLoginFormSubmitHandler = genericFormSubmitHandler;
memberLoginFormResponseHandler = genericFormResponseHandler;

searchSiteFormSubmitHandler = genericFormSubmitHandler;
searchSiteFormResponseHandler = genericFormResponseHandler;

contactFormSubmitHandler = genericFormSubmitHandler;
contactFormResponseHandler = genericFormResponseHandler;

//
//	other stuff

clearMe = function (inp, val)
{
	//
	//	clears the value of given input node (inp) if the current value is equal to (val)

	if (inp.value == val)
		inp.value = "";
}

