////////////////////////////////////////////////////////////////////
// FILE:         mod_funkyslide.php
//------------------------------------------------------------------
// PACKAGE:      mod_funkyslide
// NAME:         FunkySlide!
// DESCRIPTION:  FunkySlide! ...a multi-functional slider for Joomla!
// VERSION:      1.0.2
// CREATED:      January 2008
// MODIFIED:     January 2008
//------------------------------------------------------------------
// AUTHOR:       NoNumber! (Peter van Westen)
// E-MAIL:       peter@nonumber.nl
// WEBSITE:      http://www.nonumber.nl
//------------------------------------------------------------------
// COPYRIGHT:    (C) 2008-2010 - NoNumber! - All Rights Reserved
// LICENSE:      GNU/GPL  [ http://www.gnu.org/copyleft/gpl.html ]
////////////////////////////////////////////////////////////////////

var FS_Array  =  new Array();

window.addEvent('domready',function() {
	$$('div.funkyslide_container').each(function(FS_container,i) {
		FS_content = FS_container.childNodes.item(0);
		FS_handle_bar = FS_container.childNodes.item(1);
		FS_handle = FS_handle_bar.childNodes.item(0);
		
		FS_container.id = FS_container.id + '_' + i;
		FS_content.id = FS_content.id + '_' + i;
		FS_handle_bar.id = FS_handle_bar.id + '_' + i;
		FS_handle.id = FS_handle.id + '_' + i;
		
		FS_Array[i] = new Array(
			new Fx.Slide(FS_content.id,{duration:1000}),
			FS_container.id,
			FS_content.id,
			FS_handle_bar.id
		);
		
		FS_content.removeClass('funkyslide_hidden');

		if (FS_enable_cookie) {
			var FS_cookieState = Cookie.get(FS_container.id);
			if ( FS_cookieState == 'closed' ) {
				FS_slide(i,'closed');
			} else if ( FS_cookieState == 'opened' ) {
				FS_slide(i,'opened');
			} else { // initial state
				FS_slide(i,FS_initial_state);
			}
		} else {
			FS_slide(i,FS_initial_state);
		}
		
		$(FS_handle.id).addEvent('click',function(){
			FS_toggle(i);
		});
	
		FS_handle_bar.removeClass('funkyslide_hidden');
	});
});

function FS_toggle(i) {
	FS_handle_bar = $(FS_Array[i][3]);
	
	if(FS_handle_bar.className == 'funkyslide_opened') {
		FS_slide(i,'close');
	} else { // FS_handle_bar.className == 'funkyslide_closed'
		FS_slide(i,'open');
	}
};

function FS_slide(i,state) {
	FS_container = $(FS_Array[i][1]);
	FS_content = $(FS_Array[i][2]);
	FS_handle_bar = $(FS_Array[i][3]);
	FS_text = FS_handle_bar.childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(0).childNodes.item(1);
	
	if(state == 'closed') {
		FS_Array[i][0].hide();
		if(FS_enable_cookie) Cookie.set(FS_container.id,'closed',{duration:1000});
		FS_handle_bar.className = 'funkyslide_closed';
		FS_text.innerHTML = FS_handle_text_closed;
	} else if(state == 'opened') {
		if(FS_enable_cookie) Cookie.set(FS_container.id,'opened',{duration:1000});
		FS_handle_bar.className = 'funkyslide_opened';
		FS_text.innerHTML = FS_handle_text_opened;
	} else if(state == 'close') {
		if(FS_enable_cookie) Cookie.set(FS_container.id,'closed',{duration:1000});
		if ( FS_enable_fade ) {
			FS_content.effect('opacity',{duration:1000}).start(1,0); // fade out
		} else {
			FS_content.effect('opacity',{duration:0}).start(1,1); // no fade - must do to prevent buggy stuff for IE
		}
		FS_Array[i][0].slideOut(); // slide to closed state
		FS_handle_bar.className = 'funkyslide_closed';
		FS_text.innerHTML = FS_handle_text_closed;
	} else { // state == 'open'
		if(FS_enable_cookie) Cookie.set(FS_container.id,'opened',{duration:1000});
		FS_Array[i][0].hide();
		if ( FS_enable_fade ) {
			FS_content.effect('opacity',{duration:1000}).start(0,1); // fade in
		} else {
			FS_content.effect('opacity',{duration:0}).start(1,1); // no fade - must do to prevent buggy stuff for IE
		}
		FS_Array[i][0].slideIn(); // slide to open state
		FS_handle_bar.className = 'funkyslide_opened';
		FS_text.innerHTML = FS_handle_text_opened;
	}
};