﻿//
//	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)
{
	switch (type)
	{
		case "load":

			if (result.message)
				alert(result.message);

			if (request.formNode)
				genericFormResponseEnableForm(request.formNode);

			if (result.reset)
				request.formNode.reset();

			if (result.windowOpen)
			{
				switch (typeof result.windowOpen)
				{
					case "array":
						var w = window.open(result.windowOpen[0], result.windowOpen[1], result.windowOpen[2], result.windowOpen[3]);
						break;
					
					default:
						var w = window.open(result.windowOpen)
						break;
				}
			}

			if (result.eval)
				eval(result.eval);

			if (result.redirect)
			{
				window.location.href = result.redirect;
				break;
			}

			if (result.reload)
			{
				window.location.reload();
				break;
			}

			break;

		case "error":
			alert("An error occurred when attempting to perform this action. Please try again later.");
			if (request.formNode)
				genericFormResponseEnableForm(request.formNode);
			break;
			
		default:
			alert("Unhandled form result type: "+ type);
			if (request.formNode)
				genericFormResponseEnableForm(request.formNode);
			break;
	}
}


collectionFormResponseHandler = function (type, result, evt, request)
{

	switch (type)
	{
		case "load":
			if (result.success)
			{
				IncreaseCollectionCount();
				HideCart(1);
			}
			break;
	}
	return genericFormResponseHandler(type, result, evt, request);

}


collectionDeleteFormResponseHandler = function (type, result, evt, request)
{

	switch (type)
	{
		case "load":
			if (result.success)
			{
				HideCollectionItem(result.del);
				DecreaseCollectionCount();
				HideCart(1);
			}
			break;
	}
	return genericFormResponseHandler(type, result, evt, request);

}

collectionFormSubmitHandler = genericFormSubmitHandler;
//collectionFormResponseHandler = genericFormResponseHandler;

collectionDeleteFormSubmitHandler = genericFormSubmitHandler;

signupFormSubmitHandler = genericFormSubmitHandler;
signupFormResponseHandler = genericFormResponseHandler;

contactFormSubmitHandler = genericFormSubmitHandler;
contactFormResponseHandler = genericFormResponseHandler;

quickContactFormSubmitHandler = genericFormSubmitHandler;
quickContactFormResponseHandler = genericFormResponseHandler;

newsletterFormSubmitHandler = genericFormSubmitHandler;
newsletterFormResponseHandler = genericFormResponseHandler;

loginFormSubmitHandler = genericFormSubmitHandler;
loginFormResponseHandler = genericFormResponseHandler;

logoutFormResponseHandler = genericFormResponseHandler;

tipFormSubmitHandler = genericFormSubmitHandler;
tipFormResponseHandler = 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 = "";
}

function logoutOnClick (evt)
{
	evt.preventDefault();

	var content = {
		"dojo.submit.action": "logout"
	};

	var x = dojo.io.bind({
		url: "dojo.asp",
		method: "POST",
		content: content,
		handle: logoutFormResponseHandler,
		mimetype: "text/json",
		sendTransport: true
	});
}

function forgotOnClick (evt)
{
	evt.preventDefault();

	var email = prompt("Please enter your email address...", "");
	if (email === null)
		return;

	var content = {
		"dojo.submit.action": "forgot-password",
		"email": email
	};

	var x = dojo.io.bind({
		url: "dojo.asp",
		method: "POST",
		content: content,
		handle: logoutFormResponseHandler,
		mimetype: "text/json",
		sendTransport: true
	});
}

// JScript File


