//
// JavaScript Document
var closedHeight=150;
var mf_animations=Array();
var openedBox=null;
var availHeight;
var absTopCorrection=10;
var heightElement="background";

if (document.all)
{
	//absTopCorrection=-100;
}
else
{
	//absTopCorrection=-200;
}

function mf_initSpecialBoxes(pointer)
{
	var message="";
	var searchChilds=document.body.getElementsByTagName("DIV");
	for (var i in searchChilds)
	{
		if (searchChilds[i].className=="specialBox")
		{
			searchChilds[i].style.height=closedHeight+"px";
		}
	}
}

function mf_animationObject(pointer,newHeight)
{
	var _self = this;
 	this.pointer=pointer;
 	var newHeight=newHeight;
 	var myTimer=setInterval(function(){doAnimation();}, 20);
	var actHeight=Number(pointer.style.height.replace("px","")); 
	
 	var doAnimation=function ()
 	{
		
		if (actHeight==0)
		{
			actHeight=closedHeight;	
		}
		
		yDiff=((newHeight-actHeight)/2);
		actHeight+=yDiff;
		
		if (Math.abs(yDiff)<1)
		{
		actHeight=newHeight;
		_self.stopMe();
		}
		
		var overflow=mf_getAbsTop(pointer)+actHeight-availHeight-getScrollY()+absTopCorrection;	
		//window.status = overflow+" / "+getScrollY();
		pointer.style.height=(actHeight)+"px";
		if (overflow>0 && yDiff>0)
		{
			document.getElementById("scrollBox").scrollTop=getScrollY()+overflow;
		}
	}
	
	this.stopMe=function ()
	{
		clearInterval(myTimer);
		for (var i in mf_animations)
		{
			if (mf_animations[i].pointer==pointer)
			{
				mf_animations[i]=null;
				mf_animations.splice(i,1);
			}
		}

	}
}

function mf_openBox(pointer)
{
	availHeight=document.getElementById(heightElement).offsetHeight;
	var openedHeight;
	if (pointer.childNodes.item(0).offsetHeight==undefined)
	{
		openedHeight=pointer.childNodes.item(1).offsetHeight+pointer.childNodes.item(3).offsetHeight;
	}
	else
	{
		openedHeight=pointer.childNodes.item(0).offsetHeight+pointer.childNodes.item(1).offsetHeight;
	}
	if (pointer!=openedBox)
	{
		if (openedBox!=null)
		{
			mf_setAnimation(openedBox,closedHeight);
		}
		mf_setAnimation(pointer,openedHeight);
		openedBox=pointer;
	}
	else
	{
		mf_setAnimation(pointer,closedHeight);	
		openedBox=null;
	}

}



function mf_setAnimation(pointer,newHeight)
{
	for (var i in mf_animations)
	{
		if (mf_animations[i].pointer==pointer)
		{
			mf_animations[i].stopMe();
			mf_animations[i]=null;
			mf_animations.splice(i,1);
		}
	}
	var newAnimation=new mf_animationObject(pointer,newHeight);
	mf_animations.push(newAnimation);
}




function mf_getAbsTop(el)
{
	var top = 0;
	if (navigator.appName.indexOf("Microsoft")!=-1)
	{
		while (el.nodeName.toUpperCase()=="DIV")
		{
			top+=el.offsetTop;	
			el = el.parentNode;
		}
	}
	else
	{
		top = el.offsetTop;	
	}
	return top;	
}

function getScrollY() {  
	return document.getElementById("scrollBox").scrollTop;;  
}  

/*
	var output="";
	var tempType="";
	var myChildNodes=new Array();
	for (var node in pointer.childNodes)
	{
		if (pointer.childNodes[node].nodeName!=undefined)
		{
			
			if (pointer.childNodes[node].nodeName.toUpperCase()=="DIV")
			{
				myChildNodes.push(pointer.childNodes[node]);
			}
		}
	}
	
	if (pointer.style.offsetHeight==undefined || pointer.style.height=="")
	{
		pointer.style.height=closedHeight+"px";	
	}
	//myChildNodes[0].style.height=50+"px";
	//myChildNodes[1].style.height=50+"px";
	*/
