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




/*
======================================================================================
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

    alert(InF_Source_ID);
    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:          VoithServiceData.js
Beschreibung:     Drucken des aktuellen Inhaltes 

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

}

/*
======================================================================================
Funktion:         PageReload()
in Datei:          VoithServiceData.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:          VoithServiceData.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
{
var gespeichert = "small";
if (navigator.cookieEnabled == true){
gespeichert = getSwitchCookie();  // Lesen Cookie
if (gespeichert != null){  // Wenn Cookie vorhanden

if (gespeichert == "small") { // Wenn Cookiewert = small schreibe den html tag für den Verweis auf content1.css
    document.write("<link href=\"Resources/css/VoithServiceData_normal.css\" rel=\"stylesheet\" type=\"text/css\" title ='small' />")
}

else {
if (gespeichert =="big") { // Wenn Cookiewert = big schreibe den html tag für den Verweis auf content2.css

    document.write("<link href=\"Resources/css/VoithServiceData_large.css\" rel=\"stylesheet\" type=\"text/css\" title ='big' />")
}
else {
if (gespeichert =="indi") { // Wenn Cookiewert = small schreibe den html tag für den Verweis auf content3.css

    document.write("<link href=\"Resources/css/VoithServiceData_system.css\" rel=\"stylesheet\" type=\"text/css\" title ='indi' />")
}
else { // Wenn kein brauchbarer Cookiewert, schreibe den html tag für den Verweis auf content1.css

    document.write("<link href=\"Resources/css/VoithServiceData_normal.css\" rel=\"stylesheet\" type=\"text/css\" title ='small' />")
}
}
}
}
else {
setSwitchCookie("small"); // Wenn kein Cookie vorhanden, erzeuge es

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


}

}
else{ // Wenn keine cookies erlaubt sind, nur content1.css möglich
    document.write("<link href=\"Resources/css/VoithServiceData_normal.css\" rel=\"stylesheet\" type=\"text/css\" title ='small' />")
}


}


/*
======================================================================================
Funktion:         useStyle()
in Datei:          VoithServiceData.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:         VoithServiceData.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:          VoithServiceData.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;
}
