// Common

// Отправка запроса Ajax
function sendRequest(url,params,HttpMethod,callbackfunc){
	if (!HttpMethod) HttpMethod="GET";
	var req=null;
	if (window.ActiveXObject)
	{
		try { 
			req = new ActiveXObject("MSXML2.XMLHTTP.6.0");
		} catch (e) {
			req = new ActiveXObject("MSXML2.XMLHTTP.3.0");
		}
	}
	if (!req && window.XMLHttpRequest)
		req = new XMLHttpRequest();
	
	if (req){
		if(callbackfunc)
			req.onreadystatechange=function() { callbackfunc(req); }
		req.open(HttpMethod,url,true);
		req.setRequestHeader
		("Content-Type", "application/x-www-form-urlencoded"); 
		req.send(params);
	}
}

var Register; if (!Register) Register = {}

Register.start = function (formname) {
    var inputs = document.getElementById(formname);
    var params = '';
    for(var i = 0; i < inputs.elements.length; i++) {
        el = inputs.elements[i];
        if(el.type=='radio' && !el.checked)
            continue;
        params += el.name + '=' + el.value + '&';
    }
    sendRequest(inputs.action,params,'POST',Register.getResult);
    document.getElementById('regstatus').innerHTML = 'Загрузка';
}

Register.errors = {
    1: "Укажите имя",
    2: "Укажите номер телефона",
    3: "Укажите Email",
    4: "Неправильный Email",
    5: "Укажите пароль",
    6: "Пароль имеет недопустимые символы. Размер от 4 до 20.",
    7: "Не совпадают пароли",
    8: "Неверный код",
    9: "Тип пользователя недопустим",
    10: "Такой Email уже существует",
    11: "Ошибка регистрации"
}

Register.captcha_url = 'index/regimage?' + Math.round(new Date().getTime() / 1000);

Register.reloadCaptcha = function(imgid) {
    document.getElementById(imgid).src = baseURL + Register.captcha_url;
}

Register.getResult = function(req) {
    var elErrors = document.getElementById('regstatus');
    if(req.readyState != 4)
        elErrors.innerHTML += '.';
    if(req.readyState == 4) {
        var jsonResult = eval('(' + req.responseText + ')');
        var htmlerrors = '';
        if(jsonResult['result'] == 0){
            for(var i = 0; i < jsonResult['errors'].length; i++) {
                errorid  = jsonResult['errors'][i];
                htmlerrors += Register.errors[errorid] + "<br>";
            }
            elErrors.innerHTML = '<font color="red">' + htmlerrors + '</font>';
            Register.reloadCaptcha('captha');
        } else if(jsonResult['result'] == 1) {
            elErrors.innerHTML = '<font color="blue">Готово!</font>';
            window.location = "cabinet/";
        }
    }
}

// Объект для работы с улицами (динамическая загрузка)
var Streets; if (!Streets) Streets = {};

Streets.XmlFile = '';

Streets.loadStreets = function (selectIdFrom, selectIdTo, prefixPath, type) {
	var selectObj = document.getElementById(selectIdFrom);
	var command = '';
	if(!prefixPath) prefixPath = baseURL;
	if(type == 1) Streets.type = 'search';
	if(selectObj.value!='.') {
		Streets.selectElement = (selectIdTo ? selectIdTo : 'street');
		if(type == 2)
			command = prefixPath+'admin/regions/getliststreets?file='+selectObj.value;
		else 
			command = prefixPath+'public/xml/'+selectObj.value+'.xml';
		sendRequest(command,null,null,Streets.onLoadStreets);
		Streets.XmlFile = selectObj.value;
	}
}

Streets.changeBlank = function (object_id, plselect) {
	var plSelect = document.getElementById(plselect);
	if(object_id == 3 || object_id == 2) {
		plSelect.disabled = false;
	}else{
		plSelect.disabled = true;
	}
}

Streets.onLoadStreets = function(req) {
	var stselect = document.getElementById(Streets.selectElement);
	while(stselect.options.length){
		stselect.remove(0);
	}
	if(req.readyState != 4) {
		stselect.disabled = true;
		var opt = document.createElement('option');
		opt.text = 'Загрузка...';
		stselect.options.add(opt);
	}else {
		if(Streets.type == 'search')
			stselect.options.add(new Option('Неважно','all'),0);
	}
	if(!req.responseXML) return;
	if(req.readyState == 4) {
		var streets = req.responseXML.documentElement.getElementsByTagName('street');
		for(var i = 0; i < streets.length; i++) {
			var opt = document.createElement('option');
			opt.text = streets[i].attributes[0].nodeValue;
			opt.value = opt.text;
			stselect.options.add(opt); 
		}
		stselect.disabled = false;
	}
}

