$('table-menu').hide();

var NUM_TABLE_TYPES = 8;
var prod_menus = new Hash({});
var prod_menu_cached = new Hash({});
prod_menu_cached.each(function(item, index) { item = false; });

function img_menu_ajax_success(transport)
{
	var table_type = this.get('table_type');
	eval(transport.responseText);
//	prod_menus.set(table_type, )
	prod_menu_cached.set(table_type, true);
}

jacFoldingSubmenu.select_first_child = true;
jacFoldingSubmenu.fold_on_click = false;

var folding_menu = new jacFoldingMenu('table-menu-wrapper', 'table');

var parsons_types = new Array('coffee', 'console', 'cocktail', 'side');
var hforged_types = new Array('round-accent', 'rectangle-accent');
var wbase_types = new Array('js-coffee', 'js-side');
var dining_types = new Array('36-round', '48-round');

var table_type_by_cat = new Hash({parsons: parsons_types, 'hand-forged': hforged_types, 'wood-base': wbase_types,
	dining: dining_types, bench: new Array()});

var table_cat_titles = new Hash({parsons: 'Parsons Tables', 'hand-forged': 'Hand Forged Tables',
	'wood-base': 'Wood Base Tables', dining: 'Dining Tables', bench: 'Bench'});
var table_type_titles = new Hash({coffee: 'Coffee Table', console: 'Console Table', cocktail: 'Cocktail Table',
	side: 'Side Table', '36-round': '36" Round', '48-round': '48" Round', bench: 'bench', 'round-accent': 'Round Accent Table',
	'rectangle-accent': 'Rectangle Accent Table', 'js-coffee': 'JS Coffee Table', 'js-side': 'JS Side Table',
	custom: 'custom'});

var table_type_sizes = new Hash({coffee: '24&quot;D x 48&quot;W x 17&quot;H',
	console: '18&quot;D x 54&quot;W x 30&quot;H', cocktail: '18&quot;D x 24&quot;W x 23&quot;H',
	side: '18&quot;D x 18&quot;W x 27&quot;H', '36-round': '36&quot; dia. x 30&quot;H',
	'48-round': '48&quot; dia. x 30&quot;H', bench: '18&quot;D x 60&quot;W x 18&quot;H',
	'round-accent': '15&quot; dia. x 22&quot;H<br />Stone: 13 5/8&quot; dia.',
	'rectangle-accent': '15&quot;D x 10 1/4&quot;W x 22&quot;H<br />Stone: 15&quot; x 9&quot;',
	'js-coffee': '18&quot;D x 54&quot;W x 16&quot;H<br />Stone: 13 3/4&quot; x 49 3/4&quot;',
	'js-side': '24&quot;D x 24&quot;W x 16&quot;H<br />Stone: 20&quot; x 20&quot;',
	custom: ''});

//var reverse_table_type = new Hash();

/*
function table_menu_click(click_elem)
{
	var groups = click_elem.id.match(this.get('id_re'));
	if(groups.length >= 2)
	{
		var prod_menu_cat = groups[1];
		if(prod_menu_cached[prod_menu_cat])
			prod_menus[prod_menu_cat].update();
		else
			var prod_menu_ajax = new Ajax.Request(G_BASE_DIR + '/products/tables/tables-ajax.php',
				{method: 'get', onSuccess: img_menu_ajax_success.bind(new Hash({index: prod_menu_cat})),
				parameters: {cat: prod_menu_cat}});

		var table_type = reverse_table_type.get(prod_menu_cat);
		var table_title = table_type_titles.get(table_type);
		$('table-photo').src = img_dir + '/' + table_type + '.jpg';
		$('table-photo').writeAttribute({alt: table_title});
		$('table-title').src = img_dir + '/' + table_type + '-title-sel-small.png';
		$('table-title').writeAttribute({alt: table_title});
		$('table-size').update(table_type_sizes.get(table_type));
	}
}
*/

function table_menu_click(click_elem)
{
	var table_type = this.get('table_type');
	var img_dir = this.get('img_dir');
	var prod_menu = prod_menus.get(table_type);
	if(prod_menu != null)
		prod_menu.update();
	else
		var prod_menu_ajax = new Ajax.Request(G_BASE_DIR + '/products/tables/tables-ajax.php',
			{method: 'get', onSuccess: img_menu_ajax_success.bind(new Hash({table_type: table_type})),
			parameters: {type: table_type}});

	var table_title = table_type_titles.get(table_type);
	$('table-photo').writeAttribute({src: img_dir + '/' + table_type + '.jpg', alt: table_title});
	$('table-title').writeAttribute({src: img_dir + '/title-' + table_type + '-sel.png', alt: table_title});
	$('table-size').update(table_type_sizes.get(table_type));
	
	var logo_img = this.get('logo_img');
	if(logo_img != null)
	{
		$('table-logo').writeAttribute({src: img_dir + '/' + logo_img, alt: table_cat_titles.get(this.get('table_cat')) + ' logo'});
		$('table-logo-link').writeAttribute({href: this.get('logo_link')});
		$('table-logo-wrapper').show();
	}
	else
	{
		$('table-logo-wrapper').hide();
		$('table-logo').writeAttribute({src: '', alt: 'logo placeholder'});
		$('table-logo-link').writeAttribute({href: '#'});
	}
}

var index = 0;
var img_dir = G_BASE_DIR + '/res/images/products/tables'; 
//var first_menu_item = null;
var start_tag = '<img src="', end_tag = '';
var key = '', val = null;
var title_img = '', sel_img = '', img_xhtml = '', sel_img_xhtml = '', logo_img = '';
var first_menu_item = null, new_menu_item = null;
var id_re = /^table-folding-menu-([0-9]+)$/;
var menu_item_data = null;

var table_type_keys = table_type_by_cat.keys();

for(var i = 0, len = table_type_keys.length; i < len; ++i)
{
	key = table_type_keys[i];
	val = table_type_by_cat.get(key);

	end_tag = '" alt="' + table_cat_titles.get(key) + '" />';

	title_img = img_dir + '/title-' + key + '.png';
	img_xhtml = start_tag + title_img + end_tag;

	sel_img = img_dir + '/title-' + key + '-sel.png';
	sel_img_xhtml = start_tag + sel_img + end_tag;
	cache_image(sel_img);
	
	if(key == 'wood-base')
	{
		logo_img = 'logo-john-strauss.png';
		logo_link = 'http://www.straussfurniture.com';
	}
	else if(key == 'hand-forged')
	{
		logo_img = 'logo-charleston-forge.png';
		logo_link = 'http://www.charlestonforge.com';
	}
	else
		logo_img = logo_link = null;

	if(val.length == 0)
	{
		prod_menus.set(key, null);
		prod_menu_cached.set(key, false);

		menu_item_data = new Hash({table_type: key, table_cat: key, img_dir: img_dir, logo_img: logo_img, logo_link: logo_link});
		new_menu_item = new jacFoldingMenuItemJS(img_xhtml, sel_img_xhtml, table_menu_click.bind(menu_item_data));
		if(first_menu_item == null)
			first_menu_item = new_menu_item;
	}
	else
	{
		var children = new Array();
		for(var j = 0, len_1 = val.length; j < len_1; ++j)
		{
			var title = table_type_titles.get(val[j]);
			end_tag = '" alt="' + title + '" />';

			var title_img_1 = img_dir + '/title-' + val[j] + '.png';
			var img_xhtml_1 = start_tag + title_img_1 + end_tag;

			var sel_img_1 = img_dir + '/title-' + val[j] + '-sel.png';
			var sel_img_xhtml_1 = start_tag + sel_img_1 + end_tag;
			cache_image(sel_img_1);

			prod_menus.set(val[j], null);
			prod_menu_cached.set(val[j], false);

			menu_item_data = new Hash({table_type: val[j], table_cat: key, img_dir: img_dir, logo_img: logo_img, logo_link: logo_link});
			children.push(new jacFoldingMenuItemJS(img_xhtml_1, sel_img_xhtml_1, table_menu_click.bind(menu_item_data)));
			if(first_menu_item == null)
				first_menu_item = children.last();
		}
		new_menu_item = new jacFoldingSubmenu(img_xhtml, sel_img_xhtml, children);
	}

	folding_menu.add_child(new_menu_item);
}

/*
table_type_titles.each(
	function(pair)
	{
		//something is up with the scope, that's why img_dir is redefined
		var img_dir = G_BASE_DIR + '/res/images/products/tables';
		var start_tag = '<img src="';
		var end_tag = '" alt="' + pair.value + '" />';

		var title_img = img_dir + '/' + pair.key + '-title.png';
		var img_xhtml = start_tag + title_img + end_tag;

		var sel_img = img_dir + '/' + pair.key + '-title-sel.png';
		var sel_img_xhtml = start_tag + sel_img + end_tag;
		cache_image(sel_img);

		reverse_table_type.set(index++, pair.key);
		var new_menu_item = new jacFoldingMenuItemJS(img_xhtml, sel_img_xhtml,
			function(click_elem)
			{
				var id_re = /^table-folding-menu-([0-9]+)$/;
				var groups = click_elem.id.match(id_re);
				if(groups.length >= 2)
				{
					var prod_menu_cat = groups[1];
					if(prod_menu_cached[prod_menu_cat])
						prod_menus[prod_menu_cat].update();
					else
						var prod_menu_ajax = new Ajax.Request(G_BASE_DIR + '/products/tables/tables-ajax.php',
							{method: 'get', onSuccess: img_menu_ajax_success.bind(new Hash({index: prod_menu_cat})),
							parameters: {cat: prod_menu_cat}});

					var table_type = reverse_table_type.get(prod_menu_cat);
					var table_title = table_type_titles.get(table_type);
					$('table-photo').src = img_dir + '/' + table_type + '.jpg';
					$('table-photo').writeAttribute({alt: table_title});
					$('table-title').src = img_dir + '/' + table_type + '-title-sel-small.png';
					$('table-title').writeAttribute({alt: table_title});
					$('table-size').update(table_type_sizes.get(table_type));
				}
			});
		if(first_menu_item == null)
			first_menu_item = new_menu_item;
		folding_menu.add_child(new_menu_item);
	});
*/

//folding_menu.add_child(new jacFoldingMenuItemJS());

folding_menu.update();
first_menu_item.select();

