
// accordeon unique id to avoid multiple opening processes
var accUID = 0;

// -----------------------------------------------------------------------

function toggleAccordeon(evt)
{
	target = evt.target.parentNode.id;
	handleChange(evt);
	evt.stopEvent();
	toggleAccordeonById(target);	
}

// -----------------------------------------------------------------------

function toggleAccordeonById(id)
{
	var trigger = id;
	if(trigger.length < 1 || trigger.substring(0,3) == 'ext'){
		return;
	}
	
	// get the expander's id (don't forget to add it in the database-loop)!
	// e.g.: accordeonExtendedContent123 will be cut to 123
	var countDiv = trigger.substring(19);
	
	// merge id with expander-div-id-name
	var targetContent = 'accordeonExtendedContent' + countDiv;
	
	/*
	// get every accordeon-div
	var selectCompleteContent = Ext.DomQuery.select('.accordeonHide');
	
	// filter elements which are opened
	var openedElements = Ext.DomQuery.filter(selectCompleteContent, '{display*=block}');
		
	// close every opened container
	for (i = 0; i < openedElements.length; i++)
		closeAccordeon(openedElements[i], trigger);
	*/
	
	// open clicked target
	if(Ext.DomQuery.is(targetContent, '{display*=none}'))
		openAccordeon(targetContent, trigger);
	else
		closeAccordeon(targetContent, trigger);		
}

// -----------------------------------------------------------------------

function openAccordeon(targetContent, trigger)
{
	Ext.get(targetContent).slideIn('t', {
		easing: 'easeOut',
		duration: .5,
		useDisplay: true,
		callback: openAccordeonChangeLabelOpen
	});
	
	accUID = 1;
	
}

// -----------------------------------------------------------------------

function closeAccordeon(targetContent, trigger)
{
	//if (accUID == 1) 
	{
		Ext.get(targetContent).slideOut('t', {
			easing: 'easeOut',
			duration: .5,
			useDisplay: true,
			callback: openAccordeonChangeLabelClose
		});
		accUID = 0;
	}
}

// -----------------------------------------------------------------------

// callback function for changing "more" <-> "less"
function openAccordeonChangeLabelOpen(evt)
{
	var trigger = evt.id.substring(24);
	
	Ext.get('accordeonToggleMore' + trigger).applyStyles
	({
		display: 'none'
	});
	
	Ext.get('accordeonToggleLess' + trigger).applyStyles
	({
		display: 'block'
	});	
	Ext.getBody().scrollTo("top", Ext.get(evt.id).getY() - 270, true);
	//Ext.getBody().scrollTo("top",  Ext.getBody().getScroll() - 200);
	
//	Ext.select('.continuous_text_box_less').on('click', toggleAccordeon, this);
}

// -----------------------------------------------------------------------

// callback function for changing "more" <-> "less"
function openAccordeonChangeLabelClose(evt)
{
	var trigger = evt.id.substring(24);
	
	Ext.get('accordeonToggleMore' + trigger).applyStyles
	({
		display: 'block'
	});
	
	Ext.get('accordeonToggleLess' + trigger).applyStyles
	({
		display: 'none'
	});
	var height = Ext.get("accordeonExtendedContent" + trigger).parent().getY() - 120;
	if(height > Ext.getBody().getComputedHeight() - Ext.getBody().getViewSize().height){
		//Ext.getBody().scroll("top", height, true);
	}
	else
		Ext.getBody().scrollTo("top", height, true);
}



// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------


function initAccordeon()
{
	// initialize click event-handlers for our accordeon
	Ext.select('.continuous_text_box_more').on('click', toggleAccordeon, this);
	Ext.select('.continuous_text_box_less').on('click', toggleAccordeon, this);
	//Ext.get( node.id ).on('click', toggleAccordeon, this);
}

