var PopUpSteps=20;
var PopUpDelay=10;

var PopUpWidth=200;
var PopUpHeight=200;

var LineHeight=46;
var CornerSize=6;

var Stack=new Array();

function ExpandPopUp(PopUpID){
	if(!Stack.length || (Stack.length && Stack[0]==PopUpID))
		ShowHidePopUp(PopUpID,1);
	else
		if(Stack[Stack.length-1]!=PopUpID)
			Stack.push(PopUpID);
	return false;
}

function CollapsePopUp(PopUpID){
	if(Stack.length>1 && Stack[Stack.length-1]==PopUpID)
		Stack.pop();
	else
		ShowHidePopUp(PopUpID,-1);
	return false;
}

function ShowHidePopUp(PopUpID,Direction){
	var InnerCount=0;
	if(Direction>0){
		Count=0;
		CountLimit=PopUpSteps;
	}
	else if(Direction<0){
		Count=PopUpSteps-1;
		CountLimit=-1;
	}
	else return false;

	while(	(Direction>0 && Count<CountLimit) ||
		(Direction<0 && Count>CountLimit)
		){

		if(Count==PopUpSteps-1)
			Coefficient=1;
		else
			Coefficient=Math.sin(Count*Math.PI/2/PopUpSteps);

		Width=PopUpWidth*Coefficient;
		Height=PopUpHeight*Coefficient;
		setTimeout('SetPopUpSizes('+PopUpID+','+Width+','+Height+','+Count+','+Direction+')',PopUpDelay*InnerCount);

		Count+=Direction;
		InnerCount++;
	}

	return false;
}

function SetPopUpSizes(PopUpID,Width,Height,Count,Direction){
	if(!(PopUp=document.getElementById('popup_'+PopUpID)))
		return false;

	if(Width>CornerSize*2 && Height>CornerSize*2)
		PopUp.style.display='block';
	else
		PopUp.style.display='none';

	PopUp.style.width=Width+'px';
	PopUp.style.height=Height+'px';
	PopUp.style.marginTop=(-Width/2+LineHeight/2)+'px';


	InnerWidth=Width-(CornerSize*2);
	if(InnerWidth>=0){
		document.getElementById('popup_'+PopUpID+'_top').style.width=InnerWidth+'px';
		document.getElementById('popup_'+PopUpID+'_bottom').style.width=InnerWidth+'px';
		document.getElementById('popup_'+PopUpID+'_main').style.width=InnerWidth+'px';
	}

	InnerHeight=Height-(CornerSize*2);
	if(InnerHeight>=0){
		document.getElementById('popup_'+PopUpID+'_left').style.height=InnerHeight+'px';
		document.getElementById('popup_'+PopUpID+'_right').style.height=InnerHeight+'px';
		document.getElementById('popup_'+PopUpID+'_main').style.height=InnerHeight+'px';
	}

	if(Count==PopUpSteps-1)
		document.getElementById('popup_'+PopUpID+'_main').style.backgroundImage=document.getElementById('popup_'+PopUpID+'_hidden').style.backgroundImage;
	else
		document.getElementById('popup_'+PopUpID+'_main').style.backgroundImage='none';

	if(!Count && Direction<0){
		Stack.shift();
		if(Stack.length)
			ExpandPopUp(Stack[0]);
	}

	return true;
}