wssaccordian_slideOpenInterval = [];
wssaccordian_slideCloseInterval = [];
wssaccordian_scrollInterval = null;

function wssaccordian_toggle(id, height)
{
	elem = $(id);

	if (elem)
	{
		y = (parseInt(elem.getStyle('height')) >= 0) ? parseInt(elem.getStyle('height')) : 0;
		max_y = ($$('#'+id+' div').length * accordian_subitem_height) + accordian_item_height + (accordian_subitems_margin_y * 2);

		if (wssaccordian_slideCloseInterval[id] != null || y == accordian_item_height)
		{
			// Open the accordian
			$(id+'_trigger').addClassName($(id+'_trigger').className.split(" ")[0]+'_selected');


			if (wssaccordian_slideCloseInterval[id] != null)
			{
				window.clearInterval(wssaccordian_slideCloseInterval[id]);
				wssaccordian_slideCloseInterval[id] = null;
			}

			if (wssaccordian_slideOpenInterval[id] == null)
			{
				// Close all other sections
				accordian_items = $$('#accordian div.accordian_item');
				for (i = 0; i < accordian_items.length; i++)
				{
					if (wssaccordian_slideOpenInterval[accordian_items[i].id] != null)
					{
						window.clearInterval(wssaccordian_slideOpenInterval[accordian_items[i].id]);
						wssaccordian_slideOpenInterval[accordian_items[i].id] = null;
					}

					if (accordian_items[i].id != id)
					{
						if (wssaccordian_slideCloseInterval[accordian_items[i].id] == null)
						{
							if (wssaccordian_scrollInterval == null)
							{
								wssaccordian_scrollInterval = window.setInterval('wssaccordian_scrollToTop()', 50);
							}

							$(accordian_items[i].id+'_trigger').removeClassName($(accordian_items[i].id+'_trigger').className.split(" ")[0]+'_selected');
							wssaccordian_slideCloseInterval[accordian_items[i].id] = window.setInterval('wssaccordian_slideClose("'+accordian_items[i].id+'")', 50);
						}
					}
				}

				//Open the section
				wssaccordian_slideOpenInterval[id] = window.setInterval('wssaccordian_slideOpen("'+id+'", '+height+')', 50);
			}
		}else{
			// Close the section
			if (wssaccordian_slideOpenInterval[id] != null)
			{
				window.clearInterval(wssaccordian_slideOpenInterval[id]);
				wssaccordian_slideOpenInterval[id] = null;
			}

			if (wssaccordian_slideCloseInterval[id] == null)
			{
				if (wssaccordian_scrollInterval == null)
				{
					wssaccordian_scrollInterval = window.setInterval('wssaccordian_scrollToTop()', 50);
				}

				$(id+'_trigger').removeClassName($(id+'_trigger').className.split(" ")[0]+'_selected');
				wssaccordian_slideCloseInterval[id] = window.setInterval('wssaccordian_slideClose("'+id+'")', 50);
			}
		}
	}
}

function wssaccordian_slideOpen(id, subitem_height)
{
	elem = $(id);

	if (elem)
	{
		y = (parseInt(elem.getStyle('height')) >= 0) ? parseInt(elem.getStyle('height')) : 0;
		goal_y = (Math.ceil($$('#'+id+' div.product').length / 3) * (subitem_height + accordian_subitems_margin_y)) + accordian_item_height + accordian_item_border_height_y;

		if (y < goal_y)
		{
			new_y = parseInt(Math.ceil((goal_y - y) / 10)) + y;

			elem.setStyle({height: new_y+'px'});
		}else{
			window.clearInterval(wssaccordian_slideOpenInterval[id]);
			wssaccordian_slideOpenInterval[id] = null;

//			if (wssaccordian_scrollInterval == null)
//			{
//				wssaccordian_scrollInterval = window.setInterval('wssaccordian_scrollTo(330)', 50);
//			}

		}
	}
}

function wssaccordian_slideClose(id)
{
	elem = $(id);

	if (elem)
	{
		y = (parseInt(elem.getStyle('height')) >= 0) ? parseInt(elem.getStyle('height')) : 60;
		goal_y = accordian_item_height;

		if (y > goal_y)
		{
			new_y = y - parseInt(Math.ceil((y - goal_y) / 1));

			elem.setStyle({height: new_y+'px'});
		}else{
			window.clearInterval(wssaccordian_slideCloseInterval[id]);
			wssaccordian_slideCloseInterval[id] = null;
		}
	}
}

var lasty = [];
function wssaccordian_scrollToTop()
{
	topy = 330;

	if (window.scrollY >= 0 && navigator.userAgent.indexOf("Firefox") >= 0)
	{
		if (window.scrollY != topy)
		{
			if (window.scrollY > topy)
			{
				goal_y = window.scrollY - Math.floor((window.scrollY - topy) / 3);
			}else{
				goal_y = Math.floor((topy - window.scrollY) / 3) + window.scrollY;
			}
			
			if (lasty['y'] == goal_y)
			{
				lasty['iterations']++;
			}else{
				lasty['y'] = goal_y;
				lasty['iterations'] = 0;
			}

			if (lasty['iterations'] > 3)
			{
				window.clearInterval(wssaccordian_scrollInterval);
				wssaccordian_scrollInterval = null;		
			}else{
				window.scrollTo(0, goal_y);
			}
		}else{
			window.clearInterval(wssaccordian_scrollInterval);
			wssaccordian_scrollInterval = null;
		}
	}else{
		window.clearInterval(wssaccordian_scrollInterval);
		wssaccordian_scrollInterval = null;
	}
}

// get all items within the accordian div
accordian_items = $$('#accordian div.accordian_item');

tallestdiv = 0;
for (i = 0; i < accordian_items.length; i++)
{
//	if (accordian_default != "all")
//	{
		if (accordian_items[i].id.replace('accordian_item_', '') != accordian_default && accordian_default != "all")
		{
			$(accordian_items[i].id).setStyle({height: accordian_item_height+'px'});
		}else{
			goal_y = (Math.ceil($$('#'+accordian_items[i].id+' div.product').length / 3) * (accordian_subitem_heights[i] + accordian_subitems_margin_y)) + accordian_item_height + accordian_item_border_height_y;
			$(accordian_items[i].id).setStyle({height: goal_y+'px'});
			$(accordian_items[i].id+'_trigger').addClassName(accordian_selectedClassNames[i]);
		}
//	}

	wssaccordian_slideOpenInterval[this.id] = null;
	wssaccordian_slideCloseInterval[this.id] = null;

	Event.observe(accordian_items[i].id+'_trigger', 'mouseover', function() {
		$(this.id).removeClassName('inactive');
	});
	Event.observe(accordian_items[i].id+'_trigger', 'mouseout', function() {
		$(this.id).addClassName('inactive');
	});
	Event.observe(accordian_items[i].id+'_trigger', 'click', function() {
		wssaccordian_toggle(this.id.replace('_trigger', ''), accordian_subitem_heights[this.id.replace('_trigger', '').replace('accordian_item_', '')]);
	});

	tallestdiv = ((Math.ceil($$('#'+accordian_items[i].id+' div.product').length / 3) * accordian_subitem_heights[accordian_items[i].id.replace('accordian_item_', '')]) > tallestdiv) ? (Math.ceil($$('#'+accordian_items[i].id+' div.product').length / 3) * accordian_subitem_heights[accordian_items[i].id.replace('accordian_item_', '')]) : tallestdiv;
}

// set the height of the accordian div
//accordian_height = ((accordian_item_height + 2) * accordian_items.length) + (accordian_subitem_height * mostsubitems);
if (tallestdiv > 0 && accordian_default != "all")
{
	$('accordian').setStyle({maxHeight: (tallestdiv + 350)+'px'});
}

