/**
*	==========================================
*	Copyright 2007 by www.randomsig.net
*
*	@author:        Nicolas Oelgart
*	@copyright:     www.randomsig.net
*	@last mod:      29th January 2007
*	==========================================
*/

var loginform;


function restore_form()
{
	fetch_obj('login').innerHTML = loginform;
}


function verify_login(form)
{
	loginform = fetch_obj('login').innerHTML;
	
	var username = trim(form.username.value);
	var password = trim(form.password.value);
	
	if (username == '' || password == '')
	{
		alert('Please enter a username and password.');
		return false;
	}
	
	var xhttp = create_req_object();
	var login = fetch_obj('login');
	var remember = fetch_obj('remember').checked;
	
	toggle_loading(true);
	fade_background(true);
	
	if (!xhttp)
	{
		return true; // No ajax supported... submit form normally.
	}
	
	if (typeof SCRIPT_URL == 'undefined')
	{
		SCRIPT_URL = '';
	}
	
	xhttp.open('POST', host + '/ajax/login/');
	xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xhttp.onreadystatechange = function()
	{
		if (xhttp.readyState == 1)
		{
			login.innerHTML = 'Verifying log in, please wait...';
		}
		else if (xhttp.readyState == 4 && xhttp.status == 200)
		{
			var response = xhttp.responseXML;
			var status   = getNodeValue(response, 'status');
			var realname = getNodeValue(response, 'realname');
			var userhash = getNodeValue(response, 'userhash');
			var sessionid = getNodeValue(response, 'sessid');

			switch (parseInt(status))
			{
				default:
				case 0: // Wrong username
					login.innerHTML = '<p><strong>Login failed</strong><br />Wrong username or password.<br /><br /><a href="#" onclick="restore_form(); return false;">Try again</a></p>';
					break;
				
				case 1:
					// Confirm email?
					break;
				
				case 2: // OK
					if (typeof LOGIN_REDIRECT != 'undefined')
					{
						window.location = window.location + window.top.location.toString().match(/[a-f0-9]{32}/) ? '' : '?s='+ sessionid;
					}

					login.innerHTML = '<strong>Welcome, '+ realname +'!</strong><br />' +
									'<a href="'+ SCRIPT_URL +'/settings/">Account settings</a><br />' +
									'<a href="'+ SCRIPT_URL +'/logout/" onclick="return confirm_question(\'Are you sure you want to log out?\');">Log out</a>';
					break;

				case 3:
					login.innerHTML = 'You entered 3 or more <br /> times' +
										'a wrong password.<br />' +
										'Please wait 15 minutes.<br />' +
										'<a href="#" onclick="restore_form(); return false;">Try again</a>';
					break;
			}
			fade_background();
			toggle_loading();
		}
	}
	xhttp.send('username='+ username +'&password='+ password +'&remember='+ (remember ? 1 : 0));
	
	return false;
}
