var errstr=""; var parent="";
function iajax(){
    var request = false;
    try {
	request = new XMLHttpRequest();
    } catch (trymicrosoft) {
	try {
	    request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
	    try {
		request = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch (failed) {
		request = false;
	    }  
	}
    }
    if (!request){
	alert("Error initializing XMLHttpRequest!");
	return false;
    }else{
	return request;
    }
}
function setph(mname){
    if(mname.value==mname.defaultValue){mname.value='';}
}

function regexp(mid){
    var re;
    re = new Array();
    if(mid=='email'){re[0] = /^[a-zA-Z0-9\-\._]+?@[a-zA-Z0-9\-\_\.]+?\.[A-Za-z0-9]{2,6}$/; re[1]="E-Mail набран неверно";}
    if(mid=='birthday'){re[0] = /^\d[1-31]{1,2}\.\d[1-12]{1,2}\.\d{4}$/; re[1]="Дата набрана неверно";}
    if(mid=='fio'){re[0] = /^[А-ЯA-Z][a-zа-я]{2,30}\ [А-ЯA-Z][a-zа-я]{2,30}\ [А-ЯA-Z][a-zа-я]{2,30}$/; re[1]="FIO набран неверно";}
    if(mid=='username'){re[0] = /^[a-zA-Z0-9]+$/; re[1]="Имя пользователя должно содержать только латинские буквы и цифры";}
    if(mid=='phone'){re[0] = /\d\d\d\-\d\d\d\d$/; re[1]="Телефон указан неверно";} 
    if((mid=='password')||(mid=='password1')){re[0] = /^[A-Za-z0-9]+$/; re[1]="Пароль должен состоять только из латинских букв и цифр";}
    return re;
}

function xmlprep(req,callback){
    var url = "/cgi-bin/ajax?"+req;
    xml.open("GET", url, true);
    xml.onreadystatechange = callback;
    xml.send(null);
}

function errPage() {
    if (xml.readyState == 4){
	if (xml.status == 200){
	    var text = xml.responseText;
	    if(!document.getElementById("helper")){return 0;}
	    if(text){
		document.getElementById("helper").style.display = '';
		document.getElementById("helper-text").innerHTML = text;
	    }else{
		document.getElementById("helper").style.display = 'none';
	    }
	}
    }
}

function m_errPage(text){
    if(text){
	if(!document.getElementById("helper")){return 0;}
	document.getElementById("helper").style.display = '';
	document.getElementById("helper-text").innerHTML = text;
    }else{
	document.getElementById("helper").style.display = 'none';
    }
}

function updatePage() {
    if (xml.readyState == 4){
	if (xml.status == 200){
    	    xmlprep("error="+encodeURI(xml.responseText),errPage);
	}
    }
}

function unsetph(mname,doDB){
    var merr=0;
    var mid = mname.id || mname.name;
    if(mname.value==''){mname.value=mname.defaultValue}
    var re = regexp(mid);
    if(re!=''){
        var result=re[0].test(mname.value);
        if(!result){
	    merr=1;
    	    mname.style.color="#FF0000";
	    m_errPage(re[1]);
	}else{mname.style.color="#000000";}
    }
    if((mname.value==mname.defaultValue)&&(!merr)){
	merr=1;
        mname.style.color="#FF0000";
        m_errPage("Значение поля не должно быть: \""+mname.defaultValue+"\"");
    }
    if(!merr){mname.style.color="#000000";}
    if((doDB)&&(!merr)){xmlprep("authch="+mid+"&value="+encodeURI(mname.value),updatePage);}
}

function checkform(mname){
    var err=0; var pass1=0; var pass2=0; var passadr=0;
    for(i=0; i<20; i++){
	if ((mname.elements[i])&&((mname.elements[i].type == "text")||(mname.elements[i].type == "password"))){
	    var mid = mname.elements[i].id || mname.elements[i].name;
	    var re = regexp(mid);
	    if(re==''){continue;}
	    var result=re[0].test(mname.elements[i].value);
	    if(!result){
		err=1;
		mname.elements[i].style.color="#FF0000";
	    }
	    if(mname.elements[i].value==mname.elements[i].defaultValue){
		err=1;
		mname.elements[i].style.color="#FF0000";
	    }
	    if(mname.elements[i].type == "password"){
		if(pass1){
		    if(pass1 != mname.elements[i].value){
			err=1;
			mname.elements[passadr].style.color="#FF0000";
			mname.elements[i].style.color="#FF0000";
			alert("Пароли не совпадают!");
		    }
		}else{
		    pass1=mname.elements[i].value;
		    passadr=i;
		}
	    }
	}
    }

    if(err==1){
	alert("Форма заполнена с ошибками. Поажлуйста, обратите внимания на поля, значения которых выделены красным");
	return false;
    }else{return true}
}

function onoff(name){
    var reg = /^cap/;
    var re = reg.test(name);
    if(document.getElementById(name).style.display=='none'){document.getElementById(name).style.display='';}
    else{document.getElementById(name).style.display='none'}
}