

	// проверка емэйл
	function IsValidEml (data) {
		data += "";
		if( data.length == 0 ) {
			alert("Укажите ваш email-адрес, пожалуйста.");
			document.forms['reg'].email.focus();
			return 0;
		}
		var comAt = "@";
		if( data.indexOf(comAt, 0) == -1 ) {
			alert("В email-адресе должен присутствовать знак - @.");
			document.forms['reg'].email.focus();
			return 0;
		}
		var Point = ".";
		if( data.indexOf(Point, 0) == -1 ) {
			alert("В email-адресе должна присутствовать точка.");
			document.forms['reg'].email.focus();
			return 0;
		}
		return 1;
	}

	// проверка имени
	function IsValidFio(data) {
		if( data.length == 0 ) {
			alert("Укажите ваше имя, пожалуйста.");
			document.forms['reg'].fio.focus();
			return 0;
		}
		var latrus = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя ";
		for( var i = 0; i < data.length; i++ ) {
			thisChar = data.substring(i, i+1);
			if( latrus.indexOf(thisChar, 0) == -1 ) {
				alert("Имя может содержать только русские или латинские буквы.");
				document.forms['reg'].fio.focus();
				return 0;
			}
		}
		return 1;
	}

	// проверка названия аккаунта
	function IsValidAcc(data, frm) {
		if( data.length == 0 ) {
			alert("Укажите название Вашего аккаунта, пожалуйста.");
			( frm == 1 ) ? document.forms['regex'].exacc.focus() : document.forms['reg'].acc.focus();
			return 0;
		}
		var latrus = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя ";
		for( var i = 0; i < data.length; i++ ) {
			thisChar = data.substring(i, i+1);
			if( latrus.indexOf(thisChar, 0) == -1 ) {
				alert("Название аккаунта может содержать только русские или латинские буквы.");
				( frm == 1 ) ? document.forms['regex'].exacc.focus() : document.forms['reg'].acc.focus();
				return 0;
			}
		}
		return 1;
	}

	// проверка, что данные состоят из латинских букв или цифр
	function AllLatDig(data) {
		var latdig = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
		for( var i = 0; i < data.length; i++ ) {
			thisChar = data.substring(i, i+1);
			if( latdig.indexOf(thisChar, 0) == -1 )
				return 0;
		}
		return 1;
	}

	// проверка логина
	function IsValidLogin(data, frm) {
		if( data.length == 0 ) {
			alert("Укажите ваше имя в системе (логин), пожалуйста.");
			( frm == 1 ) ? document.forms['regex'].exlogin.focus() : document.forms['reg'].rlogin.focus();
			return 0;
		}
		//data.ToLowerCase();
		if( AllLatDig(data) != 1 ) {
			alert("Ваше имя в системе (логин) может содержать только латинские буквы или цифры.");
			( frm == 1 ) ? document.forms['regex'].exlogin.focus() : document.forms['reg'].rlogin.focus();
			return 0;
		}
		var digt = "0123456789";
		var first = data.substring(0, 1);
		if( digt.indexOf(first, 0) != -1 ) {
			alert("Первым знаком вашего имени в системе (логина) должна быть буква.");
			( frm == 1 ) ? document.forms['regex'].exlogin.focus() : document.forms['reg'].rlogin.focus();
			return 0;
		}
		return 1;
	}

	// проверка пароля
	function IsValidPasswd(data1, data2) {
		if( data1.length == 0 ) {
			alert("Вы забыли ввести пароль.");
			document.forms['reg'].pass.focus();
			return 0;
		}
		if( data2.length == 0 ) {
			alert("Вы забыли повторить пароль.");
			document.forms['reg'].pass2.focus();
			return 0;
		}
		if( data1 != data2 ) {
			alert("Вы ошиблись при повторении пароля.");
			document.forms['reg'].pass.focus();
			return 0;
		}
		if( data1.length < 6 ) {
			alert("Длина пароля должна быть по крайней мере 6 символов.");
			document.forms['reg'].pass.focus();
			return 0;
		}
		//data1.ToLowerCase();
		if( AllLatDig(data1) != 1 ) {
			alert("Ваш пароль может содержать только латинские буквы или цифры.");
			document.forms['reg'].pass.focus();
			return 0;
		}
		return 1;
	}

	// проверка пароля для сущест логина
	function IsValidExPasswd(data) {
		if( data.length == 0 ) {
			alert("Вы забыли ввести пароль.");
			document.forms['regex'].expass.focus();
			return 0;
		}
		if( data.length < 6 ) {
			alert("Длина пароля должна быть по крайней мере 6 символов.");
			document.forms['reg'].pass.focus();
			return 0;
		}
		if( AllLatDig(data) != 1 ) {
			alert("Ваш пароль может содержать только латинские буквы или цифры.");
			document.forms['regex'].expass.focus();
			return 0;
		}
		return 1;
	}

	// проверка для нового
	function IsAllValid() {
		if( IsValidFio(document.forms['reg'].fio.value) != 1 )
			return;
		if( IsValidEml(document.forms['reg'].email.value) != 1 )
			return;
		if( IsValidLogin(document.forms['reg'].rlogin.value, 2) != 1 )
			return;
		if( IsValidPasswd(document.forms['reg'].pass.value, document.forms['reg'].pass2.value) != 1 )
			return;
		if( IsValidAcc(document.forms['reg'].acc.value, 2) != 1 )
			return;
		document.forms['reg'].submit();
		return true;
	}

	// проверка для существующего
	function IsAllExValid() {
		if( IsValidLogin(document.forms['regex'].exlogin.value, 1) != 1 )
			return;
		if( IsValidExPasswd(document.forms['regex'].expass.value) != 1 )
			return;
		if( IsValidAcc(document.forms['regex'].exacc.value, 1) != 1 )
			return;
		document.forms['regex'].submit();
		return true;
	}
	var loc = self.location.href;
	var posV = loc.indexOf('?', 0);
	var valEr = new Array;
	var exlogin;
	var refer;
	var rlogin;
	var fio;
	var acc;
	var exacc;
	var email;
	var wasPr = false;
	if( posV == -1 )
		refer = loc;
	if( posV != -1 ) {
		wasPr = true;
		refer = loc.substring(0, posV);
		var par = loc.substring(posV, loc.length);
		var posEr = FindVal('err=', par);
		if( posEr != -1 ) {
			var posEndEr = par.indexOf('&', posEr);
			if( posEndEr == -1 )
				posEndEr = par.length;
			var err = par.substring(posEr, posEndEr);
			// забираем все ошибки
			valEr = new Array('1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't');
			for( ii = 0; ii < 29; ii++ ) {
				if( err.indexOf(valEr[ii], 0) != -1 )
					valEr[ii] = true;
				else
					valEr[ii] = false;
			}
			// забираем значения введенных параметров
			var posExLog = FindVal('exlog=', par);
			if( posExLog != -1 ) {
				var posExEndLog = par.indexOf('&', posExLog);
				exlogin = par.substring(posExLog, posExEndLog);
			}
			var posLog = FindVal('login=', par);
			if( posLog != -1 ) {
				var posEndLog = par.indexOf('&', posLog);
				rlogin = par.substring(posLog, posEndLog);
			}
			var posFio = FindVal('fio=', par);
			if( posFio != -1 ) {
				var posEndFio = par.indexOf('&', posFio);
				fio = par.substring(posFio, posEndFio);
			}
			var posEml = FindVal('email=', par);
			if( posEml != -1 ) {
				var posEndEml = par.indexOf('&', posEml);
				email = par.substring(posEml, posEndEml);
			}
			var posAcc = FindVal('acc=', par);
			if( posAcc != -1 ) {
				var posEndAcc = par.indexOf('&', posAcc);
				acc = par.substring(posAcc, posEndAcc);
			}
			posAcc = FindVal('exacc=', par);
			if( posAcc != -1 ) {
				var posEndAcc = par.indexOf('&', posAcc);
				exacc = par.substring(posAcc, posEndAcc);
			}
		}
	}


	// функция нахождения параметра в CGI
	function FindVal (fnd, whre) {
		var first = fnd.substring(0, 1);
		var qnt = fnd.length;
		var ind = -1;
		while( true ) {
			ind = whre.indexOf(first, ind+1);
			if( ind == -1 ) {
				break;
			} else {
				if( fnd == whre.substring(ind, ind+qnt) ) {
					return (ind + qnt);
				}
			}
		}
		return (-1);
	}
