/* Scriptmodule voor Gaaga effecten
 * 
 * (C) 2007 vizi
 * 
 * Plaats:  /scripts/class_sliders.js
 * Revisie: januari 2007
 * Afhankelijkheid: mootools r83, met alle native scripts plus Fx.js, Dom.js, Fxutils.js en Fxtransitions (of alleen quadInOut).
 *
 */

// Zet enkele variabelen.
//
var sliderFrom = sliderTo = sliderBusy = null, sliders = [], toggles = [], showDelay = 500;

function sliders_init()
{
	// Zet weergave in 'javascript enabled' stand.
	$('gaaga').addClassName('fx');

	// Haal alle sliders op, plus de toggles voor open/dicht.
	sliders = $$("div.beeld");
	toggles = $$("div.toggle");
	sliders.each(function(slider)
	{
		slider.effect = new fx.Width(slider,
		{
			duration: 500, 
			transition: Fx.Transitions.quadInOut
		});
		slider.effect.hide();
	}
	);

	// Zet sliders in uitgangspositie (eentje open).
	sliders[0].effect.toggle();
	toggles[0].addClassName('open');
	sliderFrom = 0;

	// Hang events aan betreffende toggles en menu-items.
	toggles.each(function(toggle)
	{
		toggle.targetHandler = slider_toggle;
		dispatch(toggle, "click", "targetHandler");
	});
}

// Eigenlijke functie: toggle aan/uit stand van de slider.
// (parseInt(this.parentNode.id.substring(3, 4)))
function slider_toggle(e)
{
	if (!sliderBusy)
	{
		sliderBusy = true;
		sliderTo = parseInt(this.id.substring(6, 7));
		toggles[sliderFrom].removeClassName('open');
		sliders[sliderFrom].effect.toggle();
		sliders[sliderTo].effect.toggle();
		var showFunc = "slider_text_show('" + sliderTo + "')";
		toggles[sliderTo].show = setTimeout(showFunc, showDelay);
		sliderFrom = sliderTo;
		sliderTo = null;
	}
}

// Eigenlijke functie: toggle aan/uit stand van tekstbox in slider.
// 
function slider_text_show(sliderNo)
{
	toggles[sliderNo].addClassName('open');
	sliderBusy = null;
}

// Hang script in window.onload ketting.
window.targetHandler = sliders_init;
dispatch(window, "load", "targetHandler");
