var blockContent = {
		
		elements : new Array(),
		intervalId : null,
		
		expand : function(e) {
			var target = e.target ? e.target : e.srcElement;
			
			var container = target.parentNode.previousSibling;
			
			while (container.tagName != 'DIV') {
				container = container.previousSibling;
			}			

			var maxLength = container.getElementsByTagName('tr').length * 17;
			var minLength = pDomApi.getElementsByClassName('visibleItem', 
														'tr', container).length * 17;

			var element = {
					elem 		: container,
					max 		: maxLength + 10,
					min 		: minLength,
					stepCount 	: 100,
					step 		: 5
			}
			
			blockContent.addAnimate( element );
			
			var button = pDomApi.getElementsByClassName('collapseLink', 'a', container.parentNode);
			if (button.length > 0) {
				target.style.display = 'none';
				button[0].style.display = 'block';
			}
		},
		
		collapse : function(e) {
			var target = e.target ? e.target : e.srcElement;
			
			var container = target.parentNode.previousSibling;
			
			while (container.tagName != 'DIV') {
				container = container.previousSibling;
			}			

			var maxLength = container.getElementsByTagName('tr').length * 17;
			var minLength = pDomApi.getElementsByClassName('visibleItem', 
														'tr', container).length * 17;

			var element = {
					elem 		: container,
					max 		: maxLength,
					min 		: minLength,
					stepCount 	: 100,
					step 		: -5
			}
			
			blockContent.addAnimate( element );
			
			var button = pDomApi.getElementsByClassName('expandLink', 'a', container.parentNode);
			if (button.length > 0) {
				target.style.display = 'none';
				button[0].style.display = 'block';
			}
		},
		
		addAnimate : function( element ) {
			blockContent.elements.push(element);
			
			if (blockContent.elements.length == 1) {
				blockContent.intervalId = setInterval(blockContent.animate, 1);
			}
		},
		
		animate : function() {

			for ( var i=0; i < blockContent.elements.length ; i++) {
				var element = blockContent.elements[i];
				var step = element.step * (element.max - element.min) / element.stepCount;
				var height = element.elem.style.height.replace('px','');
				
				height = height * 1 + step;
				if (step < 0) {
					if (height <= element.min) {
						height = element.min;
						blockContent.elements.splice(i,1);
					}
				} else {
					if (height >= element.max) {
						height = element.max;
						blockContent.elements.splice(i,1);
					}

				}
				element.elem.style.height = height + 'px';
				
				if (blockContent.elements.length == 0) {
					clearInterval(blockContent.intervalID);
				}
				
			}
		}
}

pDomApi.addEvent(window, 'domload', function() {

	var lists = pDomApi.getElementsByClassName('blockList', 'div', eId('sideContent'));
	
	if (lists.length > 0) {
		
		pDomApi.getActionAttacher().addTagEvent( 
			new PrezentDomApi.TagEvent('a', 'expandLink', 'click', blockContent.expand));
		pDomApi.getActionAttacher().addTagEvent( 
				new PrezentDomApi.TagEvent('a', 'collapseLink', 'click', blockContent.collapse));
		
		for (var i=0; i < lists.length; i++) {
			
			var block = lists[i].parentNode;
			var visibleItems = pDomApi.getElementsByClassName('visibleItem', 'tr', lists[i]);
			var height = visibleItems.length * 17;
			lists[i].style.height = height + 'px';
			var button = pDomApi.getElementsByClassName('collapseLink', 'a', block)
			
			if (button.length > 0) {
				button[0].style.display = 'none';
			}
		}
	}
	
});
