function saveModelForm(oButton, sModule, sModel, sAction, sFormId, sErrorsBoxId, sRedirect, sSessionName, sSessionId)
{
	oButton.disabled = "disabled";
	Rx.ajax({
		Url: Rx.sReturnActionUrl,
		Params:
		{
			_Module: sModule,
			_Model: sModel,
			_Component: sAction,
			_IsSended: 1,
			Data: $$(sFormId)
		},
		OnReady: function (result)
		{
			oButton.disabled = null;

            //if (result) {
			   // var errors =  result['errors'];
			    if (!result || result['errors'].length <= 0) {
                    if (sRedirect) {
                        if (typeof(sRedirect) != 'function')
                            location.href = sRedirect;
                        else sRedirect(result);
                    }
			    } else {
				    var er = '<div>';
				    for (var n in result['errors']) {
					    er += '<p>' + result['errors'][n] + '</p>';
				    }

				    er += '</div>';

				    if ($$('Captcha')) {
					    Rx.reloadCaptcha('CaptchaImage', '/rx/captcha/?' + sSessionName + '=' + sSessionId);
					    $$('Captcha').value = '';
				    }

				    $('#' + sErrorsBoxId).html(er);
				    $('#' + sErrorsBoxId).show();
				    location.hash = '#' + sErrorsBoxId;
			    }
            //}
		}
	});
}

function doLogin(oButton)
{
	oButton.disabled = "disabled";
	Rx.ajax({
		Url: Rx.sReturnActionUrl,
		Params:
		{
			_Module: 'Users',
			_Model: 'Users',
			_Component: 'Login',
            _MainTemplate: 'default',
            _Template: 'default',
			_IsSended: 1,
			Data: $$('UsersLoginForm')
		},
		OnReady: function ()
		{
			oButton.disabled = null;
			document.location.reload();
		}
	});
}

function doLogin2(oButton)
{
	oButton.disabled = "disabled";
	Rx.ajax({
		Url: Rx.sReturnActionUrl,
		Params:
		{
			_Module: 'Users',
			_Model: 'Users',
			_Component: 'Login',
            _MainTemplate: 'default',
            _Template: 'default',
			_IsSended: 1,
			Email: $('#LoginPageLogin').val(),
			Password: $('#LoginPagePassword').val()
		},
		OnReady: function (result)
		{
			oButton.disabled = null;
            if (result['simple'] == 1) {
                document.location.reload();
            } else {
                $('#LoginPageLogin').val('');
                $('#LoginPagePassword').val('');
                alert('Неверный e-mail или пароль.');
            }
		}
	});
}

function doLogout(oButton)
{
	oButton.disabled = "disabled";
	Rx.ajax({
		Url: Rx.sReturnActionUrl,
		Params:
		{
			_Module: 'Users',
			_Model: 'Users',
			_Component: 'Logout',
			_IsSended: 1
		},
		OnReady: function ()
		{
			oButton.disabled = null;
			document.location.reload();
		}
	});
}

function doForgetPassword(oButton)
{

	oButton.disabled = "disabled";
	Rx.ajax({
		Url: Rx.sReturnActionUrl,
		Params:
		{
			_Module: 'Users',
			_Model: 'Users',
			_Component: 'ForgetPassword',
			_IsSended: 1,
			_MainTemplate: 'default',
			_Template: 'default',
			Email: $('#ForgetEmail').val()
		},
		OnReady: function (result)
		{
			oButton.disabled = null;
			var errors = result['errors'];
			if (errors.length <= 0) {
				location.href = '/forget_password/done/';
			} else {
				var er = '<div>';
				for (var n in result['errors']) {
					er += '<p>' + result['errors'][n] + '</p>';
				}

				er += '</div>';

				$('#ForgetFormErrors').html(er);
				$('#ForgetFormErrors').show();
				location.hash = '#ForgetFormErrors';
			}
		}
	});
}

function dropClonedGroup(btn){
	if(document.getElementById) {
		tr = btn;
		while (tr.tagName != 'TR') tr = tr.parentNode;
		var tbl = tr;
		while (tbl.tagName != 'TABLE') tbl = tbl.parentNode;
		tbl = tbl.getElementsByTagName('TR');

		if(tbl.length > 1){
			tr.parentNode.removeChild(tr);
		}else{
			alert('Последний элемент. Удаление невозможно!');
		}
	}
}

function addClonedGroup(btn)
{
	if(document.getElementById) {
		var tr = btn;
		while (tr.tagName != 'TR') tr = tr.parentNode;
		//var idSuffix = Math.round(Math.random()*1000);
		tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);
	}
}
