function req_login(state, name, pass, email, sli, code, rp)
{
	if(inproc)
    {
        setTimeout("req_login('"+state+"','"+name+"','"+pass+"','"+email+"','"+sli+"','"+code+"', '"+rp+"')",1000);
	}
	else
    {
		inproc = true;
        var qs = 'state='+state+'&name='+encodeURIComponent(name);
        qs += '&pass='+encodeURIComponent(pass)+'&email='+encodeURIComponent(email);
        qs += '&sli='+sli+'&code='+code+'&rp='+rp;
		AJAXRequest.doAJAXGet('/source/login.php', qs, 'process_login', 'txt', false);
	}
}

function process_login()
{
    AJAXLOGIN=AJAXRequest.AJAXOBJ;
	if(AJAXLOGIN.readyState == 4){
		login_show_result(AJAXLOGIN.status);
	}
}

function login_show_result(status)
{
    inproc = false;

    if(document.getElementById('nl_submit'))
    {
        document.getElementById('nl_submit').disabled = true;
    }

    if(status == 200)
    {
        var result = AJAXLOGIN.responseText;

        if(result.substring(0,2) == 'c=')
        {
			top.location.href='/accounts/verify.php?'+result;
        }
        else if(result.substring(0,3) == 'rp=')
        {
            var parts = result.split('=');
            var bits = parts[1].split(';');

            switch(bits[0])
            {
			    case 'shop':
                    top.location.href = '/shop/?page='+bits[1]+'&mode='+bits[2]+'&prod='+bits[3]+'&rel='+bits[4];
                    break;
                case 'releases':
                    top.location.href = '/releases/?page='+bits[1]+'&mode='+bits[2]+'&arkey='+bits[3]+'&rel='+bits[4];
                    break;
            }
        }
		else
        {
            displayMSG('content', '', result, '');
        }
	}
    else
    {
		if(status == 404)
        {
            displayMSG('content', 'errorMSG', '<p><span class="errorText">Could not compelete. Page not found!</span></p>', 'block');
			resultObj.innerHTML = '';
		}
        else
        {
            displayMSG('content', 'errorMSG', '<p><span class="errorText">Could not compelete. XML problem occured!</span></p>', 'block');
		}
	}
}

function submit_login()
{
	var f = document.forms['regLoginForm'];
	var sli = ((f.rlsli.checked) ? 'y' : 'n');
    var name = f.rlname.value;
	var code = ((document.getElementById('code')) ? f.code.value : "");
    var rp = ((document.getElementById('rp')) ? f.rp.value : "");

    if(! /^\w{3,20}$/.test(name))
    {
        displayMSG('log_result', 'errorMSG', 'Your login name was invalid!', 'block');
		return false;
	}

	req_login('login', name, f.rlpass.value, null, sli, code, rp);
}

function submit_reg()
{
    clear_label();

    if(inproc)
    {
        displayMSG('log_result', 'errorMSG', 'Already processing a request!', 'block');
        setTimeout("submit_reg()",1000);
		return false;
	}
    else
    {
        displayMSG('log_result', '', '', 'none');
	}

	var f = document.forms['newLoginForm'];
    var nacc_name = f.nlname.value;
	var nacc_email = f.nlemail.value;

	if(! /^\w{3,20}$/.test(nacc_name))
    {
        displayMSG('log_result', 'errorMSG', 'Log in name must be 3 to 20 letters, numbers and underscore only!', 'block');
		return false;
	}

	if(! /^((?:(?:(?:[a-zA-Z0-9][\.\-\+_]?)*)[a-zA-Z0-9])+)\@((?:(?:(?:[a-zA-Z0-9][\.\-_]?){0,62})[a-zA-Z0-9])+)\.([a-zA-Z0-9]{2,6})$/.test(nacc_email))
    {
        displayMSG('log_result', 'errorMSG', 'Email address is invalid!', 'block');
		return false;
	}

    document.getElementById('nl_submit').disabled = true;

	req_login('register', nacc_name, null, nacc_email, null, null, null);

	return true;
}

function clear_label()
{
    displayMSG('log_result', '', '', 'none');
}