var animationInterval = 15;
var animationSteps = 10;
var updateStep = 7;
var openNow = 1; // ??????? ???????
var tobeOpen = 0;
var isCached = false;
var question = new Array();
var answer = new Array();
var currentQ = null;
var currentA = null;
var currentAHeight = 0;
var animationTimer = null;
var animationStep = 0;
var collapcingStep = 0;
var collapcingValue = 0;

document.onkeydown = NavigateThrough;

function WPtoggle (n)
{
	if (animationTimer) return; 

	CacheParts();

	if (n <= 0) n = answer.length - 1;
	else if (n >= answer.length) n = 1;

	if (openNow)
	{
		ClosePart (openNow);
		OpenPart (n);
		Animate();
	}
	else
	{
		ForceOpen (n);
	}
}

function CacheParts()
{
	if (isCached) return;

	for (var c = 1;; c++)
	{
		var currentQ = document.getElementById ('wpq-' + c);
		var currentA = document.getElementById ('wpa-' + c);
		if (!currentQ || !currentA) break;

		question[c] = currentQ;
		answer[c] = currentA;
	}
	isCached = true;
}

function UpdateFace (n)
{
	var faceHolder = document.getElementById ('WorkFace');
}

function ClosePart (n)
{		
	currentQ = question[n];
	currentA = answer[n];
	currentAHeight = answer[n].offsetHeight;
}

function OpenPart (n)
{
	tobeOpen = n;
}

function Animate()
{
	animationTimer = setInterval (AnimationStep, animationInterval);
	animationStep = 1;
	collapcingValue = 0;
	collapcingStep = parseInt (currentAHeight / animationSteps);
}

function AnimationStep()
{	
	if (++animationStep >= animationSteps)
	{
		clearInterval (animationTimer);
		animationTimer = null;
		animationStep = 0;		
		AnimationPostprocess();
	}
	else
	{	
		collapcingValue -= collapcingStep;
		MoveBlocks();

		if (animationStep == updateStep) UpdateFace (tobeOpen);
	}	
}

function AnimationPostprocess()
{
	for (var c = 1; c != question.length; c++)
	{
		question[c].style.top = '0';
		answer[c].style.top = '0';
	}

	currentA.className = 'invisible';	
	currentA.style.color = '#000000';	
	
	if (tobeOpen != openNow) answer[tobeOpen].className = 'visible answer';
	else tobeOpen = 0;

	openNow = tobeOpen;
	tobeOpen = 0;
}

function MoveBlocks()
{
	currentA.style.color = StepColor();
	for (var c = openNow + 1; c != question.length; c++)
	{
		question[c].style.top = collapcingValue + 'px';
		answer[c].style.top = collapcingValue + 'px';		
	}	
}

function StepColor()
{	
	var colorChar = dec2hex (parseInt (16 * animationStep / animationSteps));
	var ret = colorChar + colorChar + colorChar;
	
	return '#' + ret;	
}

function dec2hex (dec)
{
	var hexChars = "0123456789ABCDEF";
	dec %= 16;
	return hexChars.charAt (dec);
}

function ForceOpen (n)
{
	answer[n].className = 'visible answer';
	openNow = n;
}

function getNewsBlock( block_id )
{
	if ( document.getElementById( 'news_block_' + block_id ) )
	{
		var nodes = document.getElementById('news_block_header').getElementsByTagName('li');

		for ( var i = 0; i < nodes.length; i++ )
		{
			var node_name= nodes[i].getAttribute('id');

			if ( node_name == 'news_block_header_' + block_id )
			{
				document.getElementById( 'news_block_header_' + block_id ).style.borderBottom = '5px solid #c4c4c4';
				document.getElementById( 'news_block_header_' + block_id ).style.borderTop = '5px solid #c4c4c4';
				document.getElementById( 'news_block_header_' + block_id ).style.borderLeft = '5px solid #c4c4c4';
				document.getElementById( 'news_block_header_' + block_id ).style.borderRight = '5px solid #c4c4c4';
			
			}
			else
			{
				document.getElementById( node_name ).style.borderBottom = '1px solid #c4c4c4';
				document.getElementById( node_name ).style.borderTop = '1px solid #d9d9d9';
				document.getElementById( node_name ).style.borderRight = '1px solid #d9d9d9';
				document.getElementById( node_name ).style.borderLeft = '1px solid #d9d9d9';
		
			}
		}
		document.getElementById( 'news_block' ).innerHTML = document.getElementById( 'news_block_' + block_id ).innerHTML;
	}
}

function show_hide_layer (id, action)
{
    if (action == "show")
    {
        document.getElementById(id).style.display = 'block';
        document.getElementById(id).style.visibility = 'visible';
    }
    else if (action == "hide")
    {
        document.getElementById(id).style.display = 'none';
        document.getElementById(id).style.visibility = 'hidden';
    }
    else if( document.getElementById(id).style.display == 'none')
    {
    	document.getElementById(id).style.display = 'block';
    }
    else if( document.getElementById(id).style.display == 'block')
    {
    	document.getElementById(id).style.display = 'none';
    }
}




function getNewsBlock1( block_id )
{
	if ( document.getElementById( 'news_block1_' + block_id ) )
	{
		var nodes = document.getElementById('news_block_header1').getElementsByTagName('li');

		for ( var i = 0; i < nodes.length; i++ )
		{
			var node_name= nodes[i].getAttribute('id');

			if ( node_name == 'news_block_header1_' + block_id )
			{
				document.getElementById( 'news_block_header1_' + block_id ).style.borderBottom = '1px solid white';
				document.getElementById( 'news_block_header1_' + block_id ).style.borderTop = '1px solid #c4c4c4';
				document.getElementById( 'news_block_header1_' + block_id ).style.borderRight = '1px solid #c4c4c4';
			}
			else
			{
				document.getElementById( node_name ).style.borderBottom = '1px solid #c4c4c4';
				document.getElementById( node_name ).style.borderTop = '1px solid #d9d9d9';
				document.getElementById( node_name ).style.borderRight = '1px solid #d9d9d9';
			}
		}
		document.getElementById( 'news_block1' ).innerHTML = document.getElementById( 'news_block1_' + block_id ).innerHTML;
	}
}


function getNewsBlock2( block_id )
{
	if ( document.getElementById( 'news_block2_' + block_id ) )
	{
		var nodes = document.getElementById('news_block_header2').getElementsByTagName('li');

		for ( var i = 0; i < nodes.length; i++ )
		{
			var node_name= nodes[i].getAttribute('id');

			if ( node_name == 'news_block_header2_' + block_id )
			{
				document.getElementById( 'news_block_header2_' + block_id ).style.borderBottom = '1px solid white';
				document.getElementById( 'news_block_header2_' + block_id ).style.borderTop = '1px solid #c4c4c4';
				document.getElementById( 'news_block_header2_' + block_id ).style.borderRight = '1px solid #c4c4c4';
			}
			else
			{
				document.getElementById( node_name ).style.borderBottom = '1px solid #c4c4c4';
				document.getElementById( node_name ).style.borderTop = '1px solid #d9d9d9';
				document.getElementById( node_name ).style.borderRight = '1px solid #d9d9d9';
			}
		}
		document.getElementById( 'news_block2' ).innerHTML = document.getElementById( 'news_block2_' + block_id ).innerHTML;
	}
}


function getNewsBlock3( block_id )
{
	if ( document.getElementById( 'news_block3_' + block_id ) )
	{
		var nodes = document.getElementById('news_block_header3').getElementsByTagName('li');

		for ( var i = 0; i < nodes.length; i++ )
		{
			var node_name= nodes[i].getAttribute('id');

			if ( node_name == 'news_block_header3_' + block_id )
			{
				document.getElementById( 'news_block_header3_' + block_id ).style.borderBottom = '1px solid white';
				document.getElementById( 'news_block_header3_' + block_id ).style.borderTop = '1px solid #c4c4c4';
				document.getElementById( 'news_block_header3_' + block_id ).style.borderRight = '1px solid #c4c4c4';
			}
			else
			{
				document.getElementById( node_name ).style.borderBottom = '1px solid #c4c4c4';
				document.getElementById( node_name ).style.borderTop = '1px solid #d9d9d9';
				document.getElementById( node_name ).style.borderRight = '1px solid #d9d9d9';
			}
		}
		document.getElementById( 'news_block3' ).innerHTML = document.getElementById( 'news_block3_' + block_id ).innerHTML;
	}
}


function getNewsBlock4( block_id )
{
	if ( document.getElementById( 'news_block4_' + block_id ) )
	{
		var nodes = document.getElementById('news_block_header4').getElementsByTagName('li');

		for ( var i = 0; i < nodes.length; i++ )
		{
			var node_name= nodes[i].getAttribute('id');

			if ( node_name == 'news_block_header4_' + block_id )
			{
				document.getElementById( 'news_block_header4_' + block_id ).style.borderBottom = '1px solid white';
				document.getElementById( 'news_block_header4_' + block_id ).style.borderTop = '1px solid #c4c4c4';
				document.getElementById( 'news_block_header4_' + block_id ).style.borderRight = '1px solid #c4c4c4';
			}
			else
			{
				document.getElementById( node_name ).style.borderBottom = '1px solid #c4c4c4';
				document.getElementById( node_name ).style.borderTop = '1px solid #d9d9d9';
				document.getElementById( node_name ).style.borderRight = '1px solid #d9d9d9';
			}
		}
		document.getElementById( 'news_block4' ).innerHTML = document.getElementById( 'news_block4_' + block_id ).innerHTML;
	}
}
