$(document).ready(function(){
	if($("#forgot_form").length){
		action_form = $("#forgot_form").get(0);
		$("#forgot_form").bind("submit", check_reminder);
	}

	if($("#submit_but").length){
		action_form = $("#login_form").get(0);
		$("#submit_but").bind("click", check_user_data);
	}
});

function check_user_data(){
	var form = action_form;
	var login = trimAll( form.username.value );
	var passw = trimAll( form.password.value );
    if(!login){
    	show_error( "Please fill in the username field.", 'username' );
    	return false;
    }
    if(login.length<3){
    	show_error( "Too short username.", 'username' );
    	return false;
    }
    if(!is_valid_login(login)){
    	show_error( "Invalid chars in username.", 'username' );
    	return false;
    }
    if(!passw){
    	show_error( "Please fill in the password field.", 'password' );
    	return false;
    }
    if(passw.length<3){
    	show_error( "Too short password.", 'password' );
    	return false;
    }

	var rnd = Math.floor( Math.random()*10000 );
	$.ajax({
	    url: '_login_.php?' + rnd,
	    data: "login=" + login + "&passw=" + passw,
	    type: 'POST',
	    success: change_action,
	    async: false
	});

	return false;
}

function check_reminder(){
	var form = action_form;
	var login = trimAll( form.username.value );
	var mail = trimAll( form.email.value );
    if(!login){
    	show_error( "Please fill in the Nickname field.", 'username' );
    	return false;
    }
    if(login.length<3){
    	show_error( "Too short Nickname.", 'username' );
    	return false;
    }
    if(!is_valid_login(login)){
    	show_error( "Invalid chars in username.", 'username' );
    	return false;
    }
    if(!mail){
    	show_error( "Please fill in the Email field.", 'email' );
    	return false;
    }
    if(!is_valid_email(mail)){
    	show_error( "Invalid email adress format.", 'email' );
    	return false;
    }

	var rnd = Math.floor( Math.random()*10000 );

	$.ajax({
	    url: '_forgot-password_.php?' + rnd,
	    data: params = "login=" + login + "&email=" + mail,
	    type: 'POST',
	    success: change_action,
	    async: false
	});

	return false;
}

function change_action(js){
	var form = action_form;
	var focusEl = false;
	eval(js);
	if( error ){
		show_error( error, focusEl );
	}
	else{
		form.action = action;
		form.submit();
	}
}

function show_error( errorMsg, focusEl ){
	var form = action_form;
	document.getElementById('msg').innerHTML = errorMsg;
	if(focusEl) form[focusEl].focus();
}

function is_valid_login(str){
	return str.match(/^[a-zA-Z0-9_-]{3,255}$/)
}

function is_valid_email(str)
{
	return str.match(/^(\w|-|\d|_)+(\.(\w|-|\d|_)+)*@(\w|-|\d)+(\.(\w|-|\d)+)+$/)
}

function trimAll( strValue ) {
		var objRegExp = /^(\s*)$/;
		if(objRegExp.test(strValue)) {
		   strValue = strValue.replace(objRegExp, '');
		   if( strValue.length == 0)
		      return strValue;
		}
		objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
		if(objRegExp.test(strValue)) {
		    strValue = strValue.replace(objRegExp, '$2');
		 }
		return strValue;
}


