function remoteCall()
{
	this.http;
	this.ok;
	this.response;
	this.autoEncodeURI = true;
	
	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();
			if (this.autoEncodeURI){
				this.http.open("GET", encodeURI(fname), false);
			}
			else {
				this.http.open("GET", 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 textareaElements = trElement.getElementsByTagName('textarea');
		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), '&');
		}	
		for (var i = 0; i < textareaElements.length; i++){
			parameters = parameters.concat(textareaElements.item(i).name, '=', encodeURIComponent(textareaElements.item(i).value), '&');
		}	
		parameters = parameters.substr(0, parameters.length - 1);
		
		return parameters;	
	}
	
	this.hiddenPromtWindow = function(){
		document.getElementById('promt_window').style.display = 'none';
	}
	
	this.getPromtResponse = function(){
		return document.getElementById('promt_window_response').value;
	}
	
	this.promt = function(comment, functionName){
		var inputElement = document.getElementById('promt_window_response');
		if (!inputElement) {
			promtElement = document.createElement('div');
			promtElement.id = 'promt_window';
			
			divElement = document.createElement('div');
			divElement.appendChild(document.createTextNode(comment));
			var inputElement = document.createElement('input');
			inputElement.type = 'text';
			inputElement.id = 'promt_window_response';
			divElement.appendChild(inputElement);
			
			var buttonElement = document.createElement('button');
			buttonElement.appendChild(document.createTextNode('Ввод'));
			buttonElement.onclick = functionName;
			divElement.appendChild(buttonElement);
			
			promtElement.appendChild(divElement);
			document.body.appendChild(promtElement);
		}	
		else {
			document.getElementById('promt_window_response').value = '';
			document.getElementById('promt_window').style.display = 'block';
		}
		inputElement.focus();
	}
}