function autocreate(){
	var aw = document.getElementById("ergebnis");
	for(i = 0; i<=3; i++){
		aw.options[i] = new Option();
	}
}

function autochoose_mass(){
	window.document.getElementById("deg").checked = true;
}

function autochoose_einheit(){
	window.document.getElementById("dec").checked = true;
}

function get_numblock(Zeichen){

	/*var x = window.document.calc.ergebnis.value + Zeichen;

	window.document.calc.ergebnis.value = x;

	*/

	var aw = document.getElementsByName("ergebnis")[0];
	if(aw.options[3].text != "")
	{

		if(aw.options[3].text == division0)
		{
			aw.options[0] = new Option();
			aw.options[1] = new Option();
			aw.options[3] = new Option();
		}
		else
		{
			aw.options[0] = new Option(aw.options[3].text);
			var temp2 = aw.options[1].text;
			aw.options[1] = new Option(temp2+Zeichen);
		}
	}

	if(aw.options[1].text == "")
	{

		// var Eintrag = document.createElement("option"); 
		//Eintrag.text = document.getElementsByName("Eingabe")[0].value;
		if(aw.options[0].text == keineZahl)
		{
			aw.options[0] = new Option();
		}
		var temp = aw.options[0].text;
		if(temp == "0" && Zeichen == "0")
		{}
		else
		{
			aw.options[0] = new Option(temp+Zeichen);	
		}
	}

	if( aw.options[1].text != "" )
	{

		var temp = aw.options[1].text;
		if(temp == "+0" || temp == "-0" || temp == "*0" || temp == "/0" || temp == "%0" )
		{
			if(Zeichen != ".")
			{}
			else
			{
				aw.options[1] = new Option(temp+Zeichen);
			}
		}
		else
		{
			aw.options[1] = new Option(temp+Zeichen);	
		}
			
		
			
	}

	if(	aw.options[0].text != "" && 
		aw.options[1].text != "" && 
		aw.options[2].text != "" && 
		aw.options[3].text != "")

	{

		aw.options[0] = new Option(Zeichen);	
		aw.options[1] = new Option("");
		aw.options[2] = new Option("");	
		aw.options[3] = new Option("");	

	}

	

}





function stack_fill(stack,dis)

{

	stack.push(dis);

	

}



function get_operation(op)

{

	var aw = document.getElementsByName("ergebnis")[0];

	if(aw.options[3].text != "" && aw.options[2].text != "")

	{

	

		aw.options[0] = new Option(aw.options[3].text);
		aw.options[1] = new Option(op);
		aw.options[2] = new Option("");
		aw.options[3] = new Option("");
		var a = aw.options[0].text;
	

	}

	if(aw.options[0].text != "" && aw.options[1].text == "")

	{

		aw.options[1] = new Option(op);

	}

	
	//fall wenn schon 2 zahlen miteinander verrechnet werden und neues operationsszeichen gedrückt wurde 
	if(aw.options[0].text != "" && aw.options[1].text != "" && aw.options[1].text.length > 1)

	{

		var zahl1 = aw.options[0].text;
		var zahl2 = aw.options[1].text;
		if(aw.options[3] != division0)
		{
			if(op != "*" && op != "/")
			{
			
				var zahl2 = aw.options[1].text;
				if(zahl2 == "/0")
				{
					
					aw.options[3] = new Option(division0)	
				}
				else
				{
				loesung();
				aw.options[0] = new Option(aw.options[3].value);
				aw.options[1] = new Option(op);
				aw.options[2] = new Option("");
				aw.options[3] = new Option("");
				}
			}
			if(op == "*" || op == "/")
			{
				var zahl1 = aw.options[0].text;
				var zahl2 = aw.options[1].text;
				if(zahl2 == "/0")
				{
					
					aw.options[3] = new Option(division0)	
				}
				else
				{
					
				
					aw.options[0] = new Option(zahl1+zahl2);
					aw.options[1] = new Option(op);
				}
				
			}
		}
		else
		{
			sonder_func('clean');
		}
	
	}

}

function loesung()
{

		var aw = document.getElementsByName("ergebnis")[0];
		var temp = aw.options[1].text;
		var temp2 = temp.search(hoch);
		var temp3 = temp.search(wurzel2);
		if(temp2 == -1 && temp3 == -1)

		{

			
			if(aw.options[0].text != "")

			{

				if(aw.options[1].text == "/0")
				{
				
					aw.options[3] = new Option(division0);
				}
				else
				{
					var zahl1 = aw.options[0].text;
	
					var zahl2 = aw.options[1].text;
	
					erg = eval(zahl1+zahl2);
	
					aw.options[2] = new Option("------------------------------------");
	
					aw.options[3] = new Option(erg);
				}
			}

			else
			{

				aw.options[0] = new Option(keineZahl);
			}

		}

		else
		{
			var x = aw.options[0].text;
			var y = aw.options[1].text;
			var erg = 0;
			if(temp2 != -1)
			{
				operat = y.split(hoch);
				y = operat[1];
				erg = Math.pow(x,y);
				aw.options[2] = new Option("------------------------------------");
				aw.options[3] = new Option(erg);
			}

			if(temp3 != -1)
			{
				operat = y.split(wurzel2);
				y = operat[1];
				erg = Math.pow(y,(1/x));
				aw.options[2] = new Option("------------------------------------");
				aw.options[3] = new Option(erg);
		

			}

			
		}

}



function special_func(func)
{
	var aw = document.getElementsByName("ergebnis")[0];
	
	if(parseFloat(aw.options[0].text) || aw.options[0].text == "0")
	{
		
		if(aw.options[0].text != "" && aw.options[1].text != "" && aw.options[3].text == "")
		{
			
			loesung();
			aw.options[0] = new Option(aw.options[3].text);
			aw.options[1] = new Option("");
			aw.options[2] = new Option("");
			aw.options[3] = new Option("");
		}
		

		if(aw.options[3].text != "")
		{
				aw.options[0].text = aw.options[3].text;
				aw.options[0] = new Option(aw.options[3].text);
		}

			if(func == "sqrt")

			{

				 var zahlx = 0;

				 zahlx = eval(aw.options[0].text);

				 aw.options[1] = new Option(wurzel);

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(Math.sqrt(zahlx));   

			}

			if(func == "pow")

			{

				 var zahlx = 0;

				 zahlx = parseFloat(aw.options[0].text);

				 aw.options[1] = new Option(quadrat);

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(zahlx*zahlx); 

			}

			if(func == "log")

			{

				 var zahlx = 0;

				 zahlx = eval(aw.options[0].text);

				 aw.options[1] = new Option('log');

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(Math.log(zahlx));   

			}

			if(func == "ln")

			{

				

			}

			if(func == "sin")

			{

				 var zahlx = 0;

				 zahlx = eval(aw.options[0].text);

				 aw.options[1] = new Option('sin');

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(Math.sin(zahlx));  

			}

			if(func == "cos")

			{

				 var zahlx = 0;

				 zahlx = eval(aw.options[0].text);

				 aw.options[1] = new Option('cos');

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(Math.cos(zahlx));  

			}

			if(func == "tan")

			{

				  var zahlx = 0;

				 zahlx = eval(aw.options[0].text);

				 aw.options[1] = new Option('tan');

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(Math.tan(zahlx));  

			}

			if(func == "fak")

			{

				var zahlx = 0;

				var erg = 1;

				 zahlx = eval(aw.options[0].text);

				if(zahlx == 1 || zahlx == 0)

				{

					aw.options[1] = new Option(fakultaet);

					aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(1);

				}

				else

				{

					for(n = 2; n <= zahlx; n++)

					{

						erg = erg*n;

					}
					aw.options[1] = new Option(fakultaet);
					aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(erg);

				}

			}

			

			if(func == "abs")

			{

				  var zahlx = 0;

				 zahlx = eval(aw.options[0].text);

				 aw.options[1] = new Option(absBetrag);

				 aw.options[2] = new Option("------------------------------------");

				 aw.options[3] = new Option(Math.abs(zahlx));  

			}

			if(func == "xhochy")

			{

				 

				

					aw.options[2] = new Option("");

					aw.options[3] = new Option("");

				

				aw.options[1] = new Option(hoch);

			}

			if(func == "xsqrty")

			{

				

					aw.options[2] = new Option("");

					aw.options[3] = new Option("");

				

				 aw.options[1] = new Option(wurzel);

			}
		
	} else {
			aw.options[3] = new Option(keineZahl);
	}
}

function sonder_func(func){
		var aw = document.getElementsByName("ergebnis")[0];
	if(func == "clean"){
		autocreate();
	}
	if(func == "umkehr"){
		//1. zeile
		if(aw.options[0].text != "" && aw.options[1].text == "" && aw.options[3].text == ""){
			var zahlx = 0;
			zahlx = aw.options[0].text;
			zahlx = zahlx*-1;
			aw.options[0] = new Option(zahlx);
		}
		//2. zeile inc. Operant
		if(aw.options[0].text != "" && aw.options[1].text != "" && aw.options[3].text == ""){
			var temp = aw.options[1].text;
			operat = temp.split("");
			temp = operat[0];
			temp2 = "";
			for(i = 1; i < operat.length; i++)
			{
				temp2 = temp2+operat[i];
			}
			temp2 = temp2*-1;
			aw.options[1] = new Option(temp+temp2);
		}
		//ergebniszeile
		if(aw.options[0].text != "" && aw.options[1].text != "" && aw.options[3].text != ""){
			var zahlx = 0;
			zahlx = aw.options[3].text;
			zahlx = zahlx*-1;
			aw.options[3] = new Option(zahlx);
		}			
	}
	if(func == "proz"){
		 if(aw.options[0].text != "" && aw.options[1].text == ""){
		 	var zahlx = 0;
		 	zahlx = eval(aw.options[0].text);
		 	aw.options[1] = new Option(prozent);
		 	aw.options[2] = new Option("------------------------------------");
		 	aw.options[3] = new Option(zahlx/100);   
		 }
		 
		 if(aw.options[0].text != "" && aw.options[1].text != "" && aw.options[3].text == ""){
			 var zahlx = 0;
		 	 var zahly = 0;
			 zahlx = eval(aw.options[0].text);
			 zahly = aw.options[1].text;
			operat = zahly.split("");
			temp = operat[0];
			temp2 = "";
			for(i = 1; i < operat.length; i++){
				temp2 = temp2+operat[i];
			}
			temp2 = zahlx*(temp2/100);
			aw.options[1] = new Option(zahly+"%");
			aw.options[2] = new Option("------------------------------------");
			aw.options[3] = new Option(eval(zahlx+temp+temp2));	 
		 }
	}
}
function umrechnung_einheit(){}
function copytoclipboard(){
	if(aw.options[3].value != ""){
		textfeld.select();
		zwischenablage.setContents(new java.awt.datatransfer.StringSelection(textfeld.value), null);
	}
}