// var scrollPositions = [];
var menuElements = [];
var observer;

Event.observe( window, 'load', init_window );
Event.observe( window, 'resize', init_window );

function move_to ( id )
{
	if ( self.location.href.indexOf( '#' ) > 0 )
	{
		self.location.href = self.location.href.split( '#' )[0] + '#' + id;
	}
	else
	{
		self.location.href += '#' + id;
	}
	
	// iFrame informieren dass es eine Änderung gab
	frames['content_iframe'].reset_scrolled();
}

function init_observer () {
	observer = new PeriodicalExecuter( function ( pe )
	{
		offset = $( 'content_frame_inner' ).cumulativeScrollOffset();
		offset = offset[0];

		for (var i=0; i < scrollPositions.length; i++) {

			if ( offset >= scrollPositions[i] )
			{
				if ( menuElements.length > 0 )
				{
					for (var j = menuElements.length - 1; j >= 0; j--){
						$( menuElements[j] ).removeClassName( 'active' );
					};

					$( menuElements[i] ).addClassName( 'active' );
				};
			};
		};	
	}, 0.6 );
}

function init_window ()
{
	if ( observer )
	{
		observer.stop();
	};
	
	var pageSize = getPageSize();
	
	if ( $( 'trenner_top' ) )
	{
		$( 'trenner_top' ).setStyle( { 'width': $( 'index' ).getWidth() - parseInt( $( 'trenner_top').getStyle( 'left' ) ) + 'px' } );
	};
	if ( $( 'trenner_btm' ) )
	{
		$( 'trenner_btm' ).setStyle( {
			'width': $( 'index' ).getWidth() - parseInt( $( 'trenner_btm' ).getStyle( 'left' ) ) + 'px',
			'height': pageSize[3] - parseInt( $( 'trenner_btm' ).getStyle( 'top' ) ) + 'px'
		} );
	};
	if ( $( 'content_menu' ) )
	{
		/* Menü Element initialsieren */
		$( 'content_menu' ).descendants().each( function ( e )
		{
			if ( e.hasClassName( 'menu' ) )
			{
				if ( e.id.include( '_link' ) )
				{
					menuElements.push( e.id );
				};
			};
		} );
	};

	var frameWidth = 0;
	var spacerWidth = 0;

	// init_observer();
}

function getPageSize()
{
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}