/************************************************************************************************************
(C) www.dhtmlgoodies.com, November 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.    

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/

var dhtmlgoodies_slideSpeed = 30;    // Higher value = faster
var dhtmlgoodies_timer = 10;    // Lower value = faster
var accordionsArray={};
var objectIdToSlideDown = false;
var dhtmlgoodies_activeId = false;
var dhtmlgoodies_activeContainer = false;
var dhtmlgoodies_slideInProgress = false;
var dhtmlgoodiesQuantity=1;

function showHideContent(e,inputId, container) {
	var i;
	var container;
	var scrollBackFlag;
	if(dhtmlgoodies_slideInProgress)return;
	dhtmlgoodies_slideInProgress = true;
	if(!inputId)inputId = this.id;
	inputId = inputId + '';
	var numericId = inputId.replace(/[^0-9]/g,'');
	var answerDiv = document.getElementById(container+'_dhtmlgoodies_a' + numericId);
	var questionDiv = document.getElementById(container+'_dhtmlgoodies_q' + numericId);
	objectIdToSlideDown = false;
	if(!answerDiv.style.display || answerDiv.style.display=='none'){
		if(dhtmlgoodies_activeId &&  dhtmlgoodies_activeId!=numericId) { 
			if (accordionsArray[container].in_array(container+'_dhtmlgoodies_a' + dhtmlgoodies_activeId)) {
				scrollBackFlag=true;
			} else {
				for (i=0; i<accordionsArray[container].length; i++) {
					if (document.getElementById(accordionsArray[container][i]).style.visibility == 'visible') {
						if (numericId!=accordionsArray[container][i].replace(/[^0-9]/g,'')) {
							slideContent(accordionsArray[container][i].replace(/[^0-9]/g,''),(dhtmlgoodies_slideSpeed*-1), container);
						}
					}
				}
			}
			
			if (scrollBackFlag==true) {
				var activeQuestionDiv = document.getElementById(dhtmlgoodies_activeContainer+'_dhtmlgoodies_q' + dhtmlgoodies_activeId); 
				objectIdToSlideDown = numericId;
				slideContent(dhtmlgoodies_activeId,(dhtmlgoodies_slideSpeed*-1), container);
			} else {
				 answerDiv.style.display='block';
				 answerDiv.style.visibility = 'visible';
				 slideContent(numericId,dhtmlgoodies_slideSpeed, container);
			}
		} else {
			answerDiv.style.display='block';
			answerDiv.style.visibility = 'visible';
			slideContent(numericId,dhtmlgoodies_slideSpeed, container);
		}
	} else {
		if (accordionsArray[container].in_array(container+'_dhtmlgoodies_a' + numericId)) {      
			slideContent(numericId,(dhtmlgoodies_slideSpeed*-1), container);
			dhtmlgoodies_activeId = false;
			dhtmlgoodies_activeContainer=false
		}
	}
}

function changeQuestionStyle (obj) {
	objectDivs = obj.getElementsByTagName('DIV');
	for(var no=0; no<objectDivs.length; no++) {
		if (classExists(objectDivs[no], "icon") == true) {
			if (classExists(objectDivs[no], "button")==true) {
				objectDivs[no].className = objectDivs[no].className.replace(new RegExp("\\bbutton\\b"), "");
				objectDivs[no].className+=" activeButton";
			} else {
				objectDivs[no].className = objectDivs[no].className.replace(new RegExp("\\bactiveButton\\b"), "");
				objectDivs[no].className+=" button";
			}
		}
	}
}

function slideContent(inputId,direction, container) {
	var container;
	
	containerID=(inputId==dhtmlgoodies_activeId) ? dhtmlgoodies_activeContainer : container;
	var obj =document.getElementById(containerID+'_dhtmlgoodies_a' + inputId);
	var contentObj = document.getElementById(containerID+'_dhtmlgoodies_ac' + inputId);
	height = obj.clientHeight;
	if(height==0) height = obj.offsetHeight;
	height = height + direction;
	rerunFunction = true;
	if (height>contentObj.offsetHeight) {
		height = contentObj.offsetHeight;
		rerunFunction = false;
		objectDivs = document.getElementById(containerID+'_dhtmlgoodies_q' + inputId).getElementsByTagName('DIV'); 
		for (var no=0; no<objectDivs.length; no++) {
			if (classExists(objectDivs[no], "icon")==true) {
				objectDivs[no].className = objectDivs[no].className.replace(new RegExp("\\bbutton\\b"), "");  
				objectDivs[no].className+=" activeButton";
			}
		}
	}
	
	if (height<=1) {
		height = 1;
		rerunFunction = false;
		
		objectDivs = document.getElementById(containerID+'_dhtmlgoodies_q' + inputId).getElementsByTagName('DIV'); 
		for(var no=0;no<objectDivs.length;no++){
			if (classExists(objectDivs[no], "icon")==true) {
				objectDivs[no].className = objectDivs[no].className.replace(new RegExp("\\bactiveButton\\b"), "");
				objectDivs[no].className+=" button";
			}
		}
	}
	
	obj.style.height = height + 'px';
	var topPos = height - contentObj.offsetHeight;
	if (topPos>0) topPos=0;
	contentObj.style.top = topPos + 'px';
	if (rerunFunction) {
		setTimeout('slideContent(' + inputId + ',' + direction + ',"' + container + '")',dhtmlgoodies_timer);
	} else {
		if (height<=1) {
			obj.style.display='none'; 
			if (objectIdToSlideDown && objectIdToSlideDown!=inputId) {
				document.getElementById(container+'_dhtmlgoodies_a' + objectIdToSlideDown).style.display='block';
				document.getElementById(container+'_dhtmlgoodies_a' + objectIdToSlideDown).style.visibility='visible';
				slideContent(objectIdToSlideDown,dhtmlgoodies_slideSpeed, container);
			} else {
				dhtmlgoodies_slideInProgress = false;
			}
		} else {
			dhtmlgoodies_activeId = inputId;
			dhtmlgoodies_activeContainer=container;
			dhtmlgoodies_slideInProgress = false;
		}
	}
}

function initShowHideDivs(container) {
	var divs = document.getElementById(container).getElementsByTagName('DIV');
	var divCounter = dhtmlgoodiesQuantity;
	dhtmlgoodiesQuantity++;   
	accordionsArray[container]=Array();
	for (var no=0; no<divs.length; no++) {
		if (classExists (divs[no], 'dhtmlgoodies_question')==true) {
			// divs[no].onclick = showHideContent;
			
			divs[no].id = container+'_dhtmlgoodies_q'+divCounter; 
			divs[no].onclick = function (container, inputId){
				var test = container;
				var test2 = inputId;
				return function() {
					showHideContent(false, test2, test);
				}
			}(container, divs[no].id);
			
			accordionsArray[container].push(container+'_dhtmlgoodies_a'+divCounter);
			var answer = divs[no].nextSibling;
			while(answer && answer.tagName!='DIV'){
				answer = answer.nextSibling;
			}
			answer.id = container+'_dhtmlgoodies_a'+divCounter;
			contentDiv = answer.getElementsByTagName('DIV')[0];
			contentDiv.style.top = 0 - contentDiv.offsetHeight + 'px';
			contentDiv.className='dhtmlgoodies_answer_content';
			contentDiv.id = container+'_dhtmlgoodies_ac' + divCounter;
			
			if (classExists (answer, 'doNotHide')!=true) {
				answer.style.display='none';
				answer.style.height='1px';
				
			} else {
				dhtmlgoodies_activeId= divCounter;
				answer.style.visibility='visible';
				dhtmlgoodies_activeContainer=container;
				changeQuestionStyle (divs[no]);
			}
			divCounter++;
		}
	}
	
	dhtmlgoodiesQuantity=divCounter;
}

function addNewAccordion(objectId) {
	var f = function (objectId){
		var test = objectId;
		return function() {
			initShowHideDivs(test);
		}
	}(objectId);
	
	if (typeof parent.top.Ext == 'undefined') {
		addOnloadListener(f);
	} else {
		parent.top.OnloadManager.onRender(f);
	}
}
