function remoteCall()
{
	this.http;
	this.ok;
	this.response;
	
	this.getHttp = function(){
		var http;
	    if (window.XMLHttpRequest){
	        http = new XMLHttpRequest();
	    }
	    else if (window.ActiveXObject){
	        http = new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    else {
	    	alert('Для корректной работы сайта воспользуйтесь браузером Internet Explorer');
	    	this.ok = false;
	    }
	    return http;
	}
	
	this.call = function(fname, anisochronous, readyStateChangeFunction){
		if (!anisochronous) {
			
			this.http = this.getHttp();
			this.http.open("GET", encodeURI(fname), false);
			this.http.send("");
			this.response = this.http.responseText;
			
			if (200 != this.http.status) {
				this.ok = false;
			}
			else {
				this.ok = true;
			}
		}
		else{
			pleaseWaiteElement = this.getWaitingMessage();
			pleaseWaiteElement.className = 'visible_wait_message';
			var httpRequest = this.getHttp();
			httpRequest.onreadystatechange = hideWaitingMessage;
			httpRequest.open("GET", fname, true);
			httpRequest.send("");	
			
			return httpRequest;		
		}			
	}
	
	this.pageExist = function(page){
		this.http = this.getHttp();
		this.http.open("GET", page, false);
		this.http.send("");
		if (200 != this.http.status){
			this.ok = false;
		}
		else {
			this.ok = true;
		}	
		return this.ok;
	}
	
	this.getWaitingMessage = function(){
		var pleaseWaiteElement = document.getElementById('please_wait');
		if (!pleaseWaiteElement) {
			pleaseWaiteElement = document.createElement('div');
			pleaseWaiteElement.appendChild(document.createTextNode('Работает...'));
			pleaseWaiteElement.id = 'please_wait';
			document.body.appendChild(pleaseWaiteElement);
		}	
			
		return pleaseWaiteElement;
	}
	
	this.getParameters = function(trElement){
		var inputElements = trElement.getElementsByTagName('input');
		var selectElements = trElement.getElementsByTagName('select');
		var parameters = '';
		for (var i = 0; i < inputElements.length; i++){ 
			parameters = parameters.concat(inputElements.item(i).name, '=', encodeURIComponent(inputElements.item(i).value), '&');
		}
		for (var i = 0; i < selectElements.length; i++){
			parameters = parameters.concat(selectElements.item(i).name, '=', encodeURIComponent(selectElements.item(i).value), '&');
		}	
		parameters = parameters.substr(0, parameters.length - 1);
		
		return parameters;	
	}
}