var req;

function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange() 
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
      response = req.responseXML.documentElement;

      method = response.getElementsByTagName('method')[0].firstChild.data;

      result = response.getElementsByTagName('result')[0].firstChild.data;
      eval(method + '(\'\', \''+result+'\')');
        } else {
            alert("Возникла проблема получения XML данных:\n" + req.statusText);
        }
    }
}

flagCheckName = 0;

function checkName(input, response)
{
  if (response != ''){ 
    // Response mode
    message   = document.getElementById('form_reg_error');
    if (response == '1'){
      message.innerHTML = 'Введённый Вами логин уже зарегистрирован на сервере. Попробуйте другой...';
      flagCheckName = 1;
    }else{
      message.innerHTML = '<span style="color:#00FF00;">Логин <b>'+document.form_reg.login.value+'</b> свободен!</span>';
      flagCheckName = 2;
    } 
  }else{
    // Input mode
    if(input != '') {
    	message   = document.getElementById('form_reg_error');
    	message.innerHTML = '<center><img src="thickbox/loadingAnimation.gif"></center>';
    	url  = '/xml/checkUserName.php?q='+input;
    	loadXMLDoc(url);
    }
    
  }

}

flagCheckRand = 0;

function checkRand(input, response)
{
  if (response != ''){ 
    // Response mode
    message   = document.getElementById('form_reg_error');
    if (response == '1'){
      message.innerHTML = 'Контрольное число введено неверно. Попробуйте ещё раз...';
      flagCheckRand = 1;
    }else{
      message.innerHTML = '<span style="color:#00FF00;">Контрольное число введено верно!</span>';
      flagCheckRand = 2;
    } 
  }else{
    // Input mode
    if(input != '') {
    	message   = document.getElementById('form_reg_error');
    	message.innerHTML = '<center><img src="thickbox/loadingAnimation.gif"></center>';
    	url  = '/xml/checkRand.php?q='+input;
    	loadXMLDoc(url);
    }
    
  }

}

function password_focus() {
	message   = document.getElementById('form_reg_error');
    message.innerHTML = '<span style="color:#0000FF;">Пароль. Поле обязательно для заполнения. Длина: 6-40 символов.</span>';
}

function password2_focus() {
	message   = document.getElementById('form_reg_error');
    message.innerHTML = '<span style="color:#0000FF;">Пароль (ещё раз). Поле обязательно для заполнения. Длина: 6-40 символов.</span>';
}

function userpic_focus() {
	message   = document.getElementById('form_reg_error');
    message.innerHTML = '<span style="color:#0000FF;">Аватар. Дополнительное поле. Размер картинки: 100x100px. Формат: jpg, gif, png.</span>';
}

function check_form() {
	if(document.form_reg.login.value=='Логин') {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Логин. Поле обязательно для заполнения.';
    	document.form_reg.login.focus();
    	return false;
	}
	if(document.form_reg.login.value.length<3) {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Логин. Минимальная длина - 3 символа.';
    	document.form_reg.login.focus();
    	return false;
	}
    var text = document.form_reg.login.value;
    var GoodChars = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_";
    var i = 0;
    for (i =0; i <= text.length-1; i++)	{
      if (GoodChars.indexOf(text.charAt(i)) == -1)	{
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Логин. Может состоять из больших и маленьких английских букв, цифр, подчеркивания.';
    	document.form_reg.login.focus();
    	return false;
      }
    }
	if(document.form_reg.password.value=='Пароль') {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Пароль. Поле обязательно для заполнения.';
    	document.form_reg.password.focus();
    	return false;
	}
	if(document.form_reg.password.value.length<6) {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Пароль. Минимальная длина - 6 символов.';
    	document.form_reg.password.focus();
    	return false;
	}
	if(document.form_reg.password2.value=='Пароль') {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Пароль (ещё раз). Поле обязательно для заполнения.';
    	document.form_reg.password2.focus();
    	return false;
	}
	if(document.form_reg.password2.value.length<6) {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Пароль (ещё раз). Минимальная длина - 6 символов.';
    	document.form_reg.password2.focus();
    	return false;
	}
	if(document.form_reg.password.value!=document.form_reg.password2.value) {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Пароль и Пароль (ещё раз) должны совпадать.';
    	document.form_reg.password.focus();
    	return false;
	}
	// captcha
	if(document.form_reg.rand.value=='') {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Контрольное число. Поле обязательно для заполнения.';
    	document.form_reg.rand.focus();
    	return false;
	}
	if(!check_form_main())
		return false;
	if(flagCheckName!=2) {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Выбранный Вами логин занят. Попробуйте другой...';
    	document.form_reg.login.focus();
    	return false;
	}
	if(flagCheckRand!=2) {
		message   = document.getElementById('form_reg_error');
    	message.innerHTML = 'Контрольное число введено неверно. Попробуйте ещё раз...';
    	document.form_reg.rand.focus();
    	return false;
	}
	message   = document.getElementById('form_reg_error');
   	message.innerHTML = '<span style="color:#00FF00;">Форма успешно заполнена!</span>';
	return true;
}
