function $() {    
  var elements = new Array();    
  for (var i = 0; i < arguments.length; i++) {    
    var element = arguments[i];    
    if (typeof element == 'string')    
      element = document.getElementById(element);    

    if (arguments.length == 1)    
      return element;    

    elements.push(element);    
  }    

  return elements;    
} 


var submenuHidden	= 'submenu_hidden';
var submenuVisible	= 'submenu_visible';
var menuBlock		= 'menuBlock';
var menuOverClass	= 'over';
var menuOutClass	= '';



offsetBlocksStart = function(blockName, offset, offsetLeft, timeout, shift, caruselId) {
	var floatFirstChild	= $(blockName).firstChild; while(floatFirstChild.tagName != 'DIV') floatFirstChild = floatFirstChild.nextSibling;
	var blockWidth		= floatFirstChild.clientWidth;
	offsetBlocks(blockName, offset, offsetLeft, timeout, shift, caruselId, blockWidth);
}


offsetBlocks = function(blockName, offset, offsetLeft, timeout, shift, caruselId, blockWidth)
{
	var floatBlock = $(blockName);

	floatBlock.inProc	= true;

	vect = shift > 0 ? 1 : -1;

	offsetLeft += offset+(vect*shift);
	if(offsetLeft < 40)
		offset++;
	if(offsetLeft >= (blockWidth-40))
		offset--;

	if(offsetLeft > blockWidth) {
		stopOffset(floatBlock.timerId, blockName, offset, offsetLeft, timeout, shift, caruselId, blockWidth);
		return false;
	}

	floatBlock.style.left = (floatBlock.offsetLeft + offset*vect + shift)+'px';
	

	floatBlock.timerId = setTimeout("offsetBlocks('"+blockName+"', "+offset+", "+offsetLeft+", "+timeout+", "+shift+", "+caruselId+", "+blockWidth+")", timeout);
}

stopOffset = function(timerId, blockName, offset, offsetLeft, timeout, shift, caruselId, blockWidth)
{
	var floatBlock = $(blockName);

	clearTimeout(floatBlock.timerId);

	var floatLastChild	= floatBlock.lastChild;  while(floatLastChild.tagName != 'DIV') floatLastChild = floatLastChild.previousSibling;
	var floatFirstChild	= floatBlock.firstChild; while(floatFirstChild.tagName != 'DIV') floatFirstChild = floatFirstChild.nextSibling;

	//floatBlock.style.left = (-blockWidth)+'px';
	floatBlock.style.left = 0+'px';
	if(shift > 0) {
		floatBlock.insertBefore(floatBlock.removeChild(floatLastChild), floatFirstChild);
	} else {
		floatBlock.appendChild(floatBlock.removeChild(floatFirstChild));
	}

	floatBlock.inProc	= false;

	if(caruselId)
		caruselFunc(blockName, offset, offsetLeft, timeout, shift, caruselId);
}

//линейка с каталогами
countLimit = function(parentBlock, limit) {
	var childBlock = parentBlock.firstChild;
	var count = 0;
	while(childBlock) {
		if(childBlock.tagName == 'DIV') {
			count++;
		}
		childBlock = childBlock.nextSibling;
	}
	if(count <= limit) {
		parentBlock.style.left = 0+'px';
		return false;
	} else {
		return true;
	}
}
	//следующий
catNext = function(limitBlocks)
{
	if(!countLimit($('part_menu_items'), limitBlocks))
		return false;

	if($('part_menu_items').inProc)
		return false;

	var timerId				= false;
	var offset				= 1;
	var offsetLeft			= 0;
	var timeout				= 3;
	var shift				= 4;
	var caruselId			= false;

	offsetBlocksStart('part_menu_items', offset, offsetLeft, timeout, shift, caruselId);
}
	//предыдущий
catPrev = function(limitBlocks)
{
	if(!countLimit($('part_menu_items'), limitBlocks))
		return false;

	if($('part_menu_items').inProc)
		return false;

	var timerId				= false;
	var offset				= 1;
	var offsetLeft			= 0;
	var timeout				= 20;
	var shift				= -4;
	var caruselId			= false;

	offsetBlocksStart('part_menu_items', offset, offsetLeft, timeout, shift, caruselId);
}
	//"карусэл" для каталога
caruselFunc = function(blockName, offset, offsetLeft, timeout, shift, caruselId) {

	if(!$(blockName).caruselId)
		return false;

	clearTimeout($(blockName).caruselId);
	offsetLeft			= 0;

	$(blockName).caruselId = setTimeout("offsetBlocksStart('"+blockName+"', "+offset+", "+offsetLeft+", "+timeout+", "+shift+", "+caruselId+")", 2000);
}
	//старт карусэл
catCaruselStart = function(limitBlocks) {
	if(!countLimit($('part_menu_items'), limitBlocks))
		return false;

	var timerId				= false;
	var offset				= 1;
	var offsetLeft			= 0;
	var timeout				= 5;
	var shift				= -1;
	var caruselId			= true;
	$('part_menu_items').caruselId	 = true;

	caruselFunc('part_menu_items', offset, offsetLeft, timeout, shift, caruselId);
}
	//стоп карусэл
catCaruselStop = function() {
	clearTimeout($('part_menu_items').caruselId);
	$('part_menu_items').caruselId	 = false;
}

/*вспомогательные скрипты*/
if(!document.all) {
	event = new Object;
	window.onmousemove = function(Event) {
		event.clientX = Event.clientX;
		event.clientY = Event.clientY;
		absX	= event.clientX + scrollX;
		absY	= event.clientY + scrollY;
	}
} else {
	document.onmousemove = function() {
		scrollY = document.body.scrollTop;
		scrollX = document.body.scrollLeft;
		absX	= event.clientX + scrollX;
		absY	= event.clientY + scrollY;
	}
}


aOver = function(obj) {
	obj.className = 'over';
}

aOut = function(obj) {
	obj.className = '';
}
