var kType = -1;

/*************************************************************/
/*                                                           */
/* Ueberprueft, ob der Browser geeignet ist                  */
/*                                                           */
/*************************************************************/
function kCheckBrowserType(a)
{
	var t = 0;

	try
	{
		if( !document )
		{
			return( 0 );
		}
		
		if( document.getElementById )
		{
			t = document.getElementById(a);

			if(( t )&&( t.style ))
			{
				return( 3 );
			}
		}

		if ( document.all )
		{
			t = document.all[a];

			if(( t )&&( t.style ))
			{
				return( 1 );
			}
		}

		if ( document.layers )
		{
			t = document.layers[a];

			if(( t )&&( t.style ))
			{
				return( 2 );
			}
		}
	}
	catch(e)
	{
	}

	return( 0 );
}

/*************************************************************/
/*                                                           */
/* Gibt ein Objekt mit der id a zurck                       */
/*                                                           */
/*************************************************************/
function kGetObj(a)
{
	try
	{
		if( kType == -1 )
		{
			kType = kCheckBrowserType( a );
		}
	
		switch( kType )
		{
		default:
			return( null );

		case 1:
			return( document.all[a] );

		case 2:
			return( document.layers[a] );

		case 3:
			return( document.getElementById(a) );
		}
	}
	catch(e)
	{
	}

	return( null );
}

/*************************************************************/
/*                                                           */
/* Setzt die Styleeigenschaft s vom objekt o auf v           */
/*                                                           */
/*************************************************************/
function kSetStyle( o, s, v )
{
	try
	{
		o.style[s] = v;
		
		if ( o.style.setProperty )
		{
			o.style.setProperty( s, v );
		}
	}
	catch(e)
	{
	}
}

/*************************************************************/
/*                                                           */
/* Liefert die Styleeigenschaft s vom objekt o               */
/*                                                           */
/*************************************************************/
function kGetStyle( o, s )
{
	try
	{
		if ( o != null )
		{
			if ( o.style[s] )
			{
				return( o.style[s] );
			}

			return( o.style.getPropertyValue( s ) );
		}
	}
	catch(e)
	{
	}

	return( "" );
}

/*************************************************************/
/*                                                           */
/* Setzt die top und die left Variable auf x und y           */
/*                                                           */
/*************************************************************/
function kSetPos( o, x, y )
{
	try
	{
		o.style["left"] = x + "px";
		o.style["top"] = y + "px";
		
		if ( o.style.setProperty )
		{
			o.style.setProperty( "left", x + "px" );
			o.style.setProperty( "top", y + "px" );
		}
	}
	catch(e)
	{
	}
}

/*************************************************************/
/*                                                           */
/* Setzt die Sichtbarkeit von o (v = 0|1)                    */
/*                                                           */
/*************************************************************/
function kSetLayerVisible( o, v )
{
	kSetStyle( o, "display", v == 1 ? "block" : "none" );
}

/*************************************************************/
/*                                                           */
/* Liefert die Sichtbarkeit von o zurck (=0|1)              */
/*                                                           */
/*************************************************************/
function kGetLayerVisible( o )
{
	return( kGetStyle( o, "display" ) != "none" ? 1 : 0 );
}

/*************************************************************/
/*                                                           */
/* Schaltet das untermenu n aus                              */
/*                                                           */
/*************************************************************/
function kCloseMenu( n )
{
	t = kGetObj("menu_" + n);
	if ( t != null )
	{
		kSetLayerVisible( t , 0 );
	}
}

/*************************************************************/
/*                                                           */
/* Schaltet das untermenu n ein                              */
/*                                                           */
/*************************************************************/
function kOpenMenu( n )
{
	t = kGetObj("menu_" + n);
	if ( t != null )
	{
		kSetLayerVisible( t , 1 );
	}
}

/*************************************************************/
/*                                                           */
/* Testet die verfuegbarkeit von DHTML indem versucht wird   */
/* den Layer n aus sowie einzuschalten sowie dessen inhalt   */  
/* zu veraendern                                             */
/*                                                           */
/*************************************************************/
function kTestDHTML( n )
{
	try
	{
		t = kGetObj(n);
	
		if ( t != null )
		{
			kSetStyle( t, "display", "none" );
			if( kGetStyle( t, "display" ) != "none" )
			{
				return( false );
			}

			kSetStyle( t, "display", "block" );
			if( kGetStyle( t, "display" ) != "block" )
			{
				return( false );
			}
			
			tx = t.innerHTML;
			
			t.innerHTML = "<div id=\"tmp_" + n + "_tmp\"></div>";
			
			o = kGetObj( "tmp_" + n + "_tmp" );
			t.innerHTML = tx;
			
			if( !o )
			{
				return( false );
			}

			return( true );
		}
	}
	catch(e)
	{
	}
	
	return( false );
}

/*************************************************************/
/*                                                           */
/* Remaps fuer direkt Namenszugriff                          */
/*                                                           */
/*************************************************************/
function nGetStyle( oName, sName )
{
	if( o = kGetObj( oName ) )
	{
		return( kGetStyle( o, sName ) );
	}
	
	return( "" );
}

function nSetStyle( oName, sName, sVal )
{
	if( o = kGetObj( oName ) )
	{
		kSetStyle( o, sName, sVal );
	}
}

function nSetPos( oName, x, y )
{
	if( o = kGetObj( oName ) )
	{
		kSetPos( o, x, y );
	}
}

function nSetShow( oName, v )
{
	try
	{
		if( o = kGetObj( oName ) )
		{
			kSetStyle( o, "display", v != 0 ? "block" : "none"  );
		}
	}
	catch(e)
	{
	}
}

function nGetShow( oName, v )
{
	try
	{
		if( o = kGetObj( oName ) )
		{
			if( kGetStyle( o, "display" ) == "none"  )
			{
				return( 0 );
			}
		}
	}
	catch(e)
	{
	}

	return( 1 );
}

function nSetVal( oName, v )
{
	try
	{
		if( o = kGetObj( oName ) )
		{
			o.value = v;
		}
	}
	catch(e)
	{
	}
}

function nGetVal( oName )
{
	try
	{
		if( o = kGetObj( oName ) )
		{
			return( o.value );
		}
	}
	catch(e)
	{
	}

	return( "" );
}

function nSetSrc( oName, s )
{
	try
	{
		if( o = kGetObj( oName ) )
		{
			o.src = s;
		}
	}
	catch(e)
	{
	}
}


