var m, p, cp, q;
var query;
var good_name = false;
var good_mail = false;
var good_password = false;
var good_conf_password = false;

function hide_error(id) {
	document.getElementById(id).style.display = "none";
}

function show_error(id) {
	document.getElementById(id).style.display = "block";
}

function emailError(en) {
	if(document.getElementById('email').value != "") {
		if(en == 1) {
			document.getElementById('mail_error').style.display = "block";
		}
		else if(en == 2) {
			document.getElementById('mail_error_2').style.display = "block";
		}
	}
}

function confError() {
	if(document.getElementById('conf_password').value != "") {
		document.getElementById('cpassword_error').style.display = "block";
	}
}

function keypressed() {
	clearTimeout(m);
	m = setTimeout("check_email()", 500);
}

function nameEvent() {
	if(document.getElementById('name').value != "") {
		good_name = true;
		check_all();
	}
	else {
		good_name = false;
	}
}

function mailEvent() {
	hide_error('mail_error');
	hide_error('mail_error_2');
	clearTimeout(m);

	if(document.getElementById('email').value != "") {
		m = setTimeout("check_email()", 1000);
	}
	else {
		clearTimeout(m);
		good_mail = false;
		check_all();
	}
}

function passwordEvent() {
	hide_error('password_error');
	hide_error('password_error_2');

	clearTimeout(p);

    if(document.getElementById('password1').value != "") {
    	p = setTimeout("check_password()", 1000);
    }
    else {
    	clearTimeout(p);
    	good_password = false;
    	check_all();
    }
}

function confEvent() {
	hide_error('cpassword_error');

	clearTimeout(cp);

	if(document.getElementById('conf_password').value != "") {
		cp = setTimeout("conf_password()", 1000);
	}
	else {
		good_conf_password = false;
		check_all();
	}
}

function check_email() {
	var email_reg = /^[0-9a-z._\-]+@[0-9a-z_\-]+[.[0-9a-z_\-]+]*.[a-z]{2,4}$/i;
	var email = document.getElementById('email').value;
	var coincidence = email_reg.test(email);

	if(coincidence == true) {
		check_email_in_db();
	}
	else {
		good_mail = false;
		emailError(1);
	}

	check_all();
}

function check_email_in_db() {
	var email = document.getElementById('email').value;
	var url = 'http://funburg.ru/ajax/validate.php?email=' + email + '&some=' + Math.random();

	query = createRequestObject();
	query.open("GET", url, true);
	query.onreadystatechange = readyState;
	query.send(null);
}

function readyState() {
 	if(query.readyState == 4) {
		if(query.responseText == "not exist") {
       		good_mail = true;
			check_all();
		}
		else {
			good_mail = false;
			emailError(2);
		}
	}
}

function check_password() {
	var password = document.getElementById('password1').value;
	var req = /^[0-9a-z]+$/i;
	var coincidence = req.test(password);

	if(document.getElementById('conf_password').value != "") {
		conf_password();
	}

	if(password != "") {
		if(coincidence == true) {
			if(password.length < 4) {
				good_password = false;
				passwordError(1);
				check_all();
			}
			else {
				good_password = true;
				conf_password();
				check_all();
			}
		}
		else {
			good_password = false;
			passwordError(2);
			check_all();
		}
	}
}

function conf_password() {
 	if(document.getElementById('conf_password').value != "") {
 		if(document.getElementById('password1').value == document.getElementById('conf_password').value) {
    		good_conf_password = true;
    		check_all();
 		}
 		else {
 			confError();
 			good_conf_password = false;
 			check_all();
 		}
 	}
}

function passwordError(en) {
	if(document.getElementById('password1').value != "") {
		if(en == 1) {
			document.getElementById('password_error').style.display = "block";
		}
		else if(en == 2) {
			document.getElementById('password_error_2').style.display = "block";
		}
	}
}

function check_all() {
	if(good_name && good_mail && good_password && good_conf_password) {
 		var button = document.getElementById('button');

 		button.src = "http://funburg.ru/images/reg_button.jpg";
 		button.disabled = false;
	}
	else {
		var button = document.getElementById('button');

 		button.src = "http://funburg.ru/images/reg_button_inactive.jpg";
 		button.disabled = true;
	}
}

function mailEvent2() {
   	clearTimeout(q);

   	if(document.getElementById('email').value != "") {
   		q = setTimeout('mailCheck()', 1000);
   	}
   	else {   		good_mail = false;
		checkAll2();   	}
}

function mailCheck() {
	hide_error('mail_rec_error');
	hide_error('mail_rec_error_2');

	if (document.getElementById('email').value != "") {
		var email_reg = /^[0-9a-z._\-]+@[0-9a-z_\-]+[.[0-9a-z_\-]+]*.[a-z]{2,4}$/i;
		var email = document.getElementById('email').value;
		var coincidence = email_reg.test(email);

		if(coincidence == true) {
			var url = 'http://funburg.ru/ajax/validate.php?email=' + email + '&some=' + Math.random();

			query = createRequestObject();
			query.open("GET", url, true);
			query.onreadystatechange = readyState2;
			query.send(null);
		}
		else {
			good_mail = false;
			emailError2(1);
		}
	}
	else {		good_mail = false;
		checkAll2();
	}
}

function readyState2() {
 	if(query.readyState == 4) {
		if(query.responseText == "exist") {
       		good_mail = true;
       		checkAll2();
		}
		else {
			good_mail = false;
			emailError2(2);
		}
	}
}

function emailError2(en) {
	if(en == 1) {
		document.getElementById('mail_rec_error').style.display = "block";
		checkAll2();
	}
	else if(en == 2) {
		document.getElementById('mail_rec_error_2').style.display = "block";
		checkAll2();
	}
}

function checkAll2() {
	if(good_mail) {
		var button = document.getElementById('button');

 		button.src = "http://funburg.ru/images/recove_pass.jpg";
 		button.disabled = false;
	}
	else {
		var button = document.getElementById('button');

 		button.src = "http://funburg.ru/images/recove_pass_inactive.jpg";
 		button.disabled = true;
	}
}