var maxTopPos = 0;
var intervalDrawerID = 0;
var activeDrawerNo = null;
var speedContainer = 20;
var speedDrawer = 20;
var tweenDrawerDone = true;
var tweenColumnDone = true;
var tweenBorderDone = true;

function closeDrawer(no) {
	tweenDrawerDone = false;
	tweenColumnDone = false;
	tweenBorderDone = false;

	var arr_column_right = getElementsByClassName('column_right');
	var arr_border = getElementsByClassName('border');
	var abstract_height = 56; /*( $('abstract07') ? $('abstract07').offsetHeight : 0 );*/

	// Close the drawers
	var el = $('listitem_' + no);
	var curH = getStyle(el, 'height');
	var newH = parseInt(curH) - speedDrawer;
	if (newH < 20) {
		el.style.height = 20 + 'px';
		tweenDrawerDone = true;
		var arr_listing = getElementsByClassName('listing');
		var lastElement = arr_listing[arr_listing.length - 1];
		lastElement.style.borderBottom = '1px solid #CFD1CB';

		var wrapper = getElementsByClassName('wrapper')[0];
		wrapper.style.zIndex = 20000;
	}
	else // Move
	{
		el.style.height = newH + 'px';
	}

	// Close the container
	var el = arr_column_right[0];
	var curPos = getStyle(el, 'top');
	curPos = (curPos == 'auto' ? 0 : curPos);
	var newPos = parseInt(curPos) + speedContainer;
	if (newPos >= 240) {
		el.style.top = 240 + 'px';
		tweenColumnDone = true;
	}
	else // Move
	{
		el.style.top = newPos + 'px';
	}

	// Close the border
	var curH = getStyle(arr_border[0], 'height');
	curH = (curH == 'auto' ? 0 : curH);
	var newH = parseInt(curH) - speedContainer;
	if (newH <= 230) {
		tweenBorderDone = true;
		arr_border[0].style.height = 230 + 'px';
	}
	else // Move
	{
		arr_border[0].style.height = newH + 'px';
	}

	if (tweenDrawerDone === true && tweenBorderDone === true && tweenColumnDone === true) {
		clearInterval(intervalDrawerID);
	}
}

function moveDrawer(no) {
	tweenDrawerDone = false;
	tweenColumnDone = false;
	tweenBorderDone = false;

	var arr_column_right = getElementsByClassName('column_right');
	var arr_listing = getElementsByClassName('listing');
	var arr_border = getElementsByClassName('border');
	var abstract_height = 56; /*( $('abstract07') ? $('abstract07').offsetHeight : 0 );*/

	var lastElement = arr_listing[arr_listing.length - 1];
	lastElement.style.borderBottom = (no == arr_listing.length ? '1px solid #FFFFFF' : '1px solid #CFD1CB'); // Make last element's border "invisible"

	// Move the column up
	var el = arr_column_right[0];
	var curPos = getStyle(el, 'top');
	curPos = (curPos == 'auto' ? 0 : curPos);
	var newPos = parseInt(curPos) - speedContainer;

	if (newPos <= maxTopPos) {
		tweenColumnDone = true;
		el.style.top = maxTopPos + 'px';
	}
	else // Move
	{
		el.style.top = newPos + 'px';
	}

	// Move the border
	var curH = getStyle(arr_border[0], 'height');
	curH = (curH == 'auto' ? 0 : curH);
	var newH = parseInt(curH) + speedContainer;
	if (newH >= (350 + abstract_height + 4)) {
		tweenBorderDone = true;
		arr_border[0].style.height = (350 + abstract_height + 4) + 'px';
	}
	else // Move
	{
		arr_border[0].style.height = newH + 'px';
	}

	// Move the drawer
	var el = $('listitem_' + no);
	var curH = getStyle(el, 'height');
	var newH = parseInt(curH) + speedDrawer;

	if (newH >= 260) {
		tweenDrawerDone = true;
		el.style.height = 260 + 'px';
	}
	else // Move
	{
		el.style.height = newH + 'px';
	}

	// Reset height for the other drawers
	for (var i = 0; i < arr_listing.length; i++) {
		var listHeight = getStyle($(arr_listing[i]), 'height');
		listHeight = (listHeight == 'auto' ? 0 : listHeight);
		var newListHeight = parseInt(listHeight) - speedDrawer;
		if (i + 1 != no) {
			if (newListHeight < 20) {
				$(arr_listing[i]).style.height = 20 + 'px';
			}
			else // Move
			{
				$(arr_listing[i]).style.height = newListHeight + 'px';
			}
		}
	}

	if (tweenDrawerDone === true && tweenBorderDone === true && tweenColumnDone === true) {
		clearInterval(intervalDrawerID);
	}
}

function openDrawer(no, el) {
	if (tweenDrawerDone === true && tweenBorderDone === true && tweenColumnDone === true) {
		// Set active and plus/minus gif
		var arr_closed = getElementsByClassName('closed');
		var arr_image = getElementsByClassName('plusminus');
		var wrapper = getElementsByClassName('wrapper')[0];
		wrapper.style.zIndex = 40000;

		// Open or close
		if (no != activeDrawerNo) {
			activeDrawerNo = no;
			for (var i = 0; i < arr_closed.length; i++) {
				arr_closed[i].className = (arr_closed[i] == el ? 'closed active' : 'closed');
			}
			intervalDrawerID = setInterval("moveDrawer(" + no + ")", 10);
		}
		else {
			for (var i = 0; i < arr_closed.length; i++) {
				arr_closed[i].className = 'closed';
			}
			clearInterval(intervalDrawerID);
			intervalDrawerID = setInterval("closeDrawer(" + no + ")", 10);
			activeDrawerNo = null;
		}

		for (var i = 0; i < arr_image.length; i++) {
			arr_image[i].src = (activeDrawerNo != (i + 1) ? globalImageURL + 'plus.gif' : globalImageURL + 'minus.gif');
		}
	}
}