// JavaScript Document

  
  // добавляет DOM-элементу obj CSS-класс className
  function addClass(obj, className) {
    if (obj) {
      if (obj.className.indexOf(className)==-1) {
        obj.className += (' '+className);
      }
    }
  }
  
  // удаляет у DOM-элемента obj CSS-класс className
  function removeClass(obj, className) {
    if (obj) {
      a = obj.className.indexOf(className);
      if (-1 != a) {
        classStr = obj.className.substr(0, a) + obj.className.substr(a + className.length);
        obj.className = classStr;
      }
    }
  }

  // инициализируем прокрутчик  
  function scrollInit(id) {
    var obj = document.getElementById(id);
    if (obj) {
      obj.maxYScroll = obj.scrollHeight - obj.offsetHeight;
      obj.maxXScroll = obj.scrollWidth - obj.offsetWidth;
            
      obj.scrollDirect = false;
      obj.timer = 0;
      obj.scrollTo = 0;
      obj.speed = 0;
      obj.ind = 1;
      
      obj.prevButton = document.getElementById(id+'_prev');
      obj.nextButton = document.getElementById(id+'_next');
      obj.prevSpan = document.getElementById(id+'_prev_nom');
      obj.nextSpan = document.getElementById(id+'_next_nom');
    }
  }
  
  // прокрутка элемента с id по горизонтали на offset пикселей за время time
  function scroll_y(id, offset, time) {
    var obj = document.getElementById(id);
    if (!obj.maxYScroll) scrollInit(id);
    if (offset && !obj.timer) {
      var _scrollTop = obj.scrollTop + offset;

      if (_scrollTop < 0) _scrollTop = 0;
      else if (_scrollTop > obj.maxYScroll) _scrollTop = obj.maxYScroll;

      if (!_scrollTop) addClass(obj.prevButton,'hidden');
      else removeClass(obj.prevButton, 'hidden');

      if (_scrollTop==obj.maxYScroll) addClass(obj.nextButton,'hidden');
      else removeClass(obj.nextButton, 'hidden');
      obj.scrollDirect = (offset > 0);
      obj.scrollTo = _scrollTop;
      obj.speed = (offset) / time;
      
      if (obj.scrollDirect && obj.scrollTop < obj.maxYScroll) obj.ind++;
      if (!obj.scrollDirect && obj.scrollTop>0 ) obj.ind--;
      if (obj.prevSpan) obj.prevSpan.innerHTML = 'стр.'+(obj.ind-1);
      if (obj.nextSpan) obj.nextSpan.innerHTML = 'стр.'+(obj.ind+1);
    }
    
    if (obj.scrollTop != obj.scrollTo) {
      obj.scrollTop += obj.speed;
      if ((obj.scrollDirect && obj.scrollTop>obj.scrollTo) || (!obj.scrollDirect && obj.scrollTop<obj.scrollTo)) {
        obj.scrollTop = obj.scrollTo;
      }
      obj.timer = setTimeout('scroll_y(\''+id+'\')', 100);
    } else {
      obj.timer = 0;
    }
  }

  function scroll_div_y(id, i, speed) {
    var obj = document.getElementById(id);
    if (obj) {
      scroll_y(id, i*obj.offsetHeight, speed);
    }
  }
  // прокрутка элемента с id по горизонтали на offset пикселей за время time
  function scroll_x(id, offset, time) {
    var obj = document.getElementById(id);
    if (!obj.maxXScroll) scrollInit(id);
    if (offset && !obj.timer) {
      var _scrollLeft = obj.scrollLeft + offset;

      if (_scrollLeft < 0) _scrollLeft = 0;
      else if (_scrollLeft > obj.maxXScroll) _scrollLeft = obj.maxXScroll;

      if (!_scrollLeft) addClass(obj.prevButton,'hidden');
      else removeClass(obj.prevButton, 'hidden');

      if (_scrollLeft==obj.maxXScroll) addClass(obj.nextButton,'hidden');
      else removeClass(obj.nextButton, 'hidden');
      obj.scrollDirect = (offset > 0);
      obj.scrollTo = _scrollLeft;
      obj.speed = (offset) / time;
    }
    

    if (obj.scrollLeft != obj.scrollTo) {
      obj.scrollLeft += obj.speed;
      if ((obj.scrollDirect && obj.scrollLeft>obj.scrollTo) || (!obj.scrollDirect && obj.scrollLeft<obj.scrollTo)) {
        obj.scrollLeft = obj.scrollTo;
      }
      obj.timer = setTimeout('scroll_x(\''+id+'\')', 100);
    } else {
      obj.timer = 0;
    }
  }


function ScrollMenu(ElementID, data, offset)
{
    newIndex = data["currentIndex"] + offset;
		if (offset>0)
		{
			if (newIndex+data["showCount"]<=data["itemCount"])
			{
				currentElement = $(ElementID+data["currentIndex"]);
				if (currentElement) {
					currentElement.style.visibility = 'hidden';
					currentElement.style.display = 'none';
				};
				lastElement = $(ElementID+(newIndex+data["showCount"]-1));
				if (lastElement) {
					lastElement.style.display = "inline";
					lastElement.style.visibility = 'visible';
				};
				data["currentIndex"] = newIndex;
			}
		} else
		{
			if ((newIndex>=0) && (offset<0))
			{
				lastElement = $(ElementID+(data["currentIndex"]+data["showCount"]-1));
				if (lastElement) {
					lastElement.style.visibility='hidden';
					lastElement.style.display='none';
				};
				currentElement = $(ElementID+newIndex);
				if (currentElement) {
					currentElement.style.display='inline';
					currentElement.style.visibility='visible';
				};
				data["currentIndex"] = newIndex;
			}
		}
		
		left_opacity = (data["currentIndex"]>0)?1:0.5
		right_opacity = ((data["currentIndex"]+data["showCount"])<data["itemCount"])?1:0.5;
		if ($(ElementID+"_left")) $(ElementID+"_left").style.opacity = left_opacity;
		if ($(ElementID+"_right")) $(ElementID+"_right").style.opacity = right_opacity;
}

function checkHeights() {
  if( scrolling_div = document.getElementById('scrolling_news') ) {
    news_blocks = scrolling_div.childNodes;
    var max_height=0;
    for(i in news_blocks) {
      if (news_blocks[i].tagName=='DIV' && news_blocks[i].offsetHeight>max_height) max_height = news_blocks[i].offsetHeight;
    }
    for(i in news_blocks) {
      if (news_blocks[i].tagName=='DIV') news_blocks[i].style.height=max_height+'px';
    }
    scrolling_div.style.height = max_height+'px';
  }
}

function ScrollMenu_nom(ElementID, data, offset)
{
	ScrollMenu(ElementID, data, offset);
	prev_nom_div = $('prev_nom');
	next_nom_div = $('next_nom');
	if (data["currentIndex"]>0)
	{
		prev_nom_div.innerHTML = 'стр. '+data["currentIndex"];
		prev_nom_div.style.visibility = 'visible';
	} else
		prev_nom_div.style.visibility = 'hidden';

	if ((data["currentIndex"]+1)<data["itemCount"])
	{
		next_nom_div.innerHTML = 'стр. '+(data["currentIndex"]+2);
		next_nom_div.style.visibility = 'visible';
	} else
		next_nom_div.style.visibility = 'hidden';
}

function PrepareMenu(ElementID, data)
{
	div= document.getElementById(ElementID);
	i=0;
	while(content[i])
	{
		div.innerHTML += data["content"][i];
		i++;
	}
}

