(function ($) {

function scroll_to_target () {
	var me = $(this);
	if (me.hasClass('current')) {return false;}
	
	var parent = me.parents('div.scroller-panel').find('.scroller-content');
	var left = $(me.attr('href')).offset().left - parent.offset().left;
	parent.animate({scrollLeft: left});
	me.parents('ul').find('a').removeClass('current');
	me.addClass('current');
	return false;
}

function traverse_tabs (func, fallback) {
	return function () {
		var me = $(this);
		var current = me.parents('div.scroller-panel').find('ul.scroller-tabs a.current');
		var next = func(current.parent()).find('a').get(0);
		if (typeof(next) == "undefined") {
			next = fallback(current.parent().siblings()).find('a').get(0);
		};
		return scroll_to_target.apply(next);
	};
}

function setup_scroller () {
	var me = $(this);
	var tabs = me.find('ul.scroller-tabs a');
	tabs.click(scroll_to_target);
	me.find('a.scroller-prev').click(traverse_tabs(function (x) {return x.prev();},
	                                               function (xs) {return xs.eq(xs.length - 1);}));
	me.find('a.scroller-next').click(traverse_tabs(function (x) {return x.next();},
	                                               function (xs) {return xs.eq(0);}));
}

function setup_faqs () {
	var me = $(this);
	me.click(function () { me.find('div.answer').slideToggle(); })
	  .addClass('clickable');
	me.find('div.answer').hide();
}

// on dom ready	
$(function () {
	$('div.scroller-panel').each(setup_scroller);
	
	$('div.faq-question').each(setup_faqs);
	
	$('form table tr:odd').addClass('odd');
});
	
})(jQuery);
