//#####################################################################################
//###### Scroll Content ###############################################################
//#####################################################################################

var currentEffect = null;
var isScrolling = false;
var movetime = 0;
var arrowDownAppear = true;
var arrowUpAppear	= false;
var currentFade		= false;
var currentAppear 	= false;

//--------------------Content-Height Überprüfen--------------------

function checkContentHeight() {
	if ( $('main') ) {
		var mainHeight		= $('main').getHeight();
		var contentHeight 	= $('maincontent').getHeight();
		if ( contentHeight-22 <= mainHeight ) {
			$('scrolldown').style.display = 'none';
		}
	}
}

//--------------------Start Scrolling--------------------


//	_____Start Scroll Down____

function startScrollDown() {
	var firstTopPx 		= $('main').viewportOffset().top;
	var topPx			= $('maincontent').viewportOffset().top;
	var mainheight		= $('main').getHeight();
	var contentheight 	= $('maincontent').getHeight();
	
	movetime = ( contentheight - ( firstTopPx - topPx ) - mainheight ) / 60;
	
	if ( ( arrowUpAppear == false ) && ( currentFade == false ) && ( arrowDownAppear == true ) ) {
		currentEffect = new Effect.Move(
			$( 'maincontent' ),
			{
				x: 0,
				y: - contentheight + mainheight,
				mode:'absolute', 
				duration: movetime,
				transition: Effect.Transitions.linear,
				beforeStart: function( obj ) { new Effect.Appear( $( 'scrollup' ), { afterFinish: function( obj ) { arrowUpAppear = true; } } ); },				
				afterFinish: afterScrollDown							 
			}
		);
		isScrolling = true;
	}
	
	if ( ( arrowUpAppear == true ) && ( currentFade == false ) && ( arrowDownAppear == true ) ) {
		currentEffect = new Effect.Move(
			$( 'maincontent' ),
			{
				x: 0,
				y: - contentheight + mainheight,
				mode:'absolute', 
				duration: movetime,
				transition: Effect.Transitions.linear,
				afterFinish: afterScrollDown							 
			}
		);
		isScrolling = true;		
	}
}

//	_____Start Scroll Up____

function startScrollUp() {
	var firstTopPx 		= $('main').viewportOffset().top;
	var topPx			= $('maincontent').viewportOffset().top;
	var mainheight		= $('main').getHeight();
	var contentheight 	= $('maincontent').getHeight();	
	
	movetime = ( contentheight - mainheight - ( contentheight - ( firstTopPx - topPx ) - mainheight ) ) / 60;

	if ( ( arrowDownAppear == false ) && ( currentFade == false ) && ( arrowUpAppear == true ) ) {
		currentEffect = new Effect.Move(
			$( 'maincontent' ),
			{
				x: 0,
				y: 0,
				mode:'absolute',
				duration: movetime,
				transition: Effect.Transitions.linear,
				beforeStart: function( obj ) { new Effect.Appear( $( 'scrolldown' ), { afterFinish: function( obj ) { arrowDownAppear = true; } } ); },
				afterFinish: afterScrollUp
			}
		);
		isScrolling = true;
	}
	
	if ( ( arrowDownAppear == true ) && ( currentFade == false ) && ( arrowUpAppear == true ) ) {
		currentEffect = new Effect.Move(
			$( 'maincontent' ),
			{
				x: 0,
				y: 0,
				mode:'absolute',
				duration: movetime,
				transition: Effect.Transitions.linear,
				afterFinish: afterScrollUp
			}
		);
		isScrolling = true;
	}
}

//--------------------Stop Scrolling--------------------

//	____Stop Scroll Up____

function stopScrollUp() {
	if ( currentEffect && isScrolling ) {
		currentEffect.cancel();
	} 
	afterScrollUp( null );
}

//	____Stop Scroll Down____

function stopScrollDown() {
	if ( currentEffect && isScrolling ) {
		currentEffect.cancel();
	} 
	afterScrollDown( null );
}

//--------------------After Scrolling--------------------

//	____After Scroll Up____

function afterScrollUp( obj ) {
	currentEffect = null;
	isScrolling = false;
	
	if ( ( arrowUpAppear == true ) && ( obj != null ) ) {
		new Effect.Fade( $( 'scrollup' ), 
						   { 
							beforeStart: function( obj ) { currentFade 		= true;  },
							afterFinish: function( obj ) { arrowUpAppear 	= false;
						    							   currentFade 		= false; }
						 	} );
	}
}

//	____After Scroll Down____

function afterScrollDown( obj ) {
	currentEffect = null;
	isScrolling = false;
	
	if ( ( arrowDownAppear == true ) && ( obj != null ) ) {
		new Effect.Fade( $( 'scrolldown' ), 
							{ 
								beforeStart: function( obj ) { currentFade 		= true;  },
								afterFinish: function( obj ) { arrowDownAppear 	= false;
															   currentFade 		= false; }
							} );
	}
}

//#####################################################################################
//###### Hide Value Of Input-Fields ###################################################
//#####################################################################################

function hideStdValue(field) {
  if ( ( field.value == 'Benutzername' ) || ( field.value == 'Passwort' ) ) {
    field.value   = '';
    field.onfocus = '';
  }
}