var do_fade_out = false;
var do_fade_in 	= true;
var load_fade_engine = true;
var Items = new Array();
var buttonArr = new Array();
var hide_arr = new Array();
var show_arr = new Array();

function collapseAll( exclude ){

	for (i=1; i<20; ++i) {

		if( document.getElementById( 'sub_' + i ) && i != exclude ){

			subMenu = document.getElementById( 'sub_' + i )
			subMenu.style.display = 'none';
			subMenu.style.height = '0';
		}
	}
}

function addItem( item, data ){
	itemArr = new Array(  item, data );
	Items.push( itemArr );
}

function insertItem( parent_nr ){

	var subMenu = document.getElementById( 'sub_' + parent_nr );
	subMenu.innerHTML = '';
	var numberOfItems = 0;

	for (i=0; i<Items.length; ++i) {
		if( Items[i][0] == parent_nr ){
			buttonArr.push( Items[i][1] );
			subMenu.innerHTML +=  Items[i][1];
			numberOfItems++;
		}
	}
	if( subMenu.style.display == 'none' ){
		subMenu.style.display = 'block';

		subMenu.style.height = '0px';

		effect( 'sub_' + parent_nr, 0, numberOfItems*20 );
		collapseAll( parent_nr );
	}else{

		effect( 'sub_' + parent_nr, numberOfItems*20, 0 );
	}
}

function showPicture( image_location ){

	el = document.getElementById( 'image' );
	el.style.backgroundImage = 'url( ' + image_location + ' )';
}
function toggleSubmenu( menu_id, submenu_id ){

	var activeMenu = document.getElementById( 'active_' + menu_id );
	var subMenu = document.getElementById( 'sub_' + submenu_id );

	if( !activeMenu )
		return false;

	subMenu.style.height = '0px';
	numberOfItems = activeMenu.title;

	subMenu.innerHTML = activeMenu.innerHTML;
	activeMenu.innerHTML = '';

	slide_effect( 'sub_' + submenu_id, 0, numberOfItems*20 );
}
function showSubmenu( menu_id ){

	var divMenu = document.getElementById( 'menu_' + menu_id );
	var subMenu = document.getElementById( 'sub_' + menu_id );

	subMenu.style.display = 'block';

	subMenu.innerHTML = divMenu.innerHTML;
	divMenu.innerHTML = '';
}
function divActive( parent_nr ){

	var subMenu = document.getElementById( 'sub_' + parent_nr );
	var activeMenu = document.getElementById( 'active_' + parent_nr );

	subMenu.innerHTML = activeMenu.innerHTML;
	activeMenu.innerHTML = '';
	subMenu.style.display = 'block';
}
function slide_effect( id, from, to, interval, duration ){

	interval = interval || 20;
	duration = duration || 10;
	add_height = 5;

	rnd = '';
	var element = document.getElementById( id );

	element.style.visibility 	= "visible";
	element.style.display 		= "block";

	/* fade in action */
	if( parseInt(element.style.height) < parseInt(to) && ( from < to )  ) {
		element.style.height = parseInt(element.style.height || element.offsetHeight) + add_height ;

		if(parseInt(element.style.height) <= parseInt(to)){
			setTimeout('slide_effect("' + id + '", ' + parseInt(from) + ', ' + parseInt(to) + ');', interval);
		}
	}
}
function effect( id, from, to, interval, duration ){

	interval = interval || 20;
	duration = duration || 10;
	add_height = 5;

	rnd = '';
	var element = document.getElementById( id );

	element.style.visibility 	= "visible";
	element.style.display 		= "block";

	/* fade out action */
	if( parseInt(element.style.height) >= parseInt(to) && ( from > to ) && inHide_array( id ) ){
		element.style.height = parseInt(element.style.height || element.offsetHeight) - add_height;
		element.style.height = (( parseInt( element.style.height) < rnd )? 0 : parseInt( element.style.height) );

 		if(parseInt(element.style.height) > parseInt(to)){
 			setTimeout('effect("' + id + '", ' + parseInt(from) + ', ' + parseInt(to) + ');', interval);
		}else{
			remove_item( id );
			element.style.height = '0';
			element.style.display = 'none';
		}
	}

	/* fade in action */
	if( parseInt(element.style.height) < parseInt(to) && ( from < to )  ) {
		element.style.height = parseInt(element.style.height || element.offsetHeight) + add_height ;

		if(parseInt(element.style.height) <= parseInt(to)){
			setTimeout('effect("' + id + '", ' + parseInt(from) + ', ' + parseInt(to) + ');', interval);
		}else{
			hide_arr.push( id );
		}
	}
	function inHide_array( item ){


		for(var key in hide_arr ){
			if( hide_arr[key] == item ) {
				return true;
			}
		}
		return false;
	}
	function remove_item( item ){

		var new_array = new Array();

		for(var key in hide_arr){
			if( hide_arr[key] != item ) {
				new_array.push( hide_arr[key] );
			}
		}
		hide_arr = new_array;
	}
}
