var slotsMenues2 = new Array();
var slotsMenues2_DIV = null;
var slotsMenues2_Cap = null;
var slotsMenues2_Body = null;
var slotsMenues2_Viewport = null;
var slotsMenues2_Current = -1;
var slotsMenues2_Timer = 0;
var slotsMenues2_Moving = 0;

var SLOTS_MENUES_2_INTERVAL = 30;
var SLOTS_MENUES_2_SPEED = 20;

function slotsMenues2_CreateSlotsDIV()
{
	if (slotsMenues2_DIV != null) return true;

	var preContentDIV = document.getElementById('pre_content');
	if (preContentDIV == null) return false;

	slotsMenues2_DIV = document.createElement('DIV');
	slotsMenues2_DIV.className = 'SlotsMenu2';
	preContentDIV.appendChild(slotsMenues2_DIV);

	slotsMenues2_Cap = document.createElement('DIV');
	slotsMenues2_Cap.className = 'Cap';
	slotsMenues2_DIV.appendChild(slotsMenues2_Cap);

	slotsMenues2_Body = document.createElement('DIV');
	slotsMenues2_Body.className = 'Body';
	slotsMenues2_DIV.appendChild(slotsMenues2_Body);

	var sideElem = document.createElement('DIV');
	sideElem.className = 'Side Left';
	var sideBtn = document.createElement('A');
	sideBtn.href = '#';
	sideBtn.onclick = function(e) { return false; };
	sideBtn.onmousedown = function(e) { return slotsMenues2_Handler(e, -SLOTS_MENUES_2_SPEED); };
	sideBtn.onmouseup = function(e) { return slotsMenues2_Handler(e, 0); };
	sideBtn.onmouseout = function(e) { return slotsMenues2_Handler(e, 0); };
	slotsMenues2_Body.appendChild(sideElem);
	sideElem.appendChild(sideBtn);

	sideElem = document.createElement('DIV');
	sideElem.className = 'Side Right';
	sideBtn = document.createElement('A');
	sideBtn.href = '#';
	sideBtn.onclick = function(e) { return false; };
	sideBtn.onmousedown = function(e) { return slotsMenues2_Handler(e, SLOTS_MENUES_2_SPEED); };
	sideBtn.onmouseup = function(e) { return slotsMenues2_Handler(e, 0); };
	sideBtn.onmouseout = function(e) { return slotsMenues2_Handler(e, 0); };
	slotsMenues2_Body.appendChild(sideElem);
	sideElem.appendChild(sideBtn);

	slotsMenues2_Viewport = document.createElement('DIV');
	slotsMenues2_Viewport.className = 'Viewport';
	slotsMenues2_Body.appendChild(slotsMenues2_Viewport);

	return true;
};

function slotsMenues2_CreateSlotsMenu(caption, items)
{
	if ((caption == '') || (items.length == 0)) return false;
	if (!slotsMenues2_CreateSlotsDIV()) return false;

	var slotMenuIndex = slotsMenues2.length;
	slotsMenues2[slotMenuIndex] = new Object;
	var newSlotMenu = slotsMenues2[slotMenuIndex];

	newSlotMenu.button = document.createElement('A');
	newSlotMenu.button.className = 'Normal';
	newSlotMenu.button.innerHTML = caption;
	newSlotMenu.button.href = '#';
	newSlotMenu.button.slotsMenuesIndex = slotMenuIndex;
	newSlotMenu.button.onclick = function(e) { return slotsMenues2_CatCapClick(e); };
	slotsMenues2_Cap.appendChild(newSlotMenu.button);

	newSlotMenu.container = document.createElement('DIV');
	newSlotMenu.container.className = 'Container';
	newSlotMenu.container.style.display = 'none';
	var itemElem = null;
	var contWidth = 0, contHeight = 0;
	var currentPos = -1;
	for (var si = 0; si < items.length; si++)
	{
		if (items[si].URI != '')
		{
			itemElem = document.createElement('A');
			itemElem.href = items[si].URI;
		} else {
			itemElem = document.createElement('B');
			currentPos = contWidth;
		};
		itemElem.className = 'Slot';
		itemElem.innerHTML = "<i style=\"background-image: url('"+items[si].image+"');\"></i><br><span>"+items[si].caption+'</span>';
		itemElem.style.left = contWidth + 'px';
		itemElem.style.top = contHeight + 'px';
		contWidth += 141;
		contHeight -= 177;
		newSlotMenu.container.appendChild(itemElem);
	};
	itemElem = undefined;
	slotsMenues2_Viewport.appendChild(newSlotMenu.container);

	newSlotMenu.speed = 0;
	newSlotMenu.pos = 0;
	newSlotMenu.width = contWidth - 1;
	newSlotMenu.scrollWidth = newSlotMenu.width - slotsMenues2_Viewport.offsetWidth;
	if (newSlotMenu.scrollWidth < 0) newSlotMenu.scrollWidth = 0;

	if (currentPos >= 0) slotsMenues2_ScrollTo(newSlotMenu, currentPos - slotsMenues2_Viewport.offsetWidth + 320);

	return true;
};

function slotsMenues2_InitDIV(categoryDiv)
{
	if ((categoryDiv.rows.length != 1) && (categoryDiv.rows[0].cells.length != 2)) return false;

	var caption = '';
	//var uri = '';
	var elem = categoryDiv.rows[0].cells[0];
	if ((elem.firstChild == null) || (elem.firstChild.nodeType != 1)) return false;
	elem = elem.firstChild;
	//if (elem.nodeName == 'A') uri = elem.href;
	caption = elem.innerHTML;
	elem = null;

	var itemsCell = categoryDiv.rows[0].cells[1];
	var items = new Array();

	elem = itemsCell.firstChild;
	var elemIndex = 0;
	while (elem != null)
	{
		if ((elem.nodeType == 1) && (elem.nodeName == 'SPAN'))
		{
			if ((elem.childNodes.length >= 2) && (elem.childNodes[0].nodeType == 1) && (elem.childNodes[1].nodeType == 1) && (elem.childNodes[1].nodeName == 'INPUT'))
			{
				items[elemIndex] = new Object();
				items[elemIndex].caption = elem.childNodes[0].innerHTML;
				items[elemIndex].image = elem.childNodes[1].value;
				items[elemIndex].URI = (elem.childNodes[0].nodeName == 'A' ? elem.childNodes[0].href : '');
				elemIndex++;
			};
		};
		elem = elem.nextSibling;
	};
	itemsCell = undefined;
	elem = undefined;

	if (!slotsMenues2_CreateSlotsMenu(caption, items)) return false;

	items = undefined;

	return true;
};

function slotsMenues2_GetCsm()
{
	var query = location.search;
	if (query.length < 2) return 0;
	var ps = query.indexOf('csm=', 1);
	if (ps < 0) return 0;
	ps += 4;
	if (query.length <= ps) return 0;
	var ps2 = query.indexOf('&', ps);
	if (ps == ps2) return 0;
	ps = Math.floor(ps2 < 0 ? query.substr(ps) : query.substring(ps, ps2));
	return (isNaN(ps) ? 0 : ps);
};

/** Производит инициализацию всех слотовых меню на странице. **/
function slotsMenues2_InitAll()
{
	var divs = document.getElementsByTagName('TABLE');
	var firstToRemove = null;
	var menuToSetCurrent = 0;
	var menuToSetCurrentID = slotsMenues2_GetCsm();
	var curMenuID = 0;
	for (var i = 0; i < divs.length; i++)
	{
		if ((divs[i].className == 'Category') && slotsMenues2_InitDIV(divs[i]))
		{
			if ((divs[i].id.length > 7) && (divs[i].id.substr(0, 7) == 'wpgcat_'))
			{
				curMenuID = Math.floor(divs[i].id.substr(7));
				if (!isNaN(curMenuID) && (curMenuID > 0) && (curMenuID == menuToSetCurrentID)) menuToSetCurrent = slotsMenues2.length - 1;
			};

			if (firstToRemove == null)
			{
				divs[i].nextToRemove = null;
			} else {
				divs[i].nextToRemove = firstToRemove;
			};
			firstToRemove = divs[i];
		};
	};
	divs = undefined;
	if (slotsMenues2.length == 0) return;
	var nextToRemove = null;
	while (firstToRemove != null)
	{
		nextToRemove = firstToRemove.nextToRemove;
		firstToRemove.parentNode.removeChild(firstToRemove);
		firstToRemove = nextToRemove;
	};
	firstToRemove = undefined;
	nextToRemove = undefined;
	slotsMenues2_SetCurrent(menuToSetCurrent);
};

function slotsMenues2_CatCapClick(e)
{
	elem = (e == undefined ? event.srcElement : e.target);
	if (elem.slotsMenuesIndex != undefined) slotsMenues2_SetCurrent(elem.slotsMenuesIndex);
	return false;
};

function slotsMenues2_SetCurrent(index)
{
	if (slotsMenues2_Current == index) return;
	if (slotsMenues2_Current >= 0)
	{
		slotsMenues2[slotsMenues2_Current].button.className = 'Normal';
		slotsMenues2[slotsMenues2_Current].container.style.display = 'none';
	};
	slotsMenues2_Current = index;
	if (slotsMenues2_Current >= 0)
	{
		slotsMenues2[slotsMenues2_Current].button.className = 'Current';
		slotsMenues2[slotsMenues2_Current].container.style.display = 'block';
	};
};

function slotsMenues2_Handler(e, speed)
{
	if (slotsMenues2_Current < 0) return;
	slotsMenues2_SetSpeed(slotsMenues2[slotsMenues2_Current], speed);
};

function slotsMenues2_SetSpeed(menu, speed)
{
	if (menu.speed == speed) return;
	if (menu.speed == 0) { // запуск
		if (menu.pos == (speed > 0 ? menu.scrollWidth : 0)) return;
		if (slotsMenues2_Moving == 0) slotsMenues2_Timer = setInterval('slotsMenues2_AnimateAll();', SLOTS_MENUES_2_INTERVAL);
		slotsMenues2_Moving++;
	} else if (speed == 0) { // остановка
		slotsMenues2_Moving--;
		if (slotsMenues2_Moving == 0)
		{
			clearInterval(slotsMenues2_Timer);
			slotsMenues2_Timer = 0;
		};
	};
	menu.speed = speed;
};

function slotsMenues2_Animate(menu)
{
	if (menu.speed == 0) return;
	if (!slotsMenues2_ScrollBy(menu, menu.speed)) slotsMenues2_SetSpeed(menu, 0);
};

function slotsMenues2_AnimateAll()
{
	for (var i = 0; i < slotsMenues2.length; i++) slotsMenues2_Animate(slotsMenues2[i]);
};

function slotsMenues2_OnResize()
{
	for (var m = 0; m < slotsMenues2.length; m++) slotsMenues2_ApplyBounds(slotsMenues2[m]);
};

function slotsMenues2_ApplyBounds(menu)
{
	menu.scrollWidth = menu.width - slotsMenues2_Viewport.offsetWidth;
	if (menu.scrollWidth < 0) menu.scrollWidth = 0;

	if (menu.pos <= menu.scrollWidth) return;
	menu.pos = menu.scrollWidth;
	menu.container.style.left = -menu.pos+'px';
};

function slotsMenues2_ScrollTo(menu, new_pos)
{
	if (new_pos > menu.scrollWidth)
	{
		new_pos = menu.scrollWidth;
	} else if (new_pos < 0) {
		new_pos = 0;
	};
	if (menu.pos == new_pos) return false;
	menu.container.style.left = -new_pos+'px';
	menu.pos = new_pos;
	return true;
};

function slotsMenues2_ScrollBy(menu, delta)
{
	return slotsMenues2_ScrollTo(menu, menu.pos + delta);
};