var menu_speed = 1000;
var menu_initialized = false;
var menu_current = new Array();
var menu_hide_timeout = 0;
var menu_hide_manufacturer_timeout = 0;
var menu_hide_item_timeout = 0;
var menu_hide_room_timeout = 0;
var menu_hide_style_timeout = 0;
var menu_anim_timeout = 0;

var menu_anim = new Array();
function menu_anim_step(){
	menu_anim_timeout = window.setTimeout("menu_anim_step();", 10);
	for (var i=0; i<menu_anim.length; i++)
	{
		if (menu_anim[i]==null)continue;
		menu_anim[i].height += menu_anim[i].step;
		var h = menu_anim[i].height;
		var n = menu_anim[i].node;
		var id = menu_anim[i].id;
		if (menu_anim[i].step<0)
		{
			if (menu_anim[i].height<=menu_anim[i].limit){
				h = menu_anim[i].limit;
				menu_anim[i] = null;
			}
		}
		else {
			if (menu_anim[i].height>=menu_anim[i].limit){
				h = menu_anim[i].limit;
				menu_anim[i] = null;
			}
		}
		n.style.height = h+"px";
		if (h==0)
		{
			n.style.height = "1px";
			n.style.visibility = 'hidden';
			iesf(n, id, false);
		}
		else {
			n.style.visibility = 'visible';
			iesf(n, id, true);
		}
	}
}
menu_anim_step();

function menu_render(id, items){
	var div = document.createElement("div");
div.setAttribute("test", id);
	var html = "<table celpadding='0' cellspacing='0' border='0' width='100%'>";

	var cols = 1;
	if (items.items.length>20)cols = 2;
/*
	if (id=="shop_ITEM" && items.items.length>40){

		var tmp = new Array();
		for (var i=0; i<39; i++)
			tmp[i] = items.items[i];
		tmp[39] = {title: 'View All Items', url: '/shop/?show=ITEM'};
		items.items = tmp;
	}
*/
	var col = 1;
	var j;
	for (var k=0; k<items.items.length; k++)
	{
		if (cols==1)j=k;
		if (cols==2)j=Math.floor(k/2)+((col==2)?Math.ceil(items.items.length/2):0);
		if (col==1)html += '<tr>'; col++;
		if (items.items[j]['sub']){
			html += '<td '+(col>2?'style="border-left-width: 0;" ':'')+'onmouseover="this.className=\'over\'; menu_over(this, \''+id+':'+j+'\');" onmouseout="this.className=\'\'; menu_out(this, \''+id+':'+j+'\');" onclick="menu_click(\''+id+':'+j+'\');">&nbsp;'+items.items[j].title+'</td>';
			items.items[j].node = menu_render(id+':'+j, items.items[j]['sub']);
			items.items[j].parent = div;
		}
		else {
			html += '<td '+(col>2?'style="border-left-width: 0;" ':'')+'onmouseover="this.className=\'over\'; menu_over(this, \''+id+':'+j+'\');" onmouseout="this.className=\'\'; menu_out(this, \''+id+':'+j+'\');" onclick="menu_click(\''+id+':'+j+'\');">&nbsp;'+items.items[j].title+'</td>';
		}
		if (col>cols){html += '</tr>'; col=1;}
	}
	if (col!=1)html += '</tr>';
	html += '</table>';
	if (items.className)
	{
		div.className = "menu "+items.className;
	}
	else {
		div.className = "menu";
	}
	if (cols==2)div.className += " menu-wide";
	div.style.position = 'absolute';
	div.style.overflow = 'hidden';
	div.style.left = '250px';
	div.style.top = '150px';
	div.style.visibility = 'hidden';
	if (id.indexOf(':')==-1)
		div.style.height = '1px';
	div.innerHTML = html;
	div.style.left = 0;
	div.style.top = 0;
	div.style.zIndex = 2;
	document.body.appendChild(div);
	return div;
}

var menu_debug = false;
function menu_log(msg){
	if (!menu_debug)return;
	menu_debug.innerHTML = "<div>"+msg+"</div>"+menu_debug.innerHTML;
}

function menu_init(){
	if (menu_initialized)return;
	menu_initialized = true;
return;

	if (!menu_data)return;

	for (var i in menu_data)
	{
		menu_data[i].node = menu_render(i, menu_data[i]);
	}
/*
	menu_debug = document.createElement("div");
	menu_debug.style.position = 'fixed';
	menu_debug.style.left = '0px';
	menu_debug.style.top = '0px';
	menu_debug.style.backgroundColor = 'white';
	menu_debug.style.width = '300px';
	menu_debug.style.fontFamily = 'Verdana';
	menu_debug.style.fontSize = '11px';
	menu_debug.style.height = '400px';
	menu_debug.style.border = '1px solid black';
	menu_debug.style.overflow = "auto";
	document.body.appendChild(menu_debug);*/
}

function menu_node_pos(n){
	if (n.offsetParent)
	{
		var pos = menu_node_pos(n.offsetParent);
		pos.x+=n.offsetLeft;
		pos.y+=n.offsetTop;
		return pos;
	}
	return {x:n.offsetLeft, y:n.offsetTop};
}

function menu_click(id){
	var cur = menu_data;
	var tmp = id.split(/:/);
	var path = new Array();
	for (var i=0;i<tmp.length;i++)
	{
		if (!cur||!cur[tmp[i]]){
			break;
		}
		path[i] = cur[tmp[i]];
		if (!cur[tmp[i]].items)
		{
			if (cur[tmp[i]].sub)
				cur = cur[tmp[i]].sub.items;
			else
				break;
		}
		else
			cur = cur[tmp[i]].items;
	}
	if (path.length==0)return;
	var item = path[path.length-1];
	if (item.url){
		window.location = item.url;
	}
}

function iesf(node, id, show){
	if (!document.all)return;
	var fuid = id+'_iesf';
	if (show){
		var tmp = document.getElementById(fuid);
		if (!tmp)
		{
			document.body.insertAdjacentHTML("afterBegin","<iframe scrolling=no id='"+fuid+"' style='position:absolute; top:0; left:0; visibility:hidden; z-index:1; filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);' ></iframe>");
		}
		if (document.getElementById(fuid)){
		(wobj = document.getElementById(fuid).style).left = node.offsetLeft;
		wobj.top = node.offsetTop;
		wobj.width = node.offsetWidth;
		wobj.height = node.offsetHeight;
		wobj.visibility = 'visible';
		}
	}
	else 
		if (document.getElementById(fuid))document.getElementById(fuid).removeNode(true);
}

var menu_over_node = null;
function menu_over_manufacturer(n){
	menu_over_node = n;
	window.clearTimeout(menu_hide_manufacturer_timeout);
	$('tab-manufacturer').src = 'images_layout/layout_r2_c15_f2.gif';
	menu_hide2('brands');
	menu_hide_manufacturer_timeout = window.setTimeout("menu_over_manufacturer2(menu_over_node);", 400);
}
function menu_over_manufacturer2(n){
	menu_hide2('brands');
	window.clearTimeout(menu_hide_manufacturer_timeout);

	var menu_manufacturer = document.getElementById('menu-brands');
	if (!menu_manufacturer)return;

		if (n!=null){
		var pos = menu_node_pos(n);
		menu_manufacturer.style.left = pos.x-200+198+'px';
		menu_manufacturer.style.top = pos.y+n.offsetHeight-1+'px';
	}
	
	$('tab-manufacturer').src = 'images_layout/layout_r2_c15_f2.gif';
	menu_manufacturer.style.display = 'block';
	iesf(menu_manufacturer, 'menu-brands', true);
}

function menu_over_item(n){
	menu_over_node = n;
	window.clearTimeout(menu_hide_item_timeout);
	$('tab-item').src = 'images_layout/layout_r2_c10_f2.gif';
	menu_hide2('items');
	menu_hide_item_timeout = window.setTimeout("menu_over_item2(menu_over_node);", 400);
}
function menu_over_item2(n){
	menu_hide2('items');
	window.clearTimeout(menu_hide_item_timeout);

	var menu_item = document.getElementById('menu-items');
	if (!menu_item)return;

	if (n!=null){
		var pos = menu_node_pos(n);
		menu_item.style.left = pos.x-557+119+35+401+'px';
		menu_item.style.top = pos.y+n.offsetHeight-1+'px';
	}
	
	$('tab-item').src = 'images_layout/layout_r2_c10_f2.gif';
	menu_item.style.display = 'block';
	iesf(menu_item, 'menu-items', true);
}
function menu_over_style(n){
	menu_over_node = n;
	window.clearTimeout(menu_hide_style_timeout);
	$('tab-style').src = 'images_layout/layout_r2_c17_f2.gif';
	menu_hide2('style');
	menu_hide_style_timeout = window.setTimeout("menu_over_style2(menu_over_node);", 400);
}
function menu_over_style2(n){
	menu_hide2('style');
	window.clearTimeout(menu_hide_style_timeout);

	var menu_item = document.getElementById('menu-style');
	if (!menu_item)return;

	if (n!=null){
		var pos = menu_node_pos(n);
		menu_item.style.left = pos.x-557+119+35+322+'px';
		menu_item.style.top = pos.y+n.offsetHeight-1+'px';
	}
	
	$('tab-style').src = 'images_layout/layout_r2_c17_f2.gif';
	menu_item.style.display = 'block';
	iesf(menu_item, 'menu-style', true);
}
function menu_over_room(n){
	menu_over_node = n;
	window.clearTimeout(menu_hide_room_timeout);
	$('tab-room').src = 'images_layout/layout_r2_c8_f2.gif';
	menu_hide2('room');
	menu_hide_room_timeout = window.setTimeout("menu_over_room2(menu_over_node);", 400);
}
function menu_over_room2(n){
	menu_hide2('room');
	window.clearTimeout(menu_hide_room_timeout);

	var menu_item = document.getElementById('menu-room');
	if (!menu_item)return;

	if (n!=null){
		var pos = menu_node_pos(n);
		menu_item.style.left = pos.x-557+119+35+401+'px';
		menu_item.style.top = pos.y+n.offsetHeight-1+'px';
	}
	
	$('tab-room').src = 'images_layout/layout_r2_c8_f2.gif';
	menu_item.style.display = 'block';
	iesf(menu_item, 'menu-room', true);
}
function menu_over(n, id){
	if (!menu_initialized)return;

	menu_hide2('');

	var menu_item = null;
	var cur = menu_data;
	var tmp = id.split(/:/);
	var path = new Array();
	for (var i=0;i<tmp.length;i++)
	{
		if (!cur||!cur[tmp[i]]){
			break;
		}
		path[i] = cur[tmp[i]];
		cur = cur[tmp[i]].items;
	}

	window.clearTimeout(menu_hide_timeout);

	for (var i=path.length; i<menu_current.length; i++ )
	{
		if (menu_current[i]==null)break;
		if (menu_current[i].node){
			if (i==0)
				menu_hide_first(menu_current[i]);
			else {
				menu_current[i].node.style.visibility = 'hidden';
				iesf(menu_current[i], 'menu'+i, false);
			}
		}
		menu_current[i] = null;
	}

	var i = path.length-1;
	while (i>=0)
	{
		if (menu_current[i])
		{
			if (menu_current[i]==path[i])break;
			if (menu_current[i].node){
				if (i==0)
					menu_hide_first(menu_current[i]);
				else {
					menu_current[i].node.style.visibility = 'hidden';
					iesf(menu_current[i], 'menu'+i, false);
				}
			}
			menu_current[i] = null;
		}
		i--;
	}
	i++;

	if (i==path.length)return;
	while (i<path.length)
	{
		if (i==path.length-1 && n && path[i].node)
		{
			var pos = menu_node_pos(n);
			if (path[i].offsetLeft)
			{
				pos.x+=path[i].offsetLeft;
			}
			if (path[i].offsetTop)
			{
				pos.y+=path[i].offsetTop;
			}
			if (!document.all && i>0)
			{
				pos.y++;
			}
			if (i==0)
			{
				path[i].node.style.left = pos.x+'px';
				path[i].node.style.top = pos.y+n.offsetHeight+2+'px';
			}
			else {
				path[i].node.style.left = pos.x+n.offsetWidth-1+'px';
				path[i].node.style.top = pos.y+'px';
			}
		}
		if (path[i].node){
			menu_log(path[i].node.style.left+"-"+path[i].node.style.top);
			if (i==0)
				menu_show_first(path[i], 'menu'+i);
			else {
				path[i].node.style.visibility = 'visible';
				iesf(path[i].node, 'menu'+i, true);
			}
		}
		menu_current[i] = path[i];
		i++;
	}
}

function menu_out(n, id){
	if (!menu_initialized)return;
	window.clearTimeout(menu_hide_timeout);
	menu_hide_timeout = window.setTimeout("menu_hide();", 300);
}

function menu_out_manufacturer(n){
	window.clearTimeout(menu_hide_manufacturer_timeout);
	menu_hide_manufacturer_timeout = window.setTimeout("menu_hide_manufacturer();", 500);
}
function menu_hide_manufacturer(){
	$('tab-manufacturer').src = 'images_layout/layout_r2_c15.gif';
	var n = document.getElementById('menu-brands');
	window.clearTimeout(menu_hide_manufacturer_timeout);
	if (n){
		n.style.display = 'none';
		iesf(n, 'menu-brands', false);
	}
}
function menu_out_item(n){
	window.clearTimeout(menu_hide_item_timeout);
	menu_hide_item_timeout = window.setTimeout("menu_hide_item();", 500);
}
function menu_hide_item(){
	$('tab-item').src = 'images_layout/layout_r2_c10.gif';
	var n = document.getElementById('menu-items');
	window.clearTimeout(menu_hide_item_timeout);
	if (n){
		n.style.display = 'none';
		iesf(n, 'menu-items', false);
	}
}

function menu_out_style(n){
	window.clearTimeout(menu_hide_style_timeout);
	menu_hide_style_timeout = window.setTimeout("menu_hide_style();", 500);
}
function menu_hide_style(){
	$('tab-style').src = 'images_layout/layout_r2_c17.gif';
	var n = document.getElementById('menu-style');
	window.clearTimeout(menu_hide_style_timeout);
	if (n){
		n.style.display = 'none';
		iesf(n, 'menu-style', false);
	}
}

function menu_out_room(n){
	window.clearTimeout(menu_hide_room_timeout);
	menu_hide_room_timeout = window.setTimeout("menu_hide_room();", 500);
}
function menu_hide_room(){
	$('tab-room').src = 'images_layout/layout_r2_c8.gif';
	var n = document.getElementById('menu-room');
	window.clearTimeout(menu_hide_room_timeout);
	if (n){
		n.style.display = 'none';
		iesf(n, 'menu-room', false);
	}
}

function menu_hide2(id){
	var menu;
	if (id!="items"){
		menu = document.getElementById('menu-items');
		if (menu){
			$('tab-item').src = 'images_layout/layout_r2_c10.gif';
			window.clearTimeout(menu_hide_item_timeout);
			menu.style.display = 'none';
			iesf(menu, 'menu-items', false);
		}
	}
	if (id!="room"){
		menu = document.getElementById('menu-room');
		if (menu){
			$('tab-room').src = 'images_layout/layout_r2_c8.gif';
			window.clearTimeout(menu_hide_room_timeout);
			menu.style.display = 'none';
			iesf(menu, 'menu-room', false);
		}
	}
	if (id!="style"){
		menu = document.getElementById('menu-style');
		if (menu){
			$('tab-style').src = 'images_layout/layout_r2_c17.gif';
			window.clearTimeout(menu_hide_style_timeout);
			menu.style.display = 'none';
			iesf(menu, 'menu-style', false);
		}
	}
	if (id!="brands"){
		menu = document.getElementById('menu-brands');
		if (menu){
			$('tab-manufacturer').src = 'images_layout/layout_r2_c15.gif';
			window.clearTimeout(menu_hide_manufacturer_timeout);
			menu.style.display = 'none';
			iesf(menu, 'menu-brands', false);
		}
	}
	menu_hide();
}
function menu_hide(){
	for (var i=0; i<menu_current.length; i++ )
	{
		if (menu_current[i]==null)break;
		if (menu_current[i].node)
		{
			if (i==0)
				menu_hide_first(menu_current[i], 'menu'+i);
			else {
				menu_current[i].node.style.visibility = 'hidden';
				iesf(menu_current[i].node, 'menu'+i, false);
			}
		}
		menu_current[i] = null;
	}
}

function menu_hide_first(n, id){
	var anim = null;
	var pos = menu_anim.length;
	for (var i=0; i<menu_anim.length; i++)
	{
		if (!menu_anim[i])pos = i;
		if (menu_anim[i]&&menu_anim[i].node==n.node)
		{
			anim = menu_anim[i];
			break;
		}
	}
	if (anim==null)
	{
		anim = {node: n.node};
		anim.id = id;
		menu_anim[pos] = anim;
	}
	anim.height = n.node.offsetHeight;
	n.node.style.height = anim.height+"px";
	anim.limit = 0;
	anim.step = -menu_speed;
}
function menu_show_first(n, id){
	var anim = null;
	var pos = menu_anim.length;
	for (var i=0; i<menu_anim.length; i++)
	{
		if (!menu_anim[i])pos = i;
		if (menu_anim[i]&&menu_anim[i].node==n.node)
		{
			anim = menu_anim[i];
			break;
		}
	}
	if (anim==null)
	{
		anim = {node: n.node};
		anim.id = id;
		menu_anim[pos] = anim;
	}
	anim.height = n.node.offsetHeight;
	n.node.style.height = anim.height+"px";
	anim.limit = n.node.scrollHeight+10;
	anim.step = menu_speed;
}
