///////////////////////////////////////////////////////////////////////////////
//	Standard Layers 1.7
//	e-design JavaScript library 1.3

//	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 stdlayers_unit_advance_level = 3;

if(advance_level >= stdlayers_unit_advance_level) {
	if(navigator_vendor == 2) {
		layerRef='document.'
		styleRef=''
		topRef='.top'
		leftRef='.left'
	}
	else if(navigator_vendor == 1) {
		layerRef=''
		styleRef='.style'
		topRef='.pixelTop'
		leftRef='.pixelLeft'
	}
}

function _layerTop(layer)
{
	if(advance_level < stdlayers_unit_advance_level) return "0";
	return layerRef + layer + styleRef + topRef;
}

function _layerLeft(layer)
{
	if(advance_level < stdlayers_unit_advance_level) return "0";
	return layerRef + layer + styleRef + leftRef;
}

function _layerVisible(layer, visibility_value)
{
	if(advance_level < stdlayers_unit_advance_level) return "";
	return layerRef + layer + styleRef + '.visibility = "' + visibility_value + '"';
}

function _layerVisibility(layer)
{
	if(advance_level < stdlayers_unit_advance_level) return dvsHide;

	//  changed since v 1.6 to return dvsHide or dvsShow on place of 'h' or 's'
	if( eval( layerRef + layer + styleRef + '.visibility.substr(0, 1)' ) == 'h' )
	{
		return dvsHide;
	}
	else
	{
		return dvsShow;
	}
}

function _layerImage(layer, img)
{
	if(advance_level < stdlayers_unit_advance_level) return 'undefined';
	
	if(navigator_vendor == 2) {
		return 'window.document.layers.' + layer + '.document.images.' + img + '.src';
	}
	else if(navigator_vendor == 1) {
		return 'document.' + img + '.src';
	}	
}

//	----------------------- 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	

var _reservedLayersCollectionName = '__Reserved';

function _LayersCollectionSetCurrent( layers_collection__, layer__ )
{
	eval( layers_collection__ + '[0] = "' + layer__.slice(3) + '"' );
}

function _LayersCollectionClearCurrent( layers_collection__ )
{
	eval( layers_collection__ + '[0] = "' + _reservedLayersCollectionName + '"' );
}

function _LayersCollectionHide( layers_collection__ )
{
	if(advance_level < stdlayers_unit_advance_level) return;
	
	var layers_count__ = eval( layers_collection__ + '.length' );
	
	for( i = 1; i < layers_count__; i ++ )
	{
		eval( _layerVisible( 'div' + eval( layers_collection__ + '[i]' ), dvsHide ) );
	}
	
	_LayersCollectionClearCurrent( layers_collection__ );
}

function _LayersCollectionToggleLayer( layers_collection__, layer__ )
{
	if(advance_level < stdlayers_unit_advance_level) return;

	if( _layerVisibility( layer__ ) == dvsHide ) {
		eval( _layerVisible( layer__, dvsShow ) );
		_LayersCollectionSetCurrent( layers_collection__, layer__ );
	}
	else
	{
		eval( _layerVisible( layer__, dvsHide ) );
		_LayersCollectionClearCurrent( layers_collection__ );
	}
}

function _LayersCollectionShowLayer( layers_collection__, layer__ )
{
	if(advance_level < stdlayers_unit_advance_level) return;

	if( _layerVisibility( layer__ ) == dvsHide ) {
		eval( _layerVisible( layer__, dvsShow ) );
		_LayersCollectionSetCurrent( layers_collection__, layer__ );
	}
}

function _LayersCollectionHideLayer( layers_collection__, layer__ )
{
	if(advance_level < stdlayers_unit_advance_level) return;

	if( _layerVisibility( layer__ ) == dvsShow ) {
		eval( _layerVisible( layer__, dvsHide ) );
		_LayersCollectionClearCurrent( layers_collection__ );
	}
}

function _LayersCollectionHideCurrent( layers_collection__ )
{
	if(advance_level < stdlayers_unit_advance_level) return;

	layer__ = eval( layers_collection__ + '[0]' );
	
	if( layer__ != '__divReserved' && _layerVisibility( layer__ ) == dvsShow ) {
		eval( _layerVisible( layer__, dvsHide ) );
		_LayersCollectionClearCurrent( layers_collection__ );
	}
}


