function get_http(){
	var xmlObj;

    if(!xmlObj && typeof XMLHttpRequest!='undefined')   xmlObj = new XMLHttpRequest();
	 else
	   if(!xmlObj && typeof ActiveXObject!='undefined') xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
	    else
	   return;
	
	return xmlObj;
}

function Get_tree(node_id,conteiner) {

	if(!this.http)	                 // Получаем объект XMLHTTPRequest
	{
		this.http = get_http();
		this.working = false;
	}
	// Запрос
			
	if (!this.working && this.http) // если  объект XMLHTTPRequest создан и не работает
	{
		var http = this.http;

	var url = "/ajax/get_tree.php?id=" + node_id;
	this.http.open("POST", url, true);		    // создаём запрос


	this.http.onreadystatechange = function()		// прикрепляем к запросу функцию-обработчик событий
		 {
			if (http.readyState == 4)			        // 4 – данные готовы для обработки
			{
				
				if(http.responseText != '')
				{
					conteiner.innerHTML = http.responseText;
					conteiner.className = "sub_menu";
				}
				else
				{
					conteiner.className = "sub_empty";
					conteiner.style.display = 'none';
				}
				
				working = false;      				// объект XMLHTTPRequest работает - занят
			}
			else
			{
			    Weit_message(conteiner); // данные в процессе получения, можно повеселить пользователя сообщениями ЖДИТЕ ОТВЕТА
			}
		}

		this.working = false;
		this.http.send(null);
	}
	
	if(!this.http) alert('Ошибка при создании XMLHTTP объекта!');
}


function Weit_message(conteiner)
{
	conteiner.innerHTML = 'Загрузка...';
}




function menu_click(obj)
{
	var sub_menu = document.getElementById(obj.id + "s");
	
	if(sub_menu.style.display == '')   // если сласс sub_menu не задан и
	{
		if(sub_menu.className == 'sub_menu' ) sub_menu.style.display = 'block'; // если у него не задан display то он видимый
		if(sub_menu.className == 'sub_load' ) sub_menu.style.display = 'none'; // если у него не задан display то он невидимый
	}
		
	if(sub_menu.style.display == 'none' && sub_menu.className != 'sub_empty') // если не видно и если не пустой,
	{
		sub_menu.style.display = 'block';		// то показыыаем

		if(sub_menu.className == 'sub_load')	// если содержимого нет, 
			Get_tree(obj.id,sub_menu);			// получаем
	}
	else
		sub_menu.style.display = 'none';		// если уже заполнен, то просто прячем
}
