
// **********************************
// common.js
// Библиотека вспомогательных функций.

// Определение координат элемента на странице.
// Эта функция возвращает объект со свойствами left, top, width и height,
// определяющими координаты элемента относительно верхнего угла страницы и его размер.

function getBounds(element)
{
    var left = element.offsetLeft;
    var top = element.offsetTop;
    for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
    {
        left += parent.offsetLeft;
        top += parent.offsetTop;
    }
    return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

function setBounds(element, left, top, width, height)
{
	setPosition(element, left, top);
	setSize(element, width, height);
}

function setSize(element, width, height)
{
	var style = element.style;
	style.width = width + "px";
	style.height = height + "px";
}

function setPosition(element, left, top)
{
	element.style.left = left + "px";
	element.style.top = top + "px";
}

function offsetPosition(element, dx, dy)
{
	setPosition(element, parseInt(element.style.left) + dx,	parseInt(element.style.top) + dy);
}

function getParent(element)
{
	return element.parentNode ? element.parentNode : element.parentElement;
}

function ref(id) { return document.getElementById(id); }

function maxwind() { 
  if (navigator.userAgent.indexOf("Mac")!=-1 || 
      navigator.userAgent.indexOf("Gecko")!=-1 ||   
      navigator.userAgent.indexOf("Netscape")!=-1) 
    var offset = 0; 
  else     var offset = 4; 
  window.moveTo(-offset, -offset); 
  window.resizeTo(screen.availWidth+(2*offset), screen.availHeight+(2*offset)) 
}

var runner_width = 50,
	runner_height = 5,
	runner_offset = 30,
	runner_delay = 70,
	timer_id;

function index_onload()
{
	//
	var bounds = getBounds(getParent(runner));
	setBounds(runner, bounds.left, bounds.top, runner_width, runner_height);
	//alert('pause');
	timer_id = setTimeout(moveRunner, runner_delay);
}

function stub(message) {
	alert((message ? "\"" + message + "\" в" : "В") + ' разработке.');
	return false;
}

function moveRunner()
{
	var bounds = getBounds(getParent(runner));
	var xpos = getBounds(runner).left + runner_offset;
	if (xpos >= (bounds.left + bounds.width)) xpos = bounds.left;
	setBounds(runner, xpos, bounds.top, Math.min(runner_width, (bounds.left + bounds.width - xpos)), runner_height);
	timer_id = setTimeout(moveRunner, runner_delay);
}

function stopRunner(menuitem)
{
	clearTimeout(timer_id);
	var cell_bounds = getBounds(menuitem); // координаты ячейки td
	var bounds = getBounds(getParent(runner));
	setBounds(runner, cell_bounds.left - 5, bounds.top, cell_bounds.width + 10, runner_height);
}