function makeHttpRequest(url, callback_function, return_xml)
{
    var http_request = false;

    //Пытаемся создать объект всеми доступными способами
    if (window.XMLHttpRequest)
      { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();

        //Для правильного отображения на русском языке
        if (http_request.overrideMimeType)
          {
              //http_request.overrideMimeType('text/xml');
              http_request.overrideMimeType('text/plain;charset=windows-1251');
          }
       }
    else if (window.ActiveXObject)
       { // IE
          try
          {
              http_request = new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e)
          {
              try
               {
                  http_request = new ActiveXObject("Microsoft.XMLHTTP");
               }
              catch (e) {}
          }
       }

    //Если все-таки не удалось-не судьба...
    if (!http_request)
    {
        alert('Unfortunatelly you browser does not support this feature: XMLHttpRequest');
        return false;
    }

    //Ждем изменения состояния на 200 ОК и передаем все вызывающей функции
    http_request.onreadystatechange = function()
     {
        if (http_request.readyState == 4)
        {
            //После || - условие для локальных адресов, там XMLHttpRequest возвращает status=0
            if (http_request.status == 200 || location.href.indexOf('http:')<0&&http_request.status==0)
             {
                if (return_xml)
                {
                    eval(callback_function + 'http_request.responseXML)');					
                }
                else
                {
                    //alert(http_request.responseText);
                    eval(callback_function + 'http_request.responseText);');
                    //eval("setInnerHtml('03101','123');");

                }
             }
            else
             {
                alert('There was a problem with the request.(Status: ' + http_request.status + ')');
             }
        }
     }

    //Открытие запроса
    http_request.open('GET', url, true);
    http_request.send(null);
}

//--------------------------------------------------------------------------------------------------------
//-----------Вызов индексатора (/risearch/spider.php проверяет дату /risearch/last_index.cfg)-------------
//--------------------------------------------------------------------------------------------------------
   //Для вызова нужно в _head.tpl прописать <script language="JavaScript" src="/image/common.js"></script>
   //var out_xml='';
   //makeHttpRequest("/risearch/spider.php", "alert(", out_xml);   
   //makeHttpRequest("/risearch/spider.php", "void(", out_xml);  
//--------------------------------------------------------------------------------------------------------   
//----------/Вызов индексатора (/risearch/spider.php проверяет дату /risearch/last_index.cfg)-------------
//--------------------------------------------------------------------------------------------------------

/*Движение слайдера*/
function moveSlider(id, course, targ)
{
	//определяем кнопку, по которой кликнули
	/*var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;*/

	//php-скрипт для ajax-запроса
	var phpScript = "/usr/extensions/ajax/slider.php";
	//подвижная часть
	var slider = $('#'+id);
	//буфер
	var buffer = document.getElementById(id+'_buffer');
		
	//если слайдер сейчас в движении, то ничего не делаем
	if(slider.attr('moving')==1) return;
	slider.attr('moving', 1);
	
	//елементы внутри слайдера
	var items = $('#'+id+' > div.item');
	
	/*Определяем шаг движения*/
	var step;
	if(course=='up')
	{
		step = -items[0].offsetHeight;
	}
	if(course=='down')
	{
		step = items[0].offsetHeight;
	}
	if(course=='left')
	{
		step = -items[0].offsetWidth;
	}
	if(course=='right')
	{
		step = items[0].offsetWidth;
	}
	/*/Определяем шаг движения*/
	
	/*Текущее отклонение*/
	if(course=='up' || course=='down')
	{
		var attr = 'marginTop';
		var shift = parseInt(slider.css(attr));
		var showLength = slider[0].parentNode.offsetHeight;
	}
	if(course=='left' || course=='right')
	{
		var attr = 'marginLeft';
		var shift = parseInt(slider.css(attr));
		var showLength = slider[0].parentNode.offsetWidth;
	}
	/*/Текущее отклонение*/
	
	if(!shift) shift = 0;
	var newShift = shift + step;
	var absStep = Math.abs(step);
	
	/*Проверяем, нужно ли подгружать данные*/
	if(buffer)
	{
		/*Подгружаем новые элементы*/
		if(slider.attr('loading')!=1)
		{
			/*если нет подгруженных элементов, то останавлисаем слайдер*/
			if((step > 0 && newShift > 0) || (step < 0 && (items.length*absStep+newShift+absStep) < showLength))
			{
				targ.className = targ.className + ' inactive';
				slider.attr('moving', 0);
				return false;
			}
			/*/если нет подгруженных элементов, то останавлисаем слайдер*/			
			
			if(step > 0 && Math.abs(newShift) < 3*absStep)
			{
				slider.attr('loading', 1);
				var cnt = parseInt(items[0].getAttribute('title'));
				$.post(phpScript, { limit: (cnt-6)+",5"},
				  function(data){
					if(slider.attr('moving')==1)
					{
						buffer.innerHTML = data;
						buffer.setAttribute('pos', 'begin');
					}
					else
					{
						slider[0].innerHTML = buffer.innerHTML + slider[0].innerHTML;
						slider.css(attr, newShift - step*5);
					}
					slider.attr('loading', 0);
					
					if(data.length > 0)
					{
						targ.className = targ.className.replace('inactive', '');
					}
				  });
			}

			if(newShift < 0 && ((items.length*absStep+newShift) < showLength+3*absStep))
			{
				slider.attr('loading', 1);
				var cnt = parseInt(items[items.length-1].getAttribute('title'));
				$.post(phpScript, { limit: cnt+",5"},
				  function(data){
					if(slider.attr('moving')==1)
					{
						buffer.innerHTML = data;
						buffer.setAttribute('pos', 'end');
					}
					else
					{
						slider[0].innerHTML = slider[0].innerHTML + buffer.innerHTML;
					}
					slider.attr('loading', 0);
					
					if(data.length > 0)
					{
						targ.className = targ.className.replace('inactive', '');
					}
				  });
			}
		}
		/*/Подгружаем новые элементы*/
	}
	else
	{
		/*Если новые элементы не подгружаются, то перемещаем из начала в конец или наоборот*/
		if(newShift > 0)
		{
			$('#'+id+' > div.item:last').remove().insertBefore('#'+id+' > div.item:first');
			newShift = shift;
			slider.css(attr, shift - step);
		}
		
		if(newShift < 0 && ((items.length*absStep+newShift) < showLength+absStep))
		{
			$('#'+id+' > div.item:first').remove().insertAfter('#'+id+' > div.item:last');
			newShift = shift;
			slider.css(attr, shift - step);
		}
		/*/Если новые элементы не подгружаются, то перемещаем из начала в конец или наоборот*/
	}
	
	/*Настройки анимации*/
	if(course=='up' || course=='down')
	{
		var settings = {
					'marginTop': newShift
					};
	}
	if(course=='left' || course=='right')
	{
		var settings = {
					'marginLeft': newShift
					};
	}
	/*/Настройки анимации*/	

	slider.animate(settings, "easein", function(){
													slider.attr('moving', 0);
													
													/*если нет подгруженных элементов, то деактивируем кнопки*/
													if(buffer && ((step > 0 && newShift+absStep > 0) || (step < 0 && (items.length*absStep+newShift) < showLength)))
													{
														targ.className = targ.className + ' inactive';
													}
													/*/если нет подгруженных элементов, то деактивируем кнопки*/
													
													/*Подгружаем новые элементы*/
													if(buffer && buffer.innerHTML.length > 0)
													{
														if(buffer.getAttribute('pos')=='begin')
														{
															slider[0].innerHTML = buffer.innerHTML + slider[0].innerHTML;
															slider.css(attr, newShift - step*5);
														}
														else
														{
															slider[0].innerHTML = slider[0].innerHTML + buffer.innerHTML;
														}
														buffer.innerHTML = '';
														targ.className = targ.className.replace('inactive', '');
													}
													/*/Подгружаем новые элементы*/
													
													/*Удаляем старые элементы*/
													if(step < 0 && newShift < step*10)
													{
														$('#'+id+' > div.item:first').remove();
														slider.css(attr, newShift - step);
													}
													if(step > 0 && ((items.length*absStep+newShift) > showLength+10*absStep))
													{
														$('#'+id+' > div.item:last').remove();
													}
													/*/Удаляем старые элементы*/
												});
}
/*/Движение слайдера*/

/*Движение слайдера с биатлоном*/
function islider_move(id, course, cnt)
{
	var slider = $('#'+id+'_moby');
	var nStep = slider[0].getElementsByTagName('td')[0].offsetWidth;
	var step = nStep;
	var shift = (parseInt(slider.attr('ml')) || 0);
	var current = parseInt(Math.abs(shift)/step);
	if(course==0)
	{
		step = (current-cnt)*step;
	}
	else
	{
		step = course*step;
		cnt = current - course;
	}
	var newShift = shift + step;
	
	//проверяем можно ли двигать
	var isMoving = slider.attr('moving');
	if(isMoving==1)
	{
		slider.attr('cnt', cnt);
		return false;
	}
	
	slider.attr('moving', 1);
	slider.attr('ml', newShift);
	
	/*Обнуляем таймер, потом снова поставим*/
	var timer = slider.attr('timer');
	if(timer)
	{
		clearTimeout(timer);
		slider.removeAttr('timer');
	}
	/*/Обнуляем таймер, потом снова поставим*/
	
	/*Если образуется пустое пространство, то заполняем*/
	var tr = slider[0].getElementsByTagName('tr')[0];
	var cc = tr.cells.length;
	var c = step*cc;
	if(newShift > 0)
	{
		var cell = tr.insertCell(-1);
		cell.innerHTML = tr.cells[0].innerHTML;
		cell.getElementsByTagName('img')[0].src = tr.cells[0].getElementsByTagName('img')[0].src;
		slider[0].style.marginLeft = newShift - c - step;
		newShift = newShift - c;
		slider.attr('ml', newShift);
		slider.attr('delete', -1);
	}
	if(newShift < -slider[0].offsetWidth + 1)
	{
		var cell = tr.insertCell(0);
		cell.innerHTML = tr.cells[tr.cells.length-1].innerHTML;
		cell.getElementsByTagName('img')[0].src = tr.cells[tr.cells.length-1].getElementsByTagName('img')[0].src;
		slider[0].style.marginLeft = newShift - c;
		newShift = newShift - c + step;
		slider.attr('ml', newShift);
		slider.attr('delete', 0);
	}
	/*/Если образуется пустое пространство, то заполняем*/
	
	/*Загружаем картинку, если нужно*/
	cnt = (cnt + cc)%cc;
	img = tr.cells[cnt].getElementsByTagName('img')[0];
	if(img.alt!=img.title)
	{
		var oImg = new Image();
		oImg.onload = function(){
									img.src = oImg.src;
									img.title = img.alt;
								}
		oImg.src = img.title;
	}
	/*/Загружаем картинку, если нужно*/
	
	var settings = {
					'marginLeft': newShift
				};
	
	slider.animate(settings, "easein", function(){
													slider.attr('moving', 0);
													
													/*если нужно удалить лишнюю ячейку, то удаляем*/
													var del = slider.attr('delete');
													if(del)
													{
														slider.removeAttr('delete');
														slider[0].getElementsByTagName('tr')[0].deleteCell(del);
														if(del==0)
														{
															var ml = parseInt(slider.attr('ml')) + nStep;
															slider.attr('ml', ml);
															slider[0].style.marginLeft = ml;
														}
													}
													/*/если нужно удалить лишнюю ячейку, то удаляем*/
													
													/*если пришло действие, то делаем*/
													var cnt = slider.attr('cnt');
													if(cnt)
													{
														slider.removeAttr('cnt');
														islider_move(id, 0, cnt);
													}
													else
													{
														var timeout = slider.attr('timeout');
														var timer = setTimeout(function(){islider_move(id, -1);}, timeout);
														slider.attr('timer', timer);
													}
													/*/если пришло действие, то делаем*/
												});
												
	var links = $('#'+id+' .biathlon a');
	if(links.length > 0)
	{
		links.removeClass('active');
		links[cnt].className = 'active';
	}
}
/*/Движение слайдера с биатлоном*/
