// JavaScript Document
// указатель на объект XMLHttpRequest
var xmlHttp = createXmlHttpObjectRequestObject();

// функциия создания объекта XMLHttpRequest
function createXmlHttpObjectRequestObject() {
	var xmlHttp;
	try {
		xmlHttp = new XMLHttpRequest();
	}
	catch (e) {
		var xmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
										'MSXML2.XMLHTTP.5.0',
										'MSXML2.XMLHTTP.4.0',
										'MSXML2.XMLHTTP.3.0',
										'MSXML2.XMLHTTP',
										'Microsoft.XMLHTTP');
		for(i=0; i<xmlHttpVersions.length && !xmlHttp; i++) {
			try {
				xmlHttp = new ActiveXObject(xmlHttpVersions[i]);
			}
			catch (e) {};
		}
	}
	if (!xmlHttp) alert("Ошибка инициализации AJAX!");
	else return xmlHttp;
}

// функция отправки выбранного региона на сервер
function AJAX_setRegionRequest() {
	var region = document.getElementById('s_region');
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		xmlHttp.open("POST","getStreet.php",true);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251");
		xmlHttp.onreadystatechange = AJAX_setRegionResponse;
		xmlHttp.send('r_id='+region.value);
	}
	else setTimeout('AJAX_setRegionRequest()',1000);	
}

// функция обработки ответа сервера
function AJAX_setRegionResponse() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
						
			// получаем ответ в формате XML
			xmlResponse = xmlHttp.responseXML;
			xmlRoot = xmlResponse.documentElement;
			
			// находим информацию об ошибках
			xmlError_code = xmlRoot.getElementsByTagName('error_code');
			xmlError_message = xmlRoot.getElementsByTagName('error_message');
			error_code = xmlError_code.item(0).firstChild.data;
			error_message = xmlError_message.item(0).firstChild.data;
			
			// если ошибка выводим сообщение на экран
			if (error_code != 0) alert(error_message);
			else {
				// считываем список улиц
				selStr = document.getElementById('s_street');
				selDom = document.getElementById('s_p_dom');
				selKv = document.getElementById('s_p_kv');
				
				xmlStrIdArray = xmlRoot.getElementsByTagName('str_id');
				xmlStrNameArray = xmlRoot.getElementsByTagName('str_name');				
				
				// заполняем select'ы
				selStr.options.length = 0;
				selStr.options[0] = new Option('',-1,false);
				for(i=0; i<xmlStrIdArray.length; i++) {
					selStr.options[i+1] = new Option(xmlStrNameArray.item(i).firstChild.data, xmlStrIdArray.item(i).firstChild.data, false);
				}
				selDom.options.length = 0;
				selDom.options[0] = new Option('',-1,false);
				selKv.options.length = 0;
				selKv.options[0] = new Option('',-1,false);			
				
				lskv = document.getElementById("t_lskv");
				lskv.value = '';
				lskv.disabled = true;
				img = document.getElementById("img_lskv");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lskv");
				div.innerHTML = 'Поле заблоковане. Будь-ласка, виберіть адресу...';
				
				lsel = document.getElementById("t_lsel");
				lsel.value = '';
				lsel.disabled = true;
				img = document.getElementById("img_lsel");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lsel");
				div.innerHTML = 'Поле заблоковане. Будь-ласка, виберіть адресу...';
				
				lsvo = document.getElementById("t_lsvo");
				lsvo.value = '';
				lsvo.disabled = true;
				img = document.getElementById("img_lsvo");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lsvo");
				div.innerHTML = 'Поле заблоковане. Будь-ласка, виберіть адресу...';
			}
		}
	}
	if (xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
		//selStr = document.getElementById('s_p_dom');
		//selStr.disabled = true;		
	}
}

// функция отправки выбранной улицы на сервер
function AJAX_setStreetRequest() {
	var street = document.getElementById('s_street');
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		xmlHttp.open("POST","getHouse.php",true);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251");
		xmlHttp.onreadystatechange = AJAX_setStreetResponse;
		xmlHttp.send('s_id='+street.value+'&p='+Math.random());
		//alert(street.value);
	}
	else setTimeout('AJAX_setStreetRequest()',1000);	
}

// функция обработки ответа сервера
function AJAX_setStreetResponse() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
						
			// получаем ответ в формате XML
			xmlResponse = xmlHttp.responseXML;
			xmlRoot = xmlResponse.documentElement;
			
			// находим информацию об ошибках
			xmlError_code = xmlRoot.getElementsByTagName('error_code');
			xmlError_message = xmlRoot.getElementsByTagName('error_message');
			error_code = xmlError_code.item(0).firstChild.data;
			error_message = xmlError_message.item(0).firstChild.data;
			
			// если ошибка выводим сообщение на экран
			if (error_code != 0) alert(error_message);
			else {
				// считываем список домов и квартир по улице
				selDom = document.getElementById('s_p_dom');
				selDom.disabled = false;
				selKv = document.getElementById('s_p_kv');
				xmlDomArray = xmlRoot.getElementsByTagName('p_dom');				
				
				// заполняем select'ы
				selDom.options.length = 0;
				selDom.options[0] = new Option('',-1,false);
				for(i=0; i<xmlDomArray.length; i++) {
					selDom.options[i+1] = new Option(xmlDomArray.item(i).firstChild.data,xmlDomArray.item(i).firstChild.data,false);
				}
				selKv.options.length = 0;
				selKv.options[0] = new Option('',-1,false);			
				
				lskv = document.getElementById("t_lskv");
				lskv.value = '';
				lskv.disabled = true;
				img = document.getElementById("img_lskv");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lskv");
				div.innerHTML = 'Поле заблоковане. Будь-ласка, виберіть адресу...';
				
				lsel = document.getElementById("t_lsel");
				lsel.value = '';
				lsel.disabled = true;
				img = document.getElementById("img_lsel");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lsel");
				div.innerHTML = 'Поле заблоковане. Будь-ласка, виберіть адресу...';
				
				lsvo = document.getElementById("t_lsvo");
				lsvo.value = '';
				lsvo.disabled = true;
				img = document.getElementById("img_lsvo");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lsvo");
				div.innerHTML = 'Поле заблоковане. Будь-ласка, виберіть адресу...';
			}
		}
	}
	if (xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
		selDom = document.getElementById('s_p_dom');
		selDom.disabled = true;		
	}
}

// функция отправки выбранного дома на сервер
function AJAX_setHouseRequest() {
	var street = document.getElementById('s_street');
	var house = document.getElementById('s_p_dom');
	if ((house.value != -1) && (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) ) {
		xmlHttp.open("POST","getKv.php",true);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251");
		xmlHttp.onreadystatechange = AJAX_setHouseResponse;
		xmlHttp.send('s_id='+street.value+'&p_dom='+encodeURIComponent(house.value)+'&p='+Math.random());
	}
	else setTimeout('AJAX_setHouseRequest()',1000);	
}

// функция обработки ответа сервера
function AJAX_setHouseResponse() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
						
			// получаем ответ в формате XML
			xmlResponse = xmlHttp.responseXML;
			xmlRoot = xmlResponse.documentElement;
			
			// находим информацию об ошибках
			xmlError_code = xmlRoot.getElementsByTagName('error_code');
			xmlError_message = xmlRoot.getElementsByTagName('error_message');
			error_code = xmlError_code.item(0).firstChild.data;
			error_message = xmlError_message.item(0).firstChild.data;
			
			// если ошибка выводим сообщение на экран
			if (error_code != 0) alert(error_message);
			else {
				// считываем список домов и квартир по улице
				selKv = document.getElementById('s_p_kv');
				selKv.disabled = false;
				
				xmlCountArray = xmlRoot.getElementsByTagName('adr_count');
				count = parseInt(xmlCountArray.item(0).firstChild.data);
				
				xmlCountKvArray = xmlRoot.getElementsByTagName('kv_count');
				ckv = xmlCountKvArray.item(0).firstChild.data;
				
				if(ckv != 0) {
					// заполняем select					
					selKv.options.length = 0;
					selKv.options[0] = new Option('',-1,false);
					
					xmlKvArray = xmlRoot.getElementsByTagName('p_kv');
					for(i=0; i<xmlKvArray.length; i++) {
						selKv.options[i+1] = new Option(xmlKvArray.item(i).firstChild.data,xmlKvArray.item(i).firstChild.data,false);
					}
				}			
					
				if(count > 0) {
					lskv = document.getElementById("t_lskv");
					lskv.disabled = false;
					img = document.getElementById("img_lskv");
					img.src = 'images/icoErrStatus.gif';
					div = document.getElementById("mes_lskv");
					div.innerHTML = 'Введіть особовий рахунок з квартплати!';
				} else {
					lskv = document.getElementById("t_lskv");
					lskv.disabled = 'disabled';
					img = document.getElementById("img_lskv");
					img.src = 'images/icoOkStatus.gif';
					div = document.getElementById("mes_lskv");
					div.innerHTML = '';
				}				
				
				lsel = document.getElementById("t_lsel");
				lsel.disabled = false;
				img = document.getElementById("img_lsel");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lsel");
				div.innerHTML = 'Введіть особовий рахунок з електропостачання!';
				
				lsvo = document.getElementById("t_lsvo");
				lsvo.disabled = false;
				img = document.getElementById("img_lsvo");
				img.src = 'images/icoErrStatus.gif';
				div = document.getElementById("mes_lsvo");
				div.innerHTML = 'Введіть особовий рахунок з водопостачання!';
			}
		}
	}
	if (xmlHttp.readyState == 2 || xmlHttp.readyState == 3) {
		selKv = document.getElementById('s_p_kv');
		selKv.disabled = true;		
	}
}

function AJAX_setLSRequest(id_ls) {
	ls = document.getElementById("t_"+id_ls);
	img = document.getElementById("img_"+id_ls);
	div = document.getElementById("mes_"+id_ls);
	if (ls.value == '') {
		img.src = 'images/icoErrStatus.gif';
		div.innerHTML = 'Введіть особовий рахунок!';
	}
	else if (ls.value.length < 5) {
		img.src = 'images/icoErrStatus.gif';
		div.innerHTML = 'Невірний особовий рахунок!';
	}
	else if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		street = document.getElementById('s_street');
	    house = document.getElementById('s_p_dom');
		kv = document.getElementById('s_p_kv');
				
		xmlHttp.open("POST","checkLS.php",true);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251");
		xmlHttp.onreadystatechange = AJAX_setLSResponse;
		xmlHttp.send('s_id='+street.value+'&p_dom='+encodeURIComponent(house.value)+'&p_kv='+encodeURIComponent(kv.value)+'&ls='+encodeURIComponent(ls.value)+'&id_ls='+id_ls);
	}
	else setTimeout('AJAX_setLSRequest(id_ls)',1000);
}

function AJAX_setLSResponse() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			// получаем ответ в формате XML
			xmlResponse = xmlHttp.responseXML;
			xmlRoot = xmlResponse.documentElement;
			// находим информацию об ошибках
			xmlError_code = xmlRoot.getElementsByTagName('error_code');
			xmlError_message = xmlRoot.getElementsByTagName('error_message');
			error_code = xmlError_code.item(0).firstChild.data;
			error_message = xmlError_message.item(0).firstChild.data;
						
			// если ошибка выводим сообщение на экран
			if (error_code != 0) alert(error_message);
			else {
				xmlLSStatus = xmlRoot.getElementsByTagName('status');
				xmlID_LS = xmlRoot.getElementsByTagName('id_ls');
				id_ls = xmlID_LS.item(0).firstChild.data;
				img = document.getElementById("img_"+id_ls);
				div = document.getElementById("mes_"+id_ls);
				stat = xmlLSStatus.item(0).firstChild.data;
				if (stat == 'OK') {
					img.src = 'images/icoOkStatus.gif';
					div.innerHTML = '';
				}
				else if (stat == 'ERROR') {
					img.src = 'images/icoErrStatus.gif';
					div.innerHTML = 'Невірний особовий рахунок!';
				}				
			}
		}
	}	
}

function AJAX_setLoginRequest() {
	login = document.getElementById("t_login");
	img = document.getElementById("img_log");
	div = document.getElementById("mes_log");
	if (login.value == '') {
		img.src = 'images/icoErrStatus.gif';
		div.innerHTML = 'Логін має складатися з 5-32 букв латинського алфавіту';
	}
	else if (login.value.length < 5 || login.value.length > 32) {
		img.src = 'images/icoErrStatus.gif';
		div.innerHTML = 'Логін має складатися з 5-32 букв латинського алфавіту';
	}
	else if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		xmlHttp.open("POST","checkLogin.php",true);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251");
		xmlHttp.onreadystatechange = AJAX_setLoginResponse;
		xmlHttp.send('login='+encodeURIComponent(login.value));
	}
	else setTimeout('AJAX_setLoginRequest()',1000);
}

function AJAX_setLoginResponse() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			// получаем ответ в формате XML
			xmlResponse = xmlHttp.responseXML;
			xmlRoot = xmlResponse.documentElement;
			
			// находим информацию об ошибках
			xmlError_code = xmlRoot.getElementsByTagName('error_code');
			xmlError_message = xmlRoot.getElementsByTagName('error_message');
			error_code = xmlError_code.item(0).firstChild.data;
			error_message = xmlError_message.item(0).firstChild.data;
			
			// если ошибка выводим сообщение на экран
			if (error_code != 0) alert(error_message);
			else {
				xmlLogStatus = xmlRoot.getElementsByTagName('status');
				login = document.getElementById("t_login");
				img = document.getElementById("img_log");
				div = document.getElementById("mes_log");
				stat = xmlLogStatus.item(0).firstChild.data;
				if (stat == 'OK') {
					img.src = 'images/icoOkStatus.gif';
					div.innerHTML = 'iм\'я <b>'+login.value+'</b> вільне';
				}
				else if (stat == 'ERROR_1') {
					img.src = 'images/icoErrStatus.gif';
					div.innerHTML = 'поле Логін містить заборонені символи';
				}
				else if (stat == 'ERROR_2') {
					img.src = 'images/icoErrStatus.gif';
					div.innerHTML = 'iм\'я <b>'+login.value+'</b> зайняте';
				}
			}
		}
	}	
}

function setPassword1() {
	pwd = document.getElementById("t_pwd1");
	img = document.getElementById("img_pwd1");
	div = document.getElementById("mes_pwd1");
	if (pwd.value.length < 5 || pwd.value.length > 32) {
		img.src = 'images/icoErrStatus.gif';
		div.innerHTML = 'Пароль має складатися з 5-32 букв латинського алфавіту';
	}
	else {
		re = new RegExp("[^{0-9A-z_}]","g");
		result = pwd.value.match(re);
		if (result != null) {
			div.innerHTML = 'поле Пароль містить заборонені символи';
			img.src = 'images/icoErrStatus.gif';
		}
		else {
			div.innerHTML = '';
			img.src = 'images/icoOkStatus.gif';
		}
	}	    
}

function setPassword2() {
	pwd1 = document.getElementById("t_pwd1");
	pwd2 = document.getElementById("t_pwd2");
	img = document.getElementById("img_pwd2");
	if (pwd2.value == '' || pwd1.value != pwd2.value) img.src = 'images/icoErrStatus.gif';
	else img.src = 'images/icoOkStatus.gif';
}

function AJAX_setMailRequest() {
	email = document.getElementById("t_email");
	img = document.getElementById("img_mail");
	div = document.getElementById("mes_mail");
	if (email.value == '') {
		img.src = '';
		div.innerHTML = '';
	}
	else if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
		xmlHttp.open("POST","checkMail.php",true);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1251");
		xmlHttp.onreadystatechange = AJAX_setMailResponse;
		xmlHttp.send('mail='+email.value);
	}
	else setTimeout('AJAX_setMailRequest()',1000);
}

function AJAX_setMailResponse() {
	if (xmlHttp.readyState == 4) {
		if (xmlHttp.status == 200) {
			// получаем ответ в формате XML
			xmlResponse = xmlHttp.responseXML;
			xmlRoot = xmlResponse.documentElement;
			
			// находим информацию об ошибках
			xmlError_code = xmlRoot.getElementsByTagName('error_code');
			xmlError_message = xmlRoot.getElementsByTagName('error_message');
			error_code = xmlError_code.item(0).firstChild.data;
			error_message = xmlError_message.item(0).firstChild.data;
			
			// если ошибка выводим сообщение на экран
			if (error_code != 0) alert(error_message);
			else {
				xmlLogStatus = xmlRoot.getElementsByTagName('status');
				email = document.getElementById("t_email");
				img = document.getElementById("img_mail");
				div = document.getElementById("mes_mail");
				stat = xmlLogStatus.item(0).firstChild.data;
				if (stat == 'OK') {
					img.src = 'images/icoOkStatus.gif';
					div.innerHTML = '';
				}
				else if (stat == 'ERROR_1') {
					img.src = 'images/icoErrStatus.gif';
					div.innerHTML = 'поле Email містить заборонені символи';
				}
				else if (stat == 'ERROR_2') {
					img.src = 'images/icoErrStatus.gif';
					div.innerHTML = 'На email <b>'+email.value+'</b> вже зареєстрований користувач';
				}
			}
		}
	}	
}

function checkRegInfo() {
	error = 0;
	fio = document.getElementById('t_fio');
	if (fio.value == '') {
		error = 1;
		alert('Будь ласка заповніть поле П.І.Б.!');
	}
	house = document.getElementById('s_p_dom');
	if (error == 0 && house.value == '-1') {
		error = 1;
		alert('Будь ласка заповніть адресу!');
	}	
	
	lskv = document.getElementById('t_lskv');
	if(lskv.disabled == false && error == 0 && lskv.value == '') {
	//priv = document.getElementById('s_count');
	
	//if(priv.value != 0) {	
		
		//if (error == 0 && lskv.value == '') {
			error = 1;
			alert('Будь ласка заповніть особистий рахунок за квартплату!');
		//}
	}
	
	lsel = document.getElementById('t_lsel');
	if (error == 0 && lsel.value == '') {
		error = 1;
		alert('Будь ласка заповніть особистий рахунок за електропостачання!');
	}
	lsvo = document.getElementById('t_lsvo');
	if (error == 0 && lsvo.value == '') {
		error = 1;
		alert('Будь ласка заповніть особистий рахунок за водопостачання!');
	}
	
	username = document.getElementById('t_login');
	if (error == 0 && username.value == '') {
		error = 1;
		alert('Будь ласка заповніть поле з логіном!');
	}
	pwd1 = document.getElementById('t_pwd1');
	if (error == 0 && pwd1.value == '') {
		error = 1;
		alert('Будь ласка введіть пароль доступу!');
	}
	pwd2 = document.getElementById('t_pwd2');
	if (error == 0 && pwd1.value == '') {
		error = 1;
		alert('Будь ласка введіть підтвердження паролю доступу!');
	}
	
	if (error == 0 && pwd1.value != pwd2.value) {
		error = 1;
		alert('Помилка підтвердження паролю! Перевірте введені дані!');
	}
	
	email = document.getElementById('t_email');
	if (error == 0 && email.value == '') {
		error = 1;
		alert('Будь ласка введіть Ваш e-mail!');
	}
	
	/*f_mail = document.getElementById("t_email");
	re = new RegExp("@mail.ru","g");
	result = f_mail.value.match(re);
	if (result != null) {
		error = 1;
		alert("Вибачте! Реєстрація на поштові скриньки mail.ru тимчасово не працює!"); 		
	}*/
	
	if (error == 0) {
		document.frm.submit();		
	}
}