
// $Revision$ 1.0
/*
======================================================================================
Firma:            Voith Turbo
Projekt:          Voith Diagnostic Tools XML-Java-Script Functions for EOL
Dateiname:        DIWA5_EOL.js
Beschreibung:     -
Doku in:          No
Ersterstellung:   /2009 - RThe
======================================================================================
*/


/*
======================================================================================
Funktion:         EOL_CallAndDec()		
Beschreibung:     Diese Funktion am Ende der Seite aufgerufen, um verschiedene DIV-Blöcke
                  zu aktivieren.
                  
                  Ohne Parameter wird das gesamte Dokument formatiert
                  Parameter 'System' aktiviert die Gruppen-Definition Formatierung
                  Parameter'Para+Name' aktiviert die Formatierung eines einzelnen Parameters
                  
                  alle weitern Div-Blöcke sind ausgeschaltet.

Parameter:        
				  
Returnwert:       
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/


function EOL_CallAndDec() {


    var InF_Call = new String(document.location.href); 										// In Call wird die gesamt URL mit Parameter gespeichert
    var InF_IndexofQuestionmark = InF_Call.indexOf("?"); 								    // Ermittlung des ? Trennzeichens bei Übergabe-Parameter
    if (InF_IndexofQuestionmark <= -1) {
        InF_IndexofQuestionmark = InF_Call.indexOf("#");     // Raute geht auch bei internem Link
        if (InF_IndexofQuestionmark > -1) {
            // Es ist eine Raute -> Interner Link, Banner wird nicht angezeigt (Verwendung im Report)
            var divbanner = document.getElementById('ID_Page_Banner');                                                 // Parameter-Block anzeigen
            divbanner.style.display = "none"
        }
    }
       
  
   
    if (InF_IndexofQuestionmark > -1) {																					// Wenn in der URL ein ? steckt wurde ein Parameter übergeben
        var InF_My_CallParam = new String(InF_Call.substring((InF_IndexofQuestionmark + 1), InF_Call.length));      	// My_CallParam ist der gesamte Parameter
      
        InF_My_CallParam = trim(InF_My_CallParam);  
       
        if (InF_My_CallParam.indexOf("Para") >= 0) {                                                                   // Prüfen, ob ein EOL-Parameter gefordert wird
  		

            var TheParameter = new String(InF_My_CallParam.substring((5), InF_My_CallParam.length));                    // Name des EOL-Parameters
           
          
            var div = document.getElementById('ID_ParameterDef_Block');                                                 // Parameter-Block anzeigen
            div.style.display = "block"
          
            var divP = document.getElementsByName(TheParameter);                                                        // Einzelnen Parameter im Block anzeigen
           
            divP[1].style.display = "block"
          
        }

        else {
                
            if (InF_My_CallParam == '_Konfiguration') {
                var divK = document.getElementById('ID_GroupDef_Block');
                divK.style.display = "block"
               
               
            }                                                                                                           // Bei fehlerhaftem Parameter wird nichts angezeigt.
        }
    }
    else	// Kein Parameter übergeben
    {
        div = document.getElementById('ID_System_Block');                                                               // Ohne Übergabe-Parameter wird der System-Block angezeigt
        div.style.display = "block"
      
       
    }

}


/*
======================================================================================
Funktion:         EP_toggleMe()
in Datei:         EP_functions.js

Beschreibung:     Blendet das übergebene Kapitel Ein / Aus.
				  		  
Die ID zum gewünschten div wird übergeben und der display.style getoggelt.
				
Eingesetzt für Kapitel:
				  
- Inhaltsverzeichnis
				  						  		
Zusätzlich werden für das Inhaltsverzeichnis 
die Icon-Sourcen ausgetauscht.
				  
				  
				  
Parameter:        Source_ID
Returnwert:       true
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/



function EP_toggleMe(InF_Source_ID) {


    // Ein / Ausblenden von Div-Blöcken
    

    var InF_Source_ID_Copy = InF_Source_ID;
    var InF_Object = document.getElementById(InF_Source_ID); 																		        // Setzen des Objektes

    if (!InF_Object) return true;
    if (InF_Object.style.display == "none")     
        {
            InF_Object.style.display = "block"                                                                                              // Einblenden der aufrufenden ID

            if (InF_Source_ID == 'ID_Content') document.ID_Content_Grafic.src = 'Resources/XSL/Images/_System_Folder_Opend.gif'             // Umschalten des Content Icons
        }
    
    else {
        InF_Object.style.display = "none"																								    // Ausblenden der aufrufenden ID


        if (InF_Source_ID == 'ID_Content') document.ID_Content_Grafic.src = 'Resources/XSL/Images/_System_Folder_Closed.gif'                // Umschalten des Content Icons
       
    }
    return true;



}






// ======================================================================================
// Funktionen zum Drucken und reload (Explorer Funktionen nachgebildet)
// ======================================================================================



/*
======================================================================================
Funktion:         PrintWindowContent()
in Datei:          DIWA5_EOL.js
Beschreibung:     Drucken des aktuellen Inhaltes 

Parameter:        -
Returnwert:       -
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/
function PrintWindowContent()
{  
window.print();

}

/*
======================================================================================
Funktion:         PageReload()
in Datei:          DIWA5_EOL.js
Beschreibung:     Aktualisiern der aktuellen html Seite

Parameter:        -
Returnwert:       -
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/
function PageReload() {
    location.reload();  // = Aktualisieren im IExplorer
}




// ======================================================================================
// Funktionen zum Ändern des aktuellen CSS.
// Wird genutz um die Anzeige von groß auf mittel auf klein umzustellen
// ======================================================================================

/*
======================================================================================
Funktion:         writeContentCSS()
in Datei:          DIWA5_EOL.js
Beschreibung:     Diese Funktion liest ein cookie und prüft, ob kleine, mittlere oder große Anzeige verwendet werden soll.
Prüfen ist ein einfacher Wechsel.
Der neue Wert (small or indi or big) wird ins Cookie zurückgeschrieben.
Für den Wechsel wird das Stylschied auf content1, content2 oder content3 gesetzt.
Diese Funktion wird von den content Seiten beim start ausgeführt.
content1 = klein enthält absolut definierte kleine Schriftgrößen
content2 = mittel enthält absolut definierte Voith Standart Schriftgrößen
content3 = indi (individual) enthält relativ definierte große Standart Schriftgrößen.
Diese hängen von der Schriftart-Einstellung des IExplorers ab.

Parameter:        -
Returnwert:       -
Ersterstellung:   /2008 - RThe
Letzte Änderung:  -
======================================================================================
*/
function writeContentCSS() // Diese Funktion wird nach dem link auf das CSS in der html Seite ausgeführt und überschreibt so die voreingestellte Einstellung
{

    document.write("<link href=\"Resources/css/DIWA5_EOL_normal.css\" rel=\"stylesheet\" type=\"text/css\" title ='small' />")
}


/*
======================================================================================
Funktion:         useStyle()
in Datei:          DIWA5_EOL.js
Beschreibung:     Diese Funktion liest das aktuelle cookie für das CSS und wechselt den Inhalt.
Danach werden die html Seiten aktualisiert. Die cookies werden benötigt, damit auch beim
Seitenwechsel das richtige CSS ausgewählt werden kann. Usestyle wird durch den Link im Banner aufgerufen.

Parameter:        -
Returnwert:       -
Ersterstellung:   /2008 - RThe
Letzte Änderung:  -
======================================================================================
*/
function useStyle()
{
var gespeichert = "small"; // Variable für das Cookie
if (navigator.cookieEnabled == true){
gespeichert = getSwitchCookie();
if (gespeichert != null){  // Wenn Cookie vorhanden

// lesen
if (gespeichert == "small") {    // prüfen ob small oder big
setSwitchCookie("big");      	 // umschalten (setzte cookie auf neuen Wert)
PageReload();}
else {
if (gespeichert == "big") {
setSwitchCookie("indi");
PageReload();}
else {
if (gespeichert == "indi") {
setSwitchCookie("small");
PageReload();}
else {
setSwitchCookie("small");      // umschalten (setzte cookie auf neuen Wert)
PageReload();}
}
}


}else{									// wenn noch kein cookie dann erstellen mit Standard klein
setSwitchCookie("small");
PageReload();
}
}
}



// ======================================================================================
// Cookie related functions
// ======================================================================================


/*
======================================================================================
Funktion:         setSwitchCookie()
in Datei:         DIWA5_EOL.js
Beschreibung:     Diese Funktion lerzeugt eine Cookie

Parameter:        - v = Cookie - Speicherwert
Returnwert:       -
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/
function setSwitchCookie(v)
{

var jetzt = new Date(); // benötigt für die cookie-Verfallszeit. Gesetzt auf ein Jahr!
var Verfall = 356 * 24 * 60 * 60 * 1000;
var Auszeit = new Date(jetzt.getTime() + Verfall); // Die cookie Verfallszeit in Millisekunden. Danach wird cookie gelöscht von Browser
var cook = "Rechts=" + v + ";" + " expires=" + Auszeit.toGMTString() + ";";

document.cookie = cook;
}


/*
======================================================================================
Funktion:         getSwitchCookie()
in Datei:          DIWA5_EOL.js
Beschreibung:     Diese Funktion ließt eine Cookie und gibt den Inhalt zurück.
Gelesen wird nur der Wert des Parameter content

Parameter:        -
Returnwert:       - content value
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/
function getSwitchCookie()
{
var i=0  //Suchposition im Cookie
var suche = "Rechts="
while (i<document.cookie.length){
if (document.cookie.substring(i, i+suche.length)==suche){
var ende = document.cookie.indexOf(";", i+suche.length)
ende = (ende>-1) ? ende : document.cookie.length
var cook = document.cookie.substring(i+suche.length, ende)
return unescape(cook)
}
i++
}
}



/*
======================================================================================
FP Funktionen für den Hover-Effekt der Navigations-Leiste

Parameter:        -
Returnwert:       - 
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/


function FP_preloadImgs() {//v1.0
 var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}

function FP_swapImg() {//v1.0
 var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
 n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
 elm.$src=elm.src; elm.src=args[n+1]; } }
}

function FP_getObjectByID(id,o) {//v1.0
 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
 return null;
}




/*
======================================================================================
Funktion:         trim          h
Beschreibung:     Diese Funktion löscht alle Leerzeichen in einem string

Parameter:        string
				  
Returnwert:       string
Ersterstellung:   /2009 - RThe
Letzte Änderung:  -
======================================================================================
*/


function trim(zeichenkette) {
    // Erst führende, dann Abschließende Whitespaces entfernen
    // und das Ergebnis dieser Operationen zurückliefern
    var TheValue = new String(zeichenkette.replace(/^\s+/, '').replace(/\s+$/, ''));
    TheValue = TheValue.replace("%5B", "[");
    TheValue = TheValue.replace("%5D", "]");
    return TheValue;
}
