ajax = function()
{
	this.create();
}

ajax.prototype =
{
	create: function()
	{
		var browser = navigator.appName;
		if(browser== "Microsoft Internet Explorer")
			this.request = new ActiveXObject("Microsoft.XMLHTTP");
		else
			this.request = new XMLHttpRequest();
	},
	
	open: function(path,resElm)
	{
		this.path = 'http://' + location.hostname + '/' + path;
		this.resElm = resElm;
		this.request.open("POST",this.path,true);
		try{
			this.request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		}
		catch(e){};
	},
	
	send: function(params)
	{
		this.request.send(params);
	},
	
	onreadystatechange: function(getReq)
	{
		var getRequest = this.get_request;
		var ajax = this;
		var resElm = this.resElm;
		this.request.onreadystatechange = function(){getRequest(ajax,resElm)};
	},
	
	get_request: function(ajax,resElm)
	{
		if(ajax.request.readyState == 4)
		{
			if(resElm != null)
			{
				with(resElm)
				{
					style.display = 'none';
					innerHTML = unescape(ajax.request.responseText);
					style.display = '';
				}
				resElm = null;
			}
		};
	},

	ongenerate: function(result)
	{
		var getRequest = this.get_request_generate;
		var ajax = this;
		var resElm = this.resElm;
		this.request.onreadystatechange = function(){getRequest(ajax,resElm, result)};
	},
	
	get_request_generate: function(ajax,resElm, result)
	{
		if(ajax.request.readyState == 4)
		{
			if(resElm != null)
			{
				with(resElm)
				{
					value = unescape(ajax.request.responseText);
				}
				result.innerHTML = 'Новый пароль: ' + unescape(ajax.request.responseText);
				resElm = null;
			}
		};
	},
	
	onloginreg: function()
	{
		var getRequest = this.get_loginreg;
		var ajax = this;
		var resElm = this.resElm;
		this.request.onreadystatechange = function(){getRequest(ajax,resElm)};
	},
	
	get_loginreg: function(ajax,resElm)
	{
		if(ajax.request.readyState == 4)
		{
			if(resElm != null)
			{
				var text = unescape(ajax.request.responseText);
				if(text.substring(0,2) == 'ok')
				{
					location.href = '/list';
				}
				else
				{
					resElm.innerHTML = text;
				}
			}
		};
	},

	onrscanchors: function(img)
	{
		var getRequest = this.get_loadanchors;
		var ajax = this;
		var resElm = this.resElm;
		this.request.onreadystatechange = function(){getRequest(ajax,resElm, img)};
	},
	
	get_loadanchors: function(ajax,resElm,img)
	{
		if(ajax.request.readyState == 4)
		{
			if(resElm != null)
			{
				with(resElm)
				{
					style.display = 'none';
					innerHTML = unescape(ajax.request.responseText);
					img.src = img.src.replace(/spinner.gif/, 'arrow_refresh.png');
					style.display = '';
				}
				resElm = null;
			}
		};
	},
	
	onrscfilters: function(img)
	{
		var getRequest = this.get_loadanchors;
		var ajax = this;
		var resElm = this.resElm;
		this.request.onreadystatechange = function(){getRequest(ajax,resElm, img)};
	},
	
	onrscprojects: function(img)
	{
		var getRequest = this.get_loadanchors;
		var ajax = this;
		var resElm = this.resElm;
		this.request.onreadystatechange = function(){getRequest(ajax,resElm, img)};
	},
	
	setdeftext: function(el, set)
	{
		var defvalue = el.attributes['defvalue'].value;
		switch(set)
		{
			case 0://mousedown
				if(el.value == defvalue)
				{
					el.value = '';
				}
			break;
			case 1://mouseup
				if(el.value == '')
				{
					el.value = defvalue;
				}
			break;
		}
	}
}

var osAjax = new ajax();
