var maxTopPos			= 0;
var intervalDrawerID	= 0;
var activeDrawerNo		= null;
var speedContainer		= 20;
var speedDrawer			= (255-21)/(180/speedContainer);
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');

	// 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';
	}
	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 >= 180)
	{
		el.style.top = 180 + '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 <= 170)
	{
		tweenBorderDone = true;
		arr_border[0].style.height = 170 + '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 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)
	{
		tweenBorderDone = true;
		arr_border[0].style.height = 350 + '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 >= 255)
	{
		tweenDrawerDone = true;
		el.style.height = 255 + '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');

		// 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' );
		}
	}
}