//
var REC = new Array(1,1,1,1,1,1);
var imgRefresh = 0;

function verifyLogin(fid,fval,ftype)
{	// #0
	if(fval.value!='')
	{
		var re=/(\W)|(_)/;
		if (fval.value.search(re)!=-1)
		{createErrMess(fid,'Только латинские буквы и цифры без пробелов, не более 14 символов!');REC[0]=1;return;}
		else validateField(fid,fval,ftype);return;
	}
	else if(fval.value==''){createErrMess(fid,'Поле должно быть заполнено!<br/>&nbsp;&nbsp;');REC[0]=1;return;}
	else REC[0]=0;
}

function verifyPwd(fid,fval)
{	// #1
	if(fval==''){createErrMess(fid,'Поле должно быть заполнено!<br/>&nbsp;&nbsp;');REC[1]=1;return;}
	else if(fval!=''&&fval.length<6){createErrMess(fid,'Поле должно содержать не менее 6 символов!<br/>&nbsp;&nbsp;');REC[1]=1;return;}
	
	var re=/(\W)/;
	if (fval.search(re)!=-1)
	{createErrMess(fid,'Только латинские буквы и цифры без пробелов!');REC[1]=1;return;}
	else REC[1]=0;
}

function verifyConfPwd(fid)
{	// #2
	if(document.forms.registration.password.value!=document.forms.registration.conf_passw.value
		|| document.forms.registration.conf_passw.value=='')
	{createErrMess(fid,'Неверное подтверждение пароля!');REC[2]=1;return;}
	else REC[2]=0;
}

function verifyEmail(fid, fval, ftype)
{	// #3
	var errmsg = '';
	if(fval.value!='')
	{
		var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
		if (!document.forms.registration.email.value.match(re)) errmsg='Неправильный адрес!<br/>&nbsp;&nbsp;';
		else{validateField(fid, fval, ftype);return;}
	}
	else errmsg='Поле должно быть заполнено!<br/>&nbsp;&nbsp;';
	if(errmsg!=''){createErrMess(fid, errmsg);REC[3]=1; return;}
	else REC[3]=0;
}

function verifyCode(fid, fval, ftype)
{	// #4
	if(fval.value == ''){createErrMess(fid, 'Поле должно быть заполнено!<br/>&nbsp;&nbsp;');REC[4]=1; return;}
	else {validateField(fid,fval,ftype);return;}
	//else REC[4]=0;
}

document.forms.registration.agree.onclick = function ()
{
	if(this.checked==false)
	{createErrMess('agree_txt', '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Вы должны согласиться с условиями использования сервиса!');REC[5]=1;}
	else {restoreTxt('agree_txt'); REC[5]=0;}
}

function createErrMess(fid, errmsg)
{
	if(document.getElementById(fid))
	{
		document.getElementById(fid).innerHTML = errmsg;
		document.getElementById(fid).style.color = 'Red';
	}
}

function verifyOnSubmit() {window.setTimeout('verifyOnSubmit1()', 2000);}

function verifyOnSubmit1()
{	// #5
	var errors=0;
	var mess = "\nErrors:\n";
	if(document.forms.registration.agree.checked==false)
	{createErrMess('agree_txt', '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Вы должны согласиться с условиями использования сервиса!');REC[5]=1;}
	else REC[5]=0;

	for(var i=0;i<6;i++){errors=errors+REC[i]; mess += (i + "=>" + REC[i] + "\n");}


	if(errors==0) { /*alert("no errors"); */document.forms.registration.submit(); }
	else { alert('Заполните все поля и/или исправьте указанные ошибки!');return false; }
}

function resetForm(obj)
{
	obj.form.reset();
	var objInput = document.getElementsByTagName('input');
	var txtFields = new Array("login_txt", "pwd_txt", "confpwd_txt", "email_txt", "cap_txt", "agree_txt");
	for (var iCounter=0; iCounter<txtFields.length; iCounter++){restoreTxt(txtFields[iCounter]);}
	REC = new Array(1,1,1,1,1,1);
}

function restoreTxt(fid)
{
	var txt = '';
	switch (fid)
	{
		case "login_txt":
			txt = 'Только латинские буквы и цифры без пробелов, не более 14 символов.';
			break;		
		case "pwd_txt":
			txt = 'Только латинские буквы и цифры без пробелов, не менее 6 символов.';
			break;
		case "confpwd_txt":
			txt = '<br />';
			break;
		case "email_txt":
			txt = 'Укажите действующий e-mail для активации аккаунта. Мы не рассылаем спам и не передаем email третьим лицам.';
			break;
		case "cap_txt":
			txt = 'Введите код, указанный на картинке слева.';
			break;
		case "agree_txt":
			txt = '<br />';
			break;
	}
	if(document.getElementById(fid))
	{
		document.getElementById(fid).innerHTML = txt;
		document.getElementById(fid).style.color = '#000';
	}
}

function validateField(fid, fval, ftype)
{
	if (xmlHttp)
	{
		if (fval)
		{
			serverAddress = '/';
			var fcid = document.forms.registration.fcid.value;
			var fkey = document.forms.registration.fkey.value;
			var AJAX = document.forms.registration.AJAX.value;
			var field = fval.name;
			var val = fval.value;
			//alert("fcid=" + fcid + "&fkey=" + fkey + "&AJAX=" + AJAX + "&fid=" + fid + "&" + field + "=" + val);
			cache.push("AJAXCall=1" + "&fcid=" + fcid + "&fkey=" + fkey + "&AJAX=" + AJAX + "&fid=" + fid + "&" + field + "=" + val);
		}
	
		try
		{
			if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0)
			{
				var cacheEntry = cache.shift();
				xmlHttp.open("POST", serverAddress, true);
				xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				xmlHttp.onreadystatechange = handleRequestStateChange;
				xmlHttp.send(cacheEntry);
			}
				//else suggestWating();
		}
		catch (e)
		{
			displayError(e.toString());
		}
	}
}


function readResponse()
{
	var response = xmlHttp.responseText;
	// ошибка на сервере?
	if (response.indexOf("ERRNO") >= 0 
	|| response.indexOf("error:") >= 0
	|| response.length == 0)
	throw(response.length == 0 ? "Server error." : response);
	responseXml = xmlHttp.responseXML;
	xmlDoc = responseXml.documentElement;
	var fid = xmlDoc.getElementsByTagName("fid").item(0).firstChild.data;
	var reply = xmlDoc.getElementsByTagName("reply").item(0).firstChild.data;
	//  alert(reply);
	var findex = -1;
	if(fid=='login_txt') findex = 0;
	if(fid=='email_txt') findex = 3;
	if(fid=='cap_txt') findex = 4;
	//alert(reply);
	if(reply != 'ok')
	{
		createErrMess(fid, reply + '<br/>&nbsp;&nbsp;');
		if(findex == 4) document.getElementById('captchaImage').src = '/captcha.php?id=8&refresh=' + (imgRefresh++);
		REC[findex]=1;
	}
	else REC[findex]=0;
//  setTimeout("validateField();", 500);
}