// Quiz Results page functions

function signin(signinForm)
{
	// Launch popunder for DDC
	popUndWindow();

	$(signinForm.name + '_errors').style.display = 'none';
	if ($F(signinForm.name + '_email').length == 0 || !isValidEmail($F(signinForm.name + '_email')))
	{	
		$(signinForm.name + '_errors').innerHTML = 'ERROR: You did not enter a valid e-mail address\n';
		$(signinForm.name + '_errors').style.display = 'block';
		return false;
	}
	if ($F(signinForm.name + '_password').length == 0)
	{	
		$(signinForm.name + '_errors').innerHTML = 'ERROR: You did not enter a password\n';
		$(signinForm.name + '_errors').style.display = 'block';
		return false;
	}

	var elements = Form.getInputs(signinForm);
	var postStr = Form.serializeElements(elements);

	$(signinForm.name + '_submit').disabled = 'true';
	$(signinForm.name + '_waiting').style.display = 'inline';
	
	for (i=0; i<elements.length; i++)
	{
		elements[i].disabled = 'true';
	}

	var url = '/method/signin';
	// notice the use of a proxy to circumvent the Same Origin Policy.
	
	new Ajax.Request(url, {
		method: 'post',
		parameters: postStr,
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON();
			if (json.result.error)
			{
				$(signinForm.name + '_errors').innerHTML = 'ERROR: ' + json.result.error;
				$(signinForm.name + '_errors').style.display = 'block';
				enableSigninForm(signinForm);
			}
			else if (json.result.success == 'true')
			{
				window.location = json.result.pg;
			}
			else
			{
				enableSigninForm(signinForm);
			}
		},
		onFailure: function(transport) {
			$(signinForm.name + '_errors').innerHTML = 'ERROR: An unknown error occurred';
			enableSigninForm(signinForm);	
		}
	});
}

function enableSigninForm(signinForm)
{
	var elements = Form.getInputs(signinForm);
	var postStr = Form.serializeElements(elements);

	$(signinForm.name + '_submit').disabled = '';
	$(signinForm.name + '_waiting').style.display = 'none';
	for (i=0; i<elements.length; i++)
	{
		elements[i].disabled = '';
	}
}

function isValidEmail(address) {
	if (address !== "")
	{
		var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
		if (regex.test(address)) 
		{
			return true;
		}
		else 
		{
			return false;
		}
	}
}
