﻿

var browserOK=false;
if (document.images) {browserOK=true;}


var Browser_Name=navigator.appName;
var Browser_Version=navigator.appVersion;

var active_MainMenuButton; // wird von den Einzelseiten gesetzt
var active_RadButton; // ""


if (browserOK)
{
    // MainMenu-Buttons
    MainMenuButtons_off=new Array();
    MainMenuButtons_on=new Array();
    

    MainMenuButtons_off[0]=new Image(); MainMenuButtons_off[0].src="images/nav_home_off.gif";
    MainMenuButtons_on[0]=new Image(); MainMenuButtons_on[0].src="images/nav_home_on.gif";
    
    MainMenuButtons_off[1]=new Image(); MainMenuButtons_off[1].src="images/nav_leistungen_off.gif";
    MainMenuButtons_on[1]=new Image(); MainMenuButtons_on[1].src="images/nav_leistungen_on.gif";
    
    MainMenuButtons_off[2]=new Image(); MainMenuButtons_off[2].src="images/nav_referenzen_off.gif";
    MainMenuButtons_on[2]=new Image(); MainMenuButtons_on[2].src="images/nav_referenzen_on.gif";
    
    MainMenuButtons_off[3]=new Image(); MainMenuButtons_off[3].src="images/nav_kontakt_off.gif";
    MainMenuButtons_on[3]=new Image(); MainMenuButtons_on[3].src="images/nav_kontakt_on.gif";
        


    // Icons im Rad
    var Anzahl_RadButtons = 7;

    RadButtons=new Array();
    for(i=0; i<Anzahl_RadButtons; i++)
    {
        adr_low="images/button_rad_"+i+"_aus.jpg";
        adr_high="images/button_rad_"+i+"_an.jpg";

        RadButtons[i]=new Image(); RadButtons[i].src=adr_low;
        RadButtons[i+Anzahl_RadButtons]=new Image(); RadButtons[i+Anzahl_RadButtons].src=adr_high;
    }


}


// ******************************************************************
// -------- Rotier-Konfiguration (alle Winkel in Bogenmass) ---------
// ******************************************************************
var LayerAnzahl=Anzahl_RadButtons;
var WinkelAbstand=0.187;          	// Winkel zwischen 2 banachbarten Layern, der auch waehrend der Rotation erhalten bleiben soll.

var MPx = -188; var MPy=50;			// Kreismittelpunkt (Rotationsmittelpunkt)
var r = 410;						// Radius (in Pixeln)
                                    // Die Winkel (WinkelStart,WinkelEnde) beziehen sich auf die linkere obere Ecke des 1. Layers ('Layer0'):
var WinkelStart=Math.PI*(-0.156); 	// Winkelstart (Rotationsbeginn) des 1.Layers ('Layer0')
var WinkelEnde=Math.PI*(-0.345);	// Winkelende  (Rotations-Ende)  des 1.Layers ('Layer0')


// Rotationsgeschwindigkeiten:

var timeout=0;
var WinkelSprungMinimum=0.0024;     // Kleinster Winkelsprung in Bogenmass. ########### ACK 04 ############

var Beschleunigungsfaktor_NS6=3.5;  // ### ACK 05 ###
var Beschleunigungsfaktor_NS7=1.5;  // ### ACK 06 ###
var Beschleunigungsfaktor_NS8=3;
var Beschleunigungsfaktor_NS9=1.8;
var Beschleunigungsfaktor_Opera_9_2=2;
var Beschleunigungsfaktor_Opera_7=1.5;
var Beschleunigungsfaktor_Opera_6=0.7; // Bremse
var Beschleunigungsfaktor_Opera_5=0.2; // Bremse
var Beschleunigungsfaktor_Firebird=1.8;
var Beschleunigungsfaktor_GoogleChrome = 0.3; // starke Bremse


var SpeedLevel = 3; 


// ******************************************************************


var WinkelErsterLayer=WinkelStart; 	// aktueller, auf die linke obere Ecke bezogene Winkel des 1.Layers ('Layer0')
var x,y;	   						// Layer-Koordinaten
var stop = true;
var timer = null;
var Drehrichtung;



if (navigator.userAgent.indexOf('Navigator')!= -1) // Netscape
{
    // Netscape mit Beschleunigungsfaktor (für Layer-Rotation) auf die Sprünge helfen:
    if (document.getElementById && !document.all) //Test, ob mindestens Netscape 6x vorliegt
    {
        
        var genaue_Netscape_Version=navigator.userAgent.split('/'); 						// ### ACK 07 ###
        genaue_Netscape_Version=genaue_Netscape_Version[genaue_Netscape_Version.length-1]; 	// ### ACK 08 ###
        genaue_Netscape_Version=genaue_Netscape_Version.substring(0,1); 					// ### ACK 09 ###
    	
    	
        if(genaue_Netscape_Version=="6")
        {
            WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_NS6;  			// ### ACK 10 ###
        }	
        else if(genaue_Netscape_Version=="7")
        {
            WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_NS7; 				// ### ACK 11 ###
        }	
        else if(genaue_Netscape_Version=="8")
        {
            WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_NS8; 				
        }	
        else if(genaue_Netscape_Version=="9")
        {
            WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_NS9; 				
        }	
    }
}
	
// Google Chrome bremsen:
if (navigator.userAgent.indexOf('Chrome')!= -1) 
{
    WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_GoogleChrome; 
}	

// Opera 9.2x und 7.x mit Beschleunigungsfaktor auf die Sprünge helfen:
if (navigator.userAgent.indexOf('Opera/9.2')!= -1) WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_Opera_9_2;	
if (navigator.userAgent.indexOf('Opera 7')!= -1) WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_Opera_7;	
	
// Opera 6+5 bremsen:
if (navigator.userAgent.indexOf('Opera 6')!= -1) WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_Opera_6;	
if (navigator.userAgent.indexOf('Opera 5')!= -1) WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_Opera_5;	

// Firebird beschleunigen:
if (navigator.userAgent.indexOf('Firebird')!= -1) WinkelSprungMinimum=WinkelSprungMinimum*Beschleunigungsfaktor_Firebird;	


	
var WinkelSprung = WinkelSprungMinimum*SpeedLevel;







// ***********************************************
// Mouseover-Funktionen für's HauptMenu 
// ***********************************************

function MainMenuButton_on(ziffer)
{    
    if(browserOK)
    { 
        if(ziffer!=active_MainMenuButton)
        {
            document.images["mainmenubutton_"+ziffer].src=MainMenuButtons_on[ziffer].src;
        }
    }
}

function MainMenuButton_off(ziffer)
{    
    if(browserOK)
    { 
        if(ziffer!=active_MainMenuButton) 
        {
            document.images["mainmenubutton_"+ziffer].src=MainMenuButtons_off[ziffer].src;
        }
    }
}


function alle_mainmenuButtons_aus() 
{
    if(browserOK)
    {   
        for(i=0;i<4;i++)
        {
            document.images["mainmenubutton_"+i].src=MainMenuButtons_off[i].src;  
        }  
        
        active_MainMenuButton=null;
        
    }
}


// *******************************************
// Mouseover-Funktionen für die Icons im 'Rad'
// *******************************************	 

function radbutton_on(ziffer)
{    
    if(browserOK)
    { 
       if(ziffer!=active_RadButton)
       {
            document.images["radbutton_"+ziffer].src=RadButtons[ziffer+Anzahl_RadButtons].src;
       }
    }
}



function radbutton_off(ziffer)
{    
    if(browserOK)
    { 
       if(ziffer!=active_RadButton) 
       {
            document.images["radbutton_"+ziffer].src = RadButtons[ziffer].src;
        }
    }
}



function alle_radbuttons_aus()
{	
    if(browserOK)
    {
        for(i=0; i<Anzahl_RadButtons; i++)
        {
            document.images["radbutton_"+i].src = RadButtons[i].src;
        }
        
        active_RadButton=null;
    }		
}

// Anzahl_RadButtons
    
    
    
//  ***************************   Funktionen für DHTML   **********************************

var layer;
function bewegeLayer(name, x, y) 
{
  
  /*
  if (document.all) // InternetExplorer ab Version 5
  // #################
  // ACK 12
  // ###################
  
  {
    layer = eval('document.all.' + name + '.style');
    layer.left = x;
    layer.top  = y;
  }
  */
  
  
   
    if (document.getElementById) // Netscape ab 6.x, IE ab Vers. 5, Mozilla etc.
    {
        document.getElementById(name).style.left = x+"px";
        document.getElementById(name).style.top = y+"px";
    }
  
    /*
    else if (document.layers) // Netscape 4.7
    {
        layer = document.layers[0].layers[name]; // layers[0] steht fuer den aeuesseren Layer ('Begrenzungslayer')
        layer.moveTo(x, y);
    }
    */
  
}





function drehen()
{
if (stop==false)
    {
            if(Drehrichtung=='links') // gegen Uhrzeigersinn
            {
                WinkelErsterLayer = WinkelErsterLayer + WinkelSprung;
                if (WinkelErsterLayer > WinkelStart) {WinkelErsterLayer = WinkelStart;}
            }
		
            else // rechts (Uhrzeigersinn)
            {
                WinkelErsterLayer = WinkelErsterLayer - WinkelSprung;
                if (WinkelErsterLayer < WinkelEnde) {WinkelErsterLayer = WinkelEnde;} 
            }
		
			
		
            for (i=0;i<LayerAnzahl;i++)
            {
                x = Math.round(MPx + r*Math.cos(WinkelErsterLayer + i*WinkelAbstand));
                y = Math.round(MPy - r*Math.sin(WinkelErsterLayer + i*WinkelAbstand)); 
                bewegeLayer('layer'+i, x, y);
            }
            
      
            if(WinkelErsterLayer == WinkelStart || WinkelErsterLayer == WinkelEnde) 
            {
                stop = true; // ACK #044
            }
            
		
        /*###############
        ACK 13
        ################*/
            clearTimeout(timer);
            timer=setTimeout('drehen()',timeout);
    }
}



/*
function SpeedVerringern()
{ 
if (SpeedLevel>1)
    {
    SpeedLevel=SpeedLevel-1;
    document.images["speedAnzeige"].src=speedImage[SpeedLevel].src;
    WinkelSprung=WinkelSprungMinimum*SpeedLevel;
    }
}


function SpeedErhoehen()
{
if (SpeedLevel<7)
    {
    SpeedLevel=SpeedLevel+1;
    document.images["speedAnzeige"].src=speedImage[SpeedLevel].src;
    WinkelSprung=WinkelSprungMinimum*SpeedLevel;
    }
}
*/




// ********************************************************************************************



// ******************************
// Layer in Startposition bringen 
// ******************************

function Layer_in_Startposition_bringen(_LayerAnzahl, _WinkelStart, _WinkelAbstand)
{
    for (i=0;i<_LayerAnzahl;i++)
    {
        x = Math.round(MPx + r*Math.cos(_WinkelStart + i*_WinkelAbstand));
        y = Math.round(MPy - r*Math.sin(_WinkelStart + i*_WinkelAbstand));
        /*###############
        ACK 14
        #################*/
        bewegeLayer('layer'+i,x,y);
    }
}


// ******************************
// Popups 
// ******************************

// Für Beispiel-Popup 'Anwendungen':
var win1;
function popup_1(theURL)
{ 
	var PopupBreite = 820;
	var PopupHoehe = screen.height - 180;
	
	// ACK #034
	if (navigator.userAgent.indexOf('Opera')!= -1)
	{
	    PopupHoehe = screen.height - 230;
	}
	
	theURL += "?fx=" + PopupBreite + "&fy=" + PopupHoehe;
	
	
	
	win1=window.open(theURL,'PopupWindow1','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,copyhistory=0,width=' + PopupBreite + ',height=' + PopupHoehe);
	// ### ACK 015 ###
	if(win1 != null)
	{
		win1.moveTo(20,20);
		win1.focus();
	}
}


// Für Beispiel-Popup 'Websites':
var win2;
function popup_2(theURL)
{ 
	var PopupBreite = 820;
	var PopupHoehe = screen.height - 200;
	
    // ACK #034
	if (navigator.userAgent.indexOf('Opera')!= -1)
	{
	    PopupHoehe = screen.height - 230;
	}
	
	theURL += "?fx=" + PopupBreite + "&fy=" + PopupHoehe;
	
	
	win2=window.open(theURL,'PopupWindow2','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,copyhistory=0,width=' + PopupBreite + ',height=' + PopupHoehe);
	// ### ACK 015 ###
	if(win2 != null)
	{
		win2.moveTo(20,20);
		win2.focus();
	}
}





// -----------------------------------------------------------

function GroessenAnpassungsWerte()
{

    // ACK 25 (!!)
    

    // --------------------------
    // ACK 20
    var Kernbereich_Breite = 860;
    var Kernbereich_Hoehe = 490;
    // -------------------------
    
    
    // --------------
    // Verlängerungen
    // --------------
    var Verlaengerung_oben = 0;
    var Verlaengerung_unten = 0;
    
    var Verlaengerung_links = 0;
    var Verlaengerung_rechts = 0;

    // document.documentElement.clientHeight --> ACK #033
    
    var verfuegbare_RestHoehe = document.documentElement.clientHeight - Kernbereich_Hoehe;
    var verfuegbare_RestBreite = document.documentElement.clientWidth - Kernbereich_Breite;
    
    var verfuegbare_RestHoehe_oben = verfuegbare_RestHoehe/2;
    var verfuegbare_RestHoehe_unten = verfuegbare_RestHoehe/2;
    var verfuegbare_RestBreite_links = verfuegbare_RestBreite/2;
    var verfuegbare_RestBreite_rechts = verfuegbare_RestBreite/2;
    
    // --------
    var oben_fuer_Verlaengerung_nutzen__Prozent = 41;
    var unten_fuer_Verlaengerung_nutzen__Prozent = 43;
    var links_fuer_Verlaengerung_nutzen__Prozent = 34;
    var rechts_fuer_Verlaengerung_nutzen__Prozent = 69;
    
    if(document.documentElement.clientHeight <= 610)
    {
        oben_fuer_Verlaengerung_nutzen__Prozent = 20;
        unten_fuer_Verlaengerung_nutzen__Prozent = 20;
    }
    if(document.documentElement.clientWidth < 1100)
    {
        links_fuer_Verlaengerung_nutzen__Prozent = 26
        rechts_fuer_Verlaengerung_nutzen__Prozent = 77;
    }
    // --------
    
    
    Verlaengerung_oben = Math.round(verfuegbare_RestHoehe_oben *(oben_fuer_Verlaengerung_nutzen__Prozent/100)); 
    Verlaengerung_unten = Math.round(verfuegbare_RestHoehe_unten * (unten_fuer_Verlaengerung_nutzen__Prozent/100));
    Verlaengerung_links = Math.round(verfuegbare_RestBreite_links * (links_fuer_Verlaengerung_nutzen__Prozent/100));
    Verlaengerung_rechts = Math.round(verfuegbare_RestBreite_rechts *(rechts_fuer_Verlaengerung_nutzen__Prozent/100));
    
     
    if(Verlaengerung_oben < 0) Verlaengerung_oben = 0;
    if(Verlaengerung_unten < 0) Verlaengerung_unten = 0;
    if(Verlaengerung_links < 0) Verlaengerung_links = 0;
    if(Verlaengerung_rechts < 0) Verlaengerung_rechts = 0;
    
    
    // ----------------------- max: --------------------------
    if(Verlaengerung_oben > 72) Verlaengerung_oben = 72;
    if(Verlaengerung_unten >76) Verlaengerung_unten = 76;
    
    if(Verlaengerung_links > 90) Verlaengerung_links = 90;
    if(Verlaengerung_rechts > 170) Verlaengerung_rechts = 170;
    // -------------------------------------------------------
    

    
    // --------------
    // Oberer Abstand 
    // --------------
    // (so berechnen, dass sich eine vertikale Ausrichtung ergibt, die etwas über mittig liegt)
    
    var Rahmen_oben_und_unten_mit_Innenabstand = 10; // ACK 23 
    
    var Abstand_oben = Math.round((document.documentElement.clientHeight - Rahmen_oben_und_unten_mit_Innenabstand - Kernbereich_Hoehe - Verlaengerung_oben - Verlaengerung_unten) / 2); 
    
    var Verschiebung_aus_vertikaler_Mittellage = 10;
    
    if(document.documentElement.clientHeight <= 610)
    {
        Verschiebung_aus_vertikaler_Mittellage = 2;
    }
    
    Abstand_oben -= Verschiebung_aus_vertikaler_Mittellage; 

    
    if(Abstand_oben < 0) 
    {
        Abstand_oben = 0;
    }
    
    
    // -------------
    // Gesamtbreite:
    // -------------
    var Gesamtbreite = Kernbereich_Breite + Verlaengerung_links + Verlaengerung_rechts;
    
    
    //  Rahmen-Farbe (ACK #026 + 026_b)
    var neue_Rahmenfarbe = "";
    if(screen.height <= 800)
    {
        neue_Rahmenfarbe = "#000000;";
    }
    
    
    // --------------
    // Logo-Position:
    // --------------
    var Logo_x = 30 - Math.round(Verlaengerung_oben/1.2);
    var Logo_y = 15 - Math.round(Verlaengerung_links/1.4);
    
    
    // ---------------
    // C-Div-Position:
    // ---------------
    var c_div_x = 470 + Math.round(Verlaengerung_unten/1.3);
    var c_div_y = 665 + Verlaengerung_rechts;
    
    
    
    // -------------------------
    // Werte-Rückgabe als Objekt 
    // -------------------------
    var Werte = new Object(); // ACK #041
    
    Werte["Abstand_oben"] = Abstand_oben;
    Werte["Verlaengerung_oben"] = Verlaengerung_oben;
    Werte["Verlaengerung_unten"] = Verlaengerung_unten;
    Werte["Verlaengerung_links"] = Verlaengerung_links;
    Werte["Verlaengerung_rechts"] = Verlaengerung_rechts;
    Werte["Gesamtbreite"] = Gesamtbreite;
    Werte["neue_Rahmenfarbe"] = neue_Rahmenfarbe;
    Werte["Logo_x"] = Logo_x;
    Werte["Logo_y"] = Logo_y;
    Werte["c_div_x"] = c_div_x;
    Werte["c_div_y"] = c_div_y;

    return Werte;
    
}


// -----------------------------------------------------------

function GroessenAnpassung_beim_Laden()
{  
    // ACK #042
    
    var Werte = new Object(); // ACK #041
    Werte = GroessenAnpassungsWerte();
    

    // -----------------------------
    // Style-Class-Überschreibungen:
    // -----------------------------
    document.write('<style type="text/css">\r\n');
	
        // Abstand oben:
        document.write('.div_abstand_oben { padding-top:' + Werte["Abstand_oben"] + 'px; width:100%; }\r\n');
        
        // Verlängerungen:
        document.write('.div_padding_links_rechts { padding-left:' + Werte["Verlaengerung_links"] + 'px; padding-right:' + Werte["Verlaengerung_rechts"] + 'px; }\r\n');
        document.write('.div_padding_oben_unten { padding-top:' + Werte["Verlaengerung_oben"] + 'px; padding-bottom:' + Werte["Verlaengerung_unten"] + 'px; }\r\n');
        
        // Breite GesamtDiv (mit Rahmen):
        if(Werte["neue_Rahmenfarbe"] != "")
        {
            document.write('.maindiv_mit_rahmen { width:' + Werte["Gesamtbreite"] + 'px; border-color:' + Werte["neue_Rahmenfarbe"] + ' }\r\n'); 
        }
        else
        {
            document.write('.maindiv_mit_rahmen { width:' + Werte["Gesamtbreite"] + 'px; }\r\n');
        }
        
        
        // Logo neu positionieren:
        document.write('.div_logo { top:' + Werte["Logo_x"] + 'px; left:' + Werte["Logo_y"] + 'px; }\r\n');
        
        // C-Div neu positionieren:
        document.write('.div_copyright { top:' + Werte["c_div_x"] + 'px; left:' + Werte["c_div_y"] + 'px; }\r\n');
        

	document.write('</style>\r\n');	
 
   
}

// -----------------------------------------------------------

function GroessenAnpassung_bei_ResizeEvent()
{   
    // ACK #042
    
    var Werte = new Object(); // ACK #041
    Werte = GroessenAnpassungsWerte();
    
    var element_1 = document.getElementById("DivAbstandOben");
    var element_2 = document.getElementById("Verlaengerung_padding_oben_unten");
    var element_3 = document.getElementById("Verlaengerung_padding_links_rechts");
    var element_4 = document.getElementById("MainDiv_mit_Rahmen");
    var element_5 = document.getElementById("LogoDiv");
    var element_6 = document.getElementById("copyrightDiv");
    
    if(element_1 != null && element_2 != null && element_3 != null && element_4 != null)
    {
        
        // --------------------------
        // Div-Style-Überschreibungen 
        // --------------------------
        
        // Abstand oben:
        element_1.style.paddingTop = Werte["Abstand_oben"] + "px"; 

        // Verlängerungen:
        element_2.style.paddingTop = Werte["Verlaengerung_oben"] + "px";
        element_2.style.paddingBottom = Werte["Verlaengerung_unten"] + "px";
        
        element_3.style.paddingLeft = Werte["Verlaengerung_links"] + "px";
        element_3.style.paddingRight = Werte["Verlaengerung_rechts"] + "px";

        // Breite GesamtDiv (mit Rahmen):
        element_4.style.width = Werte["Gesamtbreite"] + "px";
        if(Werte["neue_Rahmenfarbe"] != "")
        {
            element_4.style.borderColor = Werte["neue_Rahmenfarbe"]; // ACK #026 + 026_b
        }
        
        // Logo neu positionieren:
        element_5.style.top = Werte["Logo_x"]  + "px";
        element_5.style.left = Werte["Logo_y"] + "px";
        
        // C-Div neu positionieren:
        element_6.style.top = Werte["c_div_x"]  + "px";
        element_6.style.left = Werte["c_div_y"] + "px";
    }
    

    
    
}    
  
  


// ******** sonstige Funktionen *********

function MainMenuButton_bei_Seitenaufruf_aktivieren(_ziffer)
{
    document.images["mainmenubutton_"+_ziffer].src=MainMenuButtons_on[_ziffer].src;
    active_MainMenuButton = _ziffer; 
}

function RadButton_bei_Seitenaufruf_aktivieren(_ziffer)
{
    document.images["radbutton_"+_ziffer].src=RadButtons[_ziffer+Anzahl_RadButtons].src;
    active_RadButton = _ziffer; 
}


function clean() 
{
    // ### ACK 17 ###
    
    alle_mainmenuButtons_aus();
    alle_radbuttons_aus();
}
  
