function formatmessage(czego) {
    return 'Nieprawidłowy format '+czego+' <div>Dozwolone znaki to cyfry i litery (bez polskich), 5-30 znaków</div>';
}

function fempty(value) {
    if( value == null || value == '' ) return true;
    return false;
}

function fformat(value) {
    re = /^[0-9a-zA-Z]{5,30}$/;
    if( re.test(value) ) return false;
    else return true;
}

function fok(field) {
    field.style.background = 'white';
}

function ferror(field, text) {
    field.style.background = 'red';
    t = document.getElementById('jserror')
    if( t) t.innerHTML = text;
    return false;
}


function validate(form) {
    with( form ) {
	if ( fempty(login.value)) 
	    return ferror( login, 'Nie podano nazwy użytkownika.');	
        else { 
	    if ( fformat(login.value) ) return ferror(login, formatmessage('loginu'));
	    else fok(login);
	}

	if ( fempty(password.value)) 
	    return ferror( password, 'Nie podano hasła.');	
        else {
	    if ( fformat(password.value) ) return ferror(password, formatmessage('hasła'));
	    else if ( password.value === login.value ) return ferror( password, 'Hasło nie może być takie jak login.');
	    else fok(password);
	}
	
	if ( fempty(rpassword.value) )  
	    return ferror( rpassword, 'Nie powtórzono hasła.');    	
	else {
	    if ( rpassword.value !== password.value )	return ferror( rpassword, 'Nie powtórzono poprawnie hasła');
	    else fok(rpassword);
	}
	
	if ( fempty(email.value) )   	return ferror( email, 'Nie podano adresu email.');    	else fok(email);
	
	if ( fempty(remail.value) ) 
	    return ferror( remail, 'Nie powtórzono adresu email.');
	else {
	    if ( remail.value !== email.value )	return ferror( remail, 'Nie powtórzono poprawnie adresu email');
	    else fok(remail);
	}
    }
    return true;
}    




