function checkLat(f,lat) {
    var checkPassRegex;
	if (!lat) {
		checkPassRegex = /[^(\040a-zA-Z0-9_\-\!\@\#\$\%\^\&\*\(\)\+\=\{\}\[\]\;\:\.\>\<\,\\\/\`\~\|)]/;
	} else {
		checkPassRegex = /[^(\040a-zA-Z0-9_\-)]/;
	}
    if (checkPassRegex.test(f.value)){
        f.style.color = "#CC0000";
	return true;
    } else{
        f.style.color = "";
	return false;
    }
}
function IsBlank(s)
{
	for(var i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
	}
	return true;
}
function IfTrue(f) {
	var msg;
	var empty_fields = "";
	var empty_value = "";
	var falls =""
	var errors = "";
	var p1;
	var p2;
	var l;
	for(var i = 0; i < f.length; i++) {
		var e = f.elements[i];
		if(e.style){
			e.style.backgroundColor="#F0F0F0";
			e.style.Color="#000000";
		}
		if (e.required)	{
			if ((e.value == null) || (e.value == "") || IsBlank(e.value) || (e.value == "-")) {
					if(e.style){
						e.style.backgroundColor="#FFFFCC"
					}
					if (e.FieldName){
						empty_fields += "\n          " + e.FieldName
					} else {
						empty_fields += "\n          " + e.name;
						empty_value += "\n          " + e.value;
					}
					continue;
			}
		}
			if (e.required && (e.value != null) && (e.value != "") && !IsBlank(e.value) && (e.value != "-")) {
				var bads = false;
				if (e.name == 'login') {
					l = e.value;
					if (e.value.length < 2) {
						falls +=  "\n" + e.FieldName + " слишком короткий: «" +e.value+ "» — 1 символ всего!";
					}
					bads = checkLat(e,0);
					if (bads) {
						falls +=  "\n" + e.FieldName + " — недопустимые символы !"
					}
				}
				if (e.name == 'passwd1' || e.name == 'passwd2') {
					if (e.value.length < 6) {
						falls +=  "\n" + e.FieldName + " слишком короткий: «" +e.value+ "» —  "  + e.value.length +countSmbls(e.value.length, " символ", " символа", " символов");
					}
					bads = checkLat(e,0);
					if (bads) {
						falls +=  "\n" + e.FieldName + " — недопустимые символы!";
					}
				}
				if (e.name == 'passwd1') {	p1 = e.value;	continue;}
				if (e.name == 'passwd2') {	p2 = e.value;	continue;}
				if (e.name == 'email') {
					filter=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
					(filter.test(e.value))?null:falls += "\n  " + e.FieldName + " не похож на реальный !	";
				}
				if (e.name == 'bdate') {
					filter=/^(\d\d)+\/+(\d\d)+\/+(\d\d\d\d)+$/;
					if (filter.test(e.value)) {
						var dig = e.value.split('/');
							if (dig[0]>31) {
								falls  += "\n  " + e.FieldName + ": не бывает столько дней !";
							}
							if (dig[1]>12) {
								falls  += "\n  " + e.FieldName + ": не бывает столько месяцев !";
							}
							if (dig[2]<1900) {
								falls  += "\n  " + e.FieldName + ": как Вы давно живёте... не тратьте время на всякую ерунду!";
							}
							var time=new Date();
							var year=time.getYear();
							if (year < 2000) { year = year + 1900 };
							if (dig[2]>year-10) {
								falls  += "\n  " + e.FieldName + ": уж очень вы молоды... не тратьте время на всякую ерунду!";
							}
					} else {
						falls  += "\n  " + e.FieldName + ": неверный формат!";
					}
				}
				if (falls) {	if (e.style){	e.style.backgroundColor="#FFFFCC"} }
				continue;
			}
		}
	if (l != null && l !="" && !IsBlank(l)) {
		if (p1 != p2) {
			falls +=  "\n" + "Пароли не совпали!";
		}
		if (l != "" && p1!="" && (p1 == l || p2 == l)) {
			falls +=  "\n" + "Пароль и логин совпадают!";
		}
	}
	if (!empty_fields && !errors && !falls) return true;
		msg =  "        ВНИМАНИЕ!            \n";
		if (empty_fields || falls) {
			empty_fields = empty_fields ? empty_fields + "\n — пусты ! " : "";
			msg += "Следующие поля пусты или заполнены неправильно:\n"
			msg += "_________________________________________________________\n"
				+ empty_fields + empty_value + falls;
			if (errors) msg += "\n";
		}
//		msg += errors;
		alert(msg);
		return false;
}

var passComplete = false;
function comparePasswords(first, repeate){
    if(repeate.value != first.value) {
        if(document.getElementById) {
            document.getElementById("passStatus").innerHTML = "пароли не совпадают...";
            document.getElementById("passStatus").style.color = "red";
            repeate.style.color = "red";
        }
        passComplete = false;
    } else {
        if(document.getElementById) {
            document.getElementById("passStatus").innerHTML = "пароли совпадают";
            document.getElementById("passStatus").style.color = "#335533";
            repeate.style.color = "";
        }
        passComplete = true;
    }
}

function check_pass_change(f) {
    if (f.done) {
        f.done.disabled = ((f.passwd1.value == "") || !passComplete );
    }
    if (f.code) {
        var checkCodeRegex = /^\d{6}$/;
        if(!checkCodeRegex.test(f.code.value) && f.done){
            f.done.disabled = true;
        }
    }
}

FirstIntent = true;
function checkPass(f, ffirst, id) {
    var badchars = false;
    if (f.value != "") {
	badchars = checkLat(f);
    }
    if (ffirst.value != ""){
	badchars = checkLat(ffirst);
    }
    if (!badchars){
        if (f.value != "") {
            if (!FirstIntent || (f.value.length >= ffirst.value.length )) {
                FirstIntent = false;
                comparePasswords(ffirst,f);
            }
        }
    }
    if (id){
        if (badchars){
            displayStatus(id, 'badchars', ffirst.value.length);
        } else{
		if (ffirst.value.length == 0){
                    displayStatus(id, 'empty', ffirst.value.length);
                } else if (ffirst.form.login && (ffirst.value == ffirst.form.login.value)){
                    displayStatus(id, 'coincide', ffirst.value.length);
                } else if (ffirst.value.length < 4){
                    displayStatus(id, 'short', ffirst.value.length);
                } else if (ffirst.value.length > 3 && ffirst.value.length < 6){
                    displayStatus(id, 'simple', ffirst.value.length);
                } else if (ffirst.value.length > 5){
                    displayStatus(id, 'ok', ffirst.value.length);
                }
        }
    }
//    check_pass_change(f.form);
}

function checkLogin(l,id) {
	var badchars = false;
	if (l.value != "") {
		badchars = checkLat(l,1);
	}
    	if (id){
		if (badchars){
			displayStatus(id, 'badchars', l.value.length);
		} else {
			if (l.value.length == 0){
				displayStatus(id, 'empty', l.value.length);
			} else if (l.value.length < 2){
				displayStatus(id, 'short', l.value.length);
			} else if (l.value.length > 1){
                    		displayStatus(id, 'ok', l.value.length);
                	}
		}
	}
}

function displayStatus(infoId, mode, len){
    var infodiv = document.getElementById(infoId);
    if (mode == 'empty'){
        infodiv.innerHTML = '&nbsp;';
        infodiv.style.color = '';
    } else if (mode == 'short'){
        infodiv.innerHTML = "короткий (" + len + countSmbls(len, " символ)", " символа)", " символов)") + "  форма отослана не будет!";
        infodiv.style.color = '#CC0000';
    } else if (mode == 'coincide'){
        infodiv.innerHTML = "совпадает с логином (" + len + countSmbls(len, " символ)", " символа)") + "  форма отослана не будет!";
        infodiv.style.color = '#CC0000';
    } else if (mode == 'simple'){
        infodiv.innerHTML = "простой (" + len + countSmbls(len, " символ)", " символа)", " символов)") + "  форма отослана не будет!";
        infodiv.style.color = '#498054';
    } else if (mode == 'badpasswd'){
        infodiv.innerHTML = "недопустимый (" + len + countSmbls(len, " символ)", " символа)", " символов)") + "  форма отослана не будет!";
        infodiv.style.color = '#CC0000';
    } else if (mode == 'badchars'){
        infodiv.innerHTML = "проверьте раскладку клавиатуры! форма отослана не будет!";
        infodiv.style.color = '#CC0000';
    } else if (mode == 'ok'){
        infodiv.innerHTML = "(" + len + countSmbls(len, " символ)", " символа)", " символов)");
        infodiv.style.color = '#335533';
    }
}

function countSmbls (num, word1, word2, word5){
    if ((num >= 10) && (num <= 20)){
        return word5;
    } else if ((num % 10) == 1){
        return word1;
    } else if (((num % 10) == 2) || ((num % 10) == 3) || ((num % 10) == 4)){
        return word2;
    } else {
        return word5;
    }
}


function r(a, w)
{
    img = new Image();
    img.src = 'http://clck.yandex.ru/click/dtype=' + w + '/*' + a.href;
}

function s(a, w)
{
    img = new Image();
    img.src = 'http://clck.yandex.ru/click/dtype=' + w + '/*' + a.form.action;
    window.setTimeout(function() { a.form.submit() }, 100)
    return false;
}