
var vLast;
var vLaengeA;
var vLaengeB;

function auswerten()
	{
		document.animator.setTimeDisplay ( false );		/** blendet Stoppuhr aus **/

		oBackground = document.animator.addObject ( " rectangle " , " x = 0 , y = 0 , w = 450 , h = 400 " );		/** Rechteck als Hintergrund **/
		document.animator.setRGB ( oBackground , 255 , 255 , 255 );		/** Hintergrundfarbe **/

		
		if ( pruefeEingabe( document.eingabe.last ) 
			 && pruefeEingabe( document.eingabe.laenge_a ) 
			 && pruefeEingabe( document.eingabe.laenge_b ) )
		{
			vLast = eval(document.eingabe.last.value);		/** Größe der Last **/
			vLaengeA = eval(document.eingabe.laenge_a.value);		/** Länge der Strecke a **/
			vLaengeB = eval(document.eingabe.laenge_b.value);		/** Länge der Strecke b **/
			berechnen();
		} 
	}

function pruefeEingabe( feld )
	{
		var feldWert = feld.value;
		feldWert = feldWert.replace( /,/, "." );

		if( isNaN( feldWert ) )
			{
				alert( "Sie müssen eine gültige Zahl eingeben !" );		/** überprüft gültige Zahleneingabe **/
				feld.focus();
				return false;
			}

		feldWert = feldWert.replace( /\s+/, "" );		/** entfernt alle Leerzeichen **/

		if( feldWert.length == 0 )
			{
				alert( "Es müssen alle Felder ausgefüllt sein !" );		/** Fehlermeldung wenn keine Eingabe erfolgt ist **/
				feld.focus();
				return false;
			}

		if( feldWert <= 0 )
			{
				alert( "Geben Sie für die Kraft und die Streckenlängen Werte größer Null ein !" );		/** reklamiert Werte <= Null **/
				feld.focus();
				return false;
			}

		feld.value = feldWert;
		return true;
	}

function berechnen()
	{
		var vLaenge = vLaengeA + vLaengeB;		/** Gesamtlänge **/
		var vAnteilA = vLaengeA / vLaenge;		/** anteilige Länge der Strecke a an der Gesamtlänge **/
		var vAnteilB = vLaengeB / vLaenge;		/** anteilige Länge der Strecke b an der Gesamtlänge **/

		var vAuflagerkraftVa = Math.round ( ( ( vLast * vLaengeB ) / vLaenge ) * 100 ) / 100;		/** Auflagerkraft VA **/
		var vAuflagerkraftVb = Math.round ( ( ( vLast * vLaengeA ) / vLaenge ) * 100 ) / 100;		/** Auflagerkraft VB **/
		var vMoment = Math.round ( ( ( vLast * vLaengeA * vLaengeB ) / vLaenge ) * 100 ) / 100;		/** Maximales Moment **/

		var wLaengeA = ( vLaengeA / vLaenge ) * 17.00 * 2.00;		/** Länge der Strecke  a **/
		var wLaengeB = ( vLaengeB / vLaenge ) * 17.00 * 2.00;		/** Länge der Strecke  b **/

		var ySystemachse = 12.50;		/** y-Koordinate der Systemachse **/
		var yMomentenlinie = 4.60;		/** y-Koordinate der Momentenlinie **/
		var yQuerkraftlinie = - 9.90;		/** y-Koordinate der Querkraftlinie **/
		var yLast = 17.60;		/** y-Koordinate der Last **/

		var xAuflagerA = -17.00;		/** x-Koordinate der Achse [ Auflager A ] **/
		var xAuflagerB = 17.00;		/** x-Koordinate der Achse [ Auflager B ] **/
		var xLast = xAuflagerA + wLaengeA;		/** x-Koordinate der Achse [ Last] **/

		var yImageAuflagerA = 12.4;		/** y-Koordinate Auflager A **/
		var xImageAuflagerA = - 17.70;		/**x-Koordinate Auflager A **/
		var yImageAuflagerB = 12.4;		/** y-Koordinate Auflager B **/
		var xImageAuflagerB = 16.20;		/**x-Koordinate Auflager A **/

		var xMitteStreckeA = xAuflagerA + ( xLast - xAuflagerA ) / 2;		/** x-Koordinate der Achse [ Mitte der Strecke a ] **/
		var xMitteStreckeB = xAuflagerB - ( xAuflagerB - xLast ) / 2;		/** x-Koordinate der Achse [ Mitte der Strecke b ] **/

		/** SYSTEM **/
		
		var xBeschriftungStreckeA = xMitteStreckeA - 1.50;		/** x-Koordinate der Beschriftung der Strecke a **/
		var yBeschriftungStreckeA = 9.40;		/** y-Koordinate der Beschriftung der Strecke a **/
		
		var xBeschriftungStreckeB = xMitteStreckeB - 1.50;		/** x-Koordinate der Beschriftung der Strecke b **/
		var yBeschriftungStreckeB = 9.40;		/** y-Koordinate der Beschriftung der Strecke b **/
		
		var tBeschriftungStreckeA = ( "a = " + vLaengeA + " m" );		/** Text der Beschriftung der Strecke a **/
		var tBeschriftungStreckeB = ( "b = " + vLaengeB + " m" );		/** Text der Beschriftung der Strecke b **/

		generateRectangle ( 0 , ySystemachse , 340 , 2 , 0 , 0 , 0 );		/** Systemachse **/
		generateText ( tBeschriftungStreckeA , xBeschriftungStreckeA , yBeschriftungStreckeA , 83 , 83 , 83 );		/** Beschriftung Strecke a **/
		generateText ( tBeschriftungStreckeB , xBeschriftungStreckeB , yBeschriftungStreckeB , 83 , 83 , 83 );		/** Beschriftung Strecke b **/

		/** LAST **/

		var tBeschriftungLast = ( "F = " + vLast + " kN" );		/** Text der Beschriftung der Last **/
		var xBeschriftungLast = xLast + 1.50;		/** x-Koordinate der Beschriftung der Last **/
		var yBeschriftungLast = 16.50;		/** y-Koordinate der Beschriftung der Last **/
		
		generateText ( tBeschriftungLast , xBeschriftungLast , yBeschriftungLast , 83 , 83 , 83 );		/** Beschriftung der Last **/
		generateImage ( 'last.gif' , xLast , yLast );		/** Last **/

		/** AUFLAGER **/

		var xBeschriftungAuflagerA = -19.00;		/** x-Koordinate der Beschriftung des Auflagers A **/
		var yBeschriftungAuflagerA = 12.40;		/** y-Koordinate der Beschriftung des Auflagers A **/

		var xBeschriftungAuflagerB = 17.60;		/** x-Koordinate der Beschriftung des Auflagers B **/
		var yBeschriftungAuflagerB = 12.40;		/** y-Koordinate der Beschriftung des Auflagers B **/
		
		generateImage ( 'auflager_a.gif' , xImageAuflagerA , yImageAuflagerA );		/** Auflager A **/
		generateImage ( 'auflager_b.gif' , xImageAuflagerB , yImageAuflagerB );	/** Auflager B **/
		
		generateText ( 'A' , xBeschriftungAuflagerA , yBeschriftungAuflagerA , 83 , 83 , 83 );		/** Beschriftung Auflager A **/
		generateText ( 'B' , xBeschriftungAuflagerB , yBeschriftungAuflagerB , 83 , 83 , 83 );		/** Beschriftung Auflager B **/

		/** MOMENTENLINIE **/

		if ( vMoment <= 10 ) { var hMoment = 30; };		/** Ermittlung der Darstellungsgröße der Momentenlinie **/
		if ( vMoment > 10 && vMoment < 100 ) { var hMoment = 0.39 * vMoment + 26.10; };
		if ( vMoment >= 100 ) { var hMoment = 65; };
		var hMoment = - hMoment;		/** Vorzeichenwechsel **/
		
		var wMaxMoment = wLaengeA * 10;		/** geometrische Daten für Momentenfläche **/
		var hPolyMoment = ( " 0 / " + wMaxMoment + " / 340 " );		/** geometrische Daten für Momentenfläche **/
		var vPolyMoment = ( " 0 / " + hMoment + " / 0 " );		/** geometrische Daten für Momentenfläche **/
		
		var yMomentenflaeche = yMomentenlinie - 0.15;		/** y-Koordinate der Momentenfläche **/
		
		var tBeschriftungMoment = ( "max. M = " + vMoment + " kNm bei x = " + vLaengeA + " m" );		/** Text der Beschriftung des Momentes **/
		var xBeschriftungMoment = -12.00;		/** x-Koordinate der Beschriftung des Momentes **/
		var yBeschriftungMoment = yMomentenlinie +0.70;		/** y-Koordinate der Beschriftung des Momentes **/

		var yBeschriftungMomentenlinie = yMomentenlinie - 0.40;		/** y-Koordinate der Beschriftung der Momentelinie **/

		generateRectangle ( 0 , yMomentenlinie , 340 , 2 , 0 , 0 , 0 );		/** Momentenlinie **/
		generatePolyshape ( -17.00 , yMomentenflaeche , 3.00 , hPolyMoment , vPolyMoment , 158 , 179 , 222 );		/** Momentenfläche **/
		generateText ( tBeschriftungMoment , xBeschriftungMoment , yBeschriftungMoment , 83 , 83 , 83 );		/** Beschriftung des Momentes **/
		generateText ( 'M(x)' , '-21.00' , yBeschriftungMomentenlinie , 83 , 83 , 83 );		/** Beschriftung des Momentes **/

		/** QUERKRAFTLINIE **/

		var quotient = vAuflagerkraftVb / vAuflagerkraftVa;		/** Verhältnis der Auflagerkräfte zueinander **/

		if ( vAuflagerkraftVa <= 10 )			/** Ermittlung der Darstellungsgröße der Querkraftlinie **/
			{ 	var hQuerkraftLinks = 30; 
				var hQuerkraftRechts = 30 * quotient; };
		if ( vAuflagerkraftVa > 10 && vAuflagerkraftVa < 100 )	
			{  var hQuerkraftLinks = 0.39 * vAuflagerkraftVa + 26.10; 
				var hQuerkraftRechts = ( 0.39 * vAuflagerkraftVa + 26.10 ) * quotient; };
		if ( vAuflagerkraftVa >= 100 )	
			{ var hQuerkraftLinks = 65; var hQuerkraftRechts = 65 * quotient; };

		var xQuerkraftLinks = xMitteStreckeA;		/** x-Koordinate der Querkraftlinie links **/
		var yQuerkraftLinks = yQuerkraftlinie + 0.05 + ( hQuerkraftLinks / 20 );		/** y-Koordinate der Querkraftlinie links **/
		var wQuerkraftLinks = ( xLast - xAuflagerA ) * 10;		/** Weite der Querkraftlinie links **/

		var xQuerkraftRechts = xMitteStreckeB;		/** x-Koordinate der Querkraftlinie rechts **/
		var yQuerkraftRechts = yQuerkraftlinie - 0.1 - ( hQuerkraftRechts / 20 );		/** y-Koordinate der Querkraftlinie rechts **/
		var wQuerkraftRechts = ( xAuflagerB - xLast ) * 10;		/** Weite der Querkraftlinie rechts **/

		var tBeschriftungAuflagerkraftVa = ( " V(A) = " + vAuflagerkraftVa + " kN " );		/** Text der Beschriftung der Auflagerkraft V(A) **/
		var xBeschriftungAuflagerkraftVa = -17.50;		/** x-Koordinate der Beschriftung der Auflagerkraft V(A) **/
		var yBeschriftungAuflagerkraftVa = yQuerkraftlinie - 1.70;		/** y-Koordinate der Beschriftung der Auflagerkraft V(A) **/

		var tBeschriftungAuflagerkraftVb = ( " V(B) = " + vAuflagerkraftVb + " kN " );		/** Text der Beschriftung der Auflagerkraft V(B) **/
		var yBeschriftungAuflagerkraftVb = yQuerkraftlinie + 0.80;		/** y-Koordinate der Beschriftung der Auflagerkraft V(B) **/

		var yBeschriftungQuerkraftlinie = yQuerkraftlinie - 0.40;		/** y-Koordinate der Beschriftung der Querkraftlinie **/

		generateRectangle ( xQuerkraftLinks , yQuerkraftLinks , wQuerkraftLinks , hQuerkraftLinks , 158 , 179 , 222 );		/** Querkraftfläche links **/
		generateRectangle ( xQuerkraftRechts , yQuerkraftRechts , wQuerkraftRechts , hQuerkraftRechts , 247 , 103 , 110 );		/** Querkraftfläche links **/
		generateRectangle ( 0 , yQuerkraftlinie , 340 , 2 , 0 , 0 , 0 );		/** Querkraftlinie **/
		generateText ( tBeschriftungAuflagerkraftVa , '- 17.50' , yBeschriftungAuflagerkraftVa , 83 , 83 , 83 );		/** Beschriftung der Querkraft links **/
		generateText ( tBeschriftungAuflagerkraftVb , '6.50' , yBeschriftungAuflagerkraftVb , 83 , 83 , 83 );		/** Beschriftung der Querkraft rechts **/
		generateText ( 'Q(x)' , '-21.00' , yBeschriftungQuerkraftlinie , 83 , 83 , 83 );		/** Beschriftung der Querkraftlinie **/

		/** ALLGEMEINE FUNKTIONEN **/

		function generateRectangle ( x , y , w , h , r , g , b )		/** generiert Rechteck **/
			{
				rectangle = document.animator.addObject ( " rectangle " , " x = " + x + " , y = " + y + " , w = " + w + " , h = " + h + " " );
				document.animator.setRGB ( rectangle , r , g , b );																	
			}

		function generatePolyshape ( x , y , n , h , v , r , g , b )		/** generiert Polygon **/
			{
				polyshape = document.animator.addObject ( " polyshape " , " x = " + x + " , y = " + y + " , n = " + n + " , h = " + h + " , v = " + v + " " );
				document.animator.setRGB ( polyshape , r , g , b );																	
			}
		
		function generateText ( text , x , y , r , b , g )		/** generiert Text **/
			{
				text = document.animator.addObject ( " text " , " text = " + text + " , x = " + x + " , y = " + y + " " );
				document.animator.setRGB ( text , r , g , b );																	
			}

		function generateImage ( src , x , y )		/** generiert Bild **/
			{
				document.animator.addObject ( " image " , " file = " + src + " , x = " + x + " , y = " + y + " " );
			}

		/** MELDUNGEN **/

		if ( vAnteilA < 0.10 ) { showAlert(' A '); };
		if ( vAnteilB < 0.14 ) { showAlert(' B '); };

		function showAlert( ID ) { alert( ' Sie haben die Last F dicht am Auflager' + ID + 'platziert. Dies kann zu Darstellungsproblemen führen ! ' ); };

	}