document.getElementsByClassName = function(classname){
var classarray = new Array();
var match = new RegExp('\\b'+classname+'\\b');
var alltags = this.getElementsByTagName('*');
for (var i = 0; i < alltags.length; i++) {
	if (match.test(alltags[i].className)){
		classarray.push(alltags[i]);
	}
}
return classarray;
}

var timerlen = 5;
var drawerAniLen = 250;
var keepallopen = 0;

function DrawerObj(obj){
	this.id = obj.parentNode.id;
	this.handle = document.getElementById(this.id).getElementsByTagName('A')[0];
	this.content = document.getElementById(this.id).getElementsByTagName('DIV')[0];
}

function closeothers(opendrawer,sect){
	var alldrawers = document.getElementsByClassName('drawer-content open');
	for(i=0;i<alldrawers.length;i++){
		if(sect && sect.indexOf(alldrawers[i].parentNode.id)==-1){
		toggledrawer(alldrawers[i].parentNode.getElementsByTagName('A')[0],0);
		}
	}
}

function initdrawers(opendrawerid){
	var alldrawers = document.getElementsByClassName('drawer-content');
	for(i=0;i<alldrawers.length;i++){
		if(alldrawers[i].parentNode.id == opendrawerid){
			toggledrawer(alldrawers[i].parentNode.getElementsByTagName('A')[0],1);
		}
	}
}

function toggledrawer(obj,keepmeopen){
	if(obj.className == "drawer-handle on" && keepmeopen){return;};
	var thisdrawer = new DrawerObj(obj);	
	if(thisdrawer.moving){return;}

	var num = 0;
	var children = thisdrawer.content.childNodes;
	for(var i=0;i<children.length;i++){
		if(children[i].nodeType==1){
			num = num+children[i].offsetHeight;
		}
	}
	if(thisdrawer.handle && thisdrawer.handle.className == "drawer-handle"){
		thisdrawer.handle.className = "drawer-handle on";
	}

	if(thisdrawer.content.className == "drawer-content open"){
		thisdrawer.dir = "up";
	}else{
		thisdrawer.dir = "down";
		thisdrawer.content.style.display ='none';
	}
	thisdrawer.moving = true;
	startdrawer(thisdrawer,num);
}

function startdrawer(thisdrawer,num){
	if(thisdrawer.content.offsetHeight){
		thisdrawer.endHeight = parseInt(thisdrawer.content.offsetHeight);
	}else{
		thisdrawer.endHeight = num;
	}

	thisdrawer.startTime = (new Date()).getTime();

	if(thisdrawer.dir == "down"){
		thisdrawer.content.className = "drawer-content open";
		if(!keepallopen){closeothers(thisdrawer,0);}
	}
	thisdrawer.timerID = setInterval(function(){drawertick(thisdrawer);},timerlen);
}

function drawertick(thisdrawer){
	var elapsed = (new Date()).getTime() - thisdrawer.startTime;
	thisdrawer.content.style.display = 'block';
	if (elapsed > drawerAniLen){
		enddrawer(thisdrawer);
	}else{
		var h = Math.round(elapsed / drawerAniLen * thisdrawer.endHeight);
		if(thisdrawer.dir == "up"){
			h = thisdrawer.endHeight - h;
		}
		if(thisdrawer.content){
			thisdrawer.content.style.height = h + "px";
			ddequalcolumns.resetHeights();
		}
	}
	return;
}

function enddrawer(thisdrawer){
	clearInterval(thisdrawer.timerID);

	if(thisdrawer.dir == "up"){
		thisdrawer.content.style.height = 0;
		thisdrawer.content.className = "drawer-content";
		thisdrawer.handle.className = "drawer-handle";
	}else{
		thisdrawer.content.style.height = "auto";
	}
	
	ddequalcolumns.resetHeights();
	
	thisdrawer = null;
	
	return;
}