//switching between grid and list views
function switch_grid_list(item){
	item.identify();
	var func=function(evt){
		var e=Event.element(evt);
		var p=e.up();
		p.childElements().each(function(child){
			child.toggleClassName('on');
		});
	};
	Event.observe(item,"click",func);
}

function twist(item)
{
	// add the event listeners
	Event.observe(item,"click",function(evt){
		var heading=Event.element(evt);
	// add "twist" to h3 after click
		if(heading.hasClassName("twist"))
			heading.toggleClassName("on");
	// set display:none after toggle 
		if(heading.next()) heading.next().toggle();
	});
					
}


function anchor_section(item)
{
	$(item).scrollTo();
	throw $break;
}

Event.observe(window,"load",function(){

	$$('.grid-list a').each(switch_grid_list);
	$$('.twist').each(twist);
	$$('.scroll-to-item').each(anchor_section);
	
});

/* manages the tab navigation */
var PageTab={
	containerclass:'a-rel-tabs',
	activeclass:'on',
	modifier:'equals'
};
Object.extend(PageTab,Page);
PageTab.process=function(item)
{
	var parent=this.traverse(item,this.containerclass).identify();
	if(this[parent]==undefined)
		this[parent]=new Object();
	
	//set up the active tab and hide all others
	if(item.hasClassName(this.activeclass))
	{
		this[parent].selected=item;
		$(item.getAttribute("rel")).show()
	}
	else
		$(item.getAttribute("rel")).hide();

	var rel=item.readAttribute("rel");
	if(item.hasClassName(this.modifier))
	{
		item.identify();
		this.equalize($(rel).up().childElements());
		item.up().childElements().invoke("removeClassName",this.modifier);
	}
	this[parent][item.identify()]=new Object();
	this[parent][item.identify()].rel=rel;
	//replace the hrefs
	this[parent][item.identify()].href=item.readAttribute("href");
	item.setAttribute("href","javascript:void(0);");
	//add the onclick handler
	Event.observe(item,"click",this.click.bind(this));
};

PageTab.simulate=function(simulated)
{
	var rel=simulated.readAttribute("rel")
	simulated.setAttribute("href","javascript:void(0);");
	Event.observe(simulated,"click",this.click.bind(this,$(rel)));
};

PageTab.click=function(evt)
{
	if(evt.type)
		var e=Event.element(evt);
	else
		var e=evt;
	var p=this.traverse(e,this.containerclass).identify();
	if(this[p].selected==e)
		return;
	$(this[p][e.id].rel).show();
	if($(this[p][e.id].rel).childElements().length==0)
		new Ajax.Request(this[p][e.id].href);
	
	$(this[p].selected.readAttribute("rel")).hide();
	e.addClassName(this.activeclass);
	this[p].selected.removeClassName(this.activeclass);
	this[p].selected=e;
};

Event.observe(window,"load",function(){
	$$(".a-rel-tabs a[rel]").each(PageTab.process.bind(PageTab));
	$$(".simulate-tab-click").each(PageTab.simulate.bind(PageTab));
});

