///////////////////////////////////////////////////////////////////////////////
//	Standard Layers 1.9
//	e-design JavaScript library 1.4

//	the Nscape layer-top format: 	document.my_layer.top
//	the ie layer-top format:	my_layer.style.pixelTop

//	possible visibility values: 'hidden' and 'visible'

//	----------------------- standard layer methods

var dvsShow = 'visible';
var dvsHide = 'hidden';

var stdlayers19_unit_advance_level = 3;
var stdlayers19_allow = false;

if( advance_level >= stdlayers19_unit_advance_level )
{
	stdlayers19_allow = true;
}

function LayerGetTextAlign( _LayerId )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case icvIE:
		return document.getElementById( _LayerId ).style.textAlign;

	case icvNSav3:
		return 'left';

	case icvNSav4:
		return document.getElementById( _LayerId ).style.textAlign;

    }
}

function LayerGetTop( _LayerId )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case icvIE:
		return document.getElementById( _LayerId ).style.pixelTop;

	case icvNSav3:
		return eval( "document." +  _LayerId + ".top" );

	case icvNSav4:
		return document.getElementById( _LayerId ).offsetTop;

    }
}

function LayerSetTop( _LayerId, _NewTop )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case icvIE:
		document.getElementById( _LayerId ).style.pixelTop = _NewTop;
		break;

	case icvNSav3:
		eval( "document." +  _LayerId + ".top = _NewTop" );
		break;

	case icvNSav4:
		document.getElementById( _LayerId ).style.top = _NewTop;
		break;

    }
}

function LayerGetLeft( _LayerId )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case icvIE:
		return document.getElementById( _LayerId ).style.pixelLeft;

	case icvNSav3:
		return eval( "document." +  _LayerId + ".left" );

	case icvNSav4:
		return document.getElementById( _LayerId ).offsetLeft;

    }
}

function LayerSetLeft( _LayerId, _NewLeft )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case icvIE:
		document.getElementById( _LayerId ).style.pixelLeft = _NewLeft;
		break;

	case icvNSav3:
		eval( "document." +  _LayerId + ".left = _NewLeft" );
		break;

	case icvNSav4:
		document.getElementById( _LayerId ).style.left = _NewLeft;
		break;

    }
}

function LayerRightAlign( _LayerId, _RightOffset, _LeftAlign )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case icvIE:
		if( _LeftAlign == -1 )
		{
			document.getElementById( _LayerId ).style.pixelLeft = document.body.clientWidth - _RightOffset - parseInt( document.getElementById( _LayerId ).style.width );
		}
		else
		{
			document.getElementById( _LayerId ).style.pixelLeft = _LeftAlign;
			document.getElementById( _LayerId ).style.width = document.body.clientWidth - _RightOffset - _LeftAlign;
		}
		break;

	case icvNSav3:
		if( _LeftAlign == -1 )
		{
			eval( "document." +  _LayerId + ".left = window.innerWidth - _RightOffset - document." + _LayerId + ".width" );
		}
		else
		{
			eval( "document." +  _LayerId + ".left = _LeftAlign" );
			eval( "document." +  _LayerId + ".width = window.innerWidth - _RightOffset - _LeftAlign" );
		}
		break;

	case icvNSav4:
		if( _LeftAlign == -1 )
		{
			document.getElementById( _LayerId ).style.left = document.width - _RightOffset - document.getElementById( _LayerId ).offsetWidth;
		}
		else
		{
			document.getElementById( _LayerId ).style.left = _LeftAlign;
			document.getElementById( _LayerId ).style.width = document.width - _RightOffset - _LeftAlign;
		}
		break;
	}
}

function LayerGetVisible( _LayerId )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case nvIE:
		return document.getElementById( _LayerId ).style.visibility;

	case icvNSav3:
		return eval( "document." +  _LayerId + ".visibility" );

	case icvNSav4:
		return document.getElementById( _LayerId ).style.visibility;

    }
}

function LayerSetVisible( _LayerId, _NewVisibility )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case nvIE:
		document.getElementById( _LayerId ).style.visibility = _NewVisibility;
		break;

	case icvNSav3:
		eval( "document." +  _LayerId + ".visibility = _NewVisibility" );
		break;

	case icvNSav4:
		document.getElementById( _LayerId ).style.visibility = _NewVisibility;
		break;

    }
}

function LayerGetImageSrc( _LayerId, _ImgId )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case nvIE:
		return document.getElementById( _ImgId ).src;

	case icvNSav3:
		return eval( "document.layers." +  _LayerId + ".document.images." + _ImgId + ".src" );

	case icvNSav4:
		return document.getElementById( _ImgId ).src;

    }
}

function LayerSetImageSrc( _LayerId, _ImgId, _NewSrc )
{
	if( ! stdlayers19_allow ) return;

	switch( InternalCompatibilityVersion )
    {
    case nvIE:
		document.getElementById( _ImgId ).src = _NewSrc;
		break;

	case icvNSav3:
		eval( "document.layers." +  _LayerId + ".document.images." + _ImgId + ".src = _NewSrc" );
		break;

	case icvNSav4:
		document.getElementById( _ImgId ).src = _NewSrc;
		break;

    }
}

//	----------------------- layers' collections
//	the layer collection is a string array with layer names; the first
//	name always reserved for temporary use for the current visible layer
//	typical definition of the collection is:
//	var sumbenuLayers = new Array('__Reserved', 'About', 'Prices');
//	the 'div' prefix is assumed	

function CompleteLayerId( _LayerId )
{
	if( _LayerId.slice( 0, 3 ) == 'div' )
	{
		return _LayerId;
	}
	else
	{
		return 'div' + _LayerId;
	}
}

function BareLayerId( _LayerId )
{
	if( _LayerId.slice( 0, 3 ) == 'div' )
	{
		return _LayerId.slice( 3 );
	}
	else
	{
		return _LayerId;
	}
}

var ReservedLayersCollectionName = '__Reserved';

function GetLayerIdByIndex( _LayersCollection, _Index )
{
	return CompleteLayerId( eval( _LayersCollection + '[_Index]' ) );
}

function SetLayerIdByIndex( _LayersCollection, _Index, _LayerId )
{
	eval( _LayersCollection + '[_Index] = "' + BareLayerId( _LayerId ) + '"' );
}

function LayersCollectionGetCurrent( _LayersCollection )
{
	return BareLayerId( GetLayerIdByIndex( _LayersCollection, 0 ) );
}

function LayersCollectionSetCurrent( _LayersCollection, _LayerId )
{
	SetLayerIdByIndex( _LayersCollection, 0, BareLayerId( _LayerId ) );
}

function LayersCollectionIsCurrent( _LayersCollection, _LayerId )
{
	if( LayersCollectionGetCurrent( _LayersCollection ) == BareLayerId( _LayerId ) )
	{
		return true;
	}
	else
	{
		return false;
	}
}

function LayersCollectionClearCurrent( _LayersCollection )
{
	LayersCollectionSetCurrent( _LayersCollection, ReservedLayersCollectionName );
}

function LayersCollectionHide( _LayersCollection )
{
	if( ! stdlayers19_allow ) return;
	
	var layersCount = eval( _LayersCollection + '.length' );
	
	for( i = 1; i < layersCount; i ++ )
	{
		LayerSetVisible( GetLayerIdByIndex( _LayersCollection, i ), dvsHide );
	}
	
	LayersCollectionClearCurrent( _LayersCollection );
}

function LayersCollectionToggleLayer( _LayersCollection, _LayerId )
{
	if( ! stdlayers19_allow ) return;

	if( LayerGetVisible( CompleteLayerId( _LayerId ) ) == dvsHide ) {
		LayerSetVisible( CompleteLayerId( _LayerId ), dvsShow );
		LayersCollectionSetCurrent( _LayersCollection, _LayerId );
	}
	else
	{
		LayerSetVisible( CompleteLayerId( _LayerId ), dvsHide );
		if( LayersCollectionIsCurrent( _LayersCollection, _LayerId ) )
		{
			LayersCollectionClearCurrent( _LayersCollection );
		}
	}
}

function LayersCollectionShowLayer( _LayersCollection, _LayerId, _RightOffset, _LeftAlign )
{
	if( ! stdlayers19_allow ) return;

	if( LayerGetVisible( CompleteLayerId( _LayerId ) ) == dvsHide ) {

		if( LayerGetTextAlign( CompleteLayerId( _LayerId ) ) == 'right' && _RightOffset != '' )
		{
			var leftAlign = -1;
			if( _LeftAlign != '' )
			{
				leftAlign = parseInt( _LeftAlign );
			}
		
			LayerRightAlign( CompleteLayerId( _LayerId ), parseInt( _RightOffset ), leftAlign ); 
		}

		LayerSetVisible( CompleteLayerId( _LayerId ), dvsShow );
		LayersCollectionSetCurrent( _LayersCollection, _LayerId );
	}
}

function LayersCollectionHideLayer( _LayersCollection, _LayerId )
{
	if( ! stdlayers19_allow ) return;

	if( LayerGetVisible( CompleteLayerId( _LayerId ) ) == dvsShow ) {
		LayerSetVisible( CompleteLayerId( _LayerId ), dvsHide );
		if( LayersCollectionIsCurrent( _LayersCollection, _LayerId ) )
		{
			LayersCollectionClearCurrent( _LayersCollection );
		}
	}
}

function LayersCollectionHideCurrent( _LayersCollection )
{
	if( ! stdlayers19_allow ) return;

	LayersCollectionHideLayer( _LayersCollection, LayersCollectionGetCurrent( _LayersCollection ) );
}

function LayersCollectionHideExceptActive( _LayersCollection )
{
	if( ! stdlayers19_allow ) return;
	
	if( LayersCollectionGetCurrent( _LayersCollection ) == ReservedLayersCollectionName ) return;
	
	var layersCount = eval( _LayersCollection + '.length' );
	
	for( i = 1; i < layersCount; i ++ )
	{
		if( ! LayersCollectionIsCurrent( _LayersCollection, GetLayerIdByIndex( _LayersCollection, i ) ) )
		{
			LayerSetVisible( GetLayerIdByIndex( _LayersCollection, i ), dvsHide );
		}
	}
}

