// Zusammenfassung aller verwendeter JavaScripte in der Matuschek-Website.
// Dadurch wird jeweils nur EINE Scriptdatei referenziert was den Header der HTML Dateien schön
// klein und übersichtlich hält. Außerdem müssen bei neuen Scripten bzw. Funktionen diese nicht
// erneut in allen Dateien eingefügt werden. Es reicht diese in der zentralen Scriptdatei
// einzufügen. Der anfängliche Overhead ist vernachlässigbar, da die Datei nach dem ersten
// Laden im Browsercache sein sollte.



// RollOver Effekt/Bildwechsel für Fussball-Spatz und andere Bilder, die beim Drüberfahren
// mit der Maus wechseln sollen.
function bildwechsel(bildname, tauscheIn){

    bildobjekt = new Image();
    
    // Das entsprechende Bild wird je nach Angabe ins Bildobjekt geladen
    bildobjekt.src = "/grafik/homepage/spatzen/" + tauscheIn + ".gif";
    
    // Austauschen des Bildes im Document mit dem Bildobjekt
    window.document.images[bildname].src = bildobjekt.src;
  
}// end function 'bildwechsel'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion, welche die Farben für die dynamische Zeilenhervorhebung beim überfahren der
// Tabellenzeilen in den Datentabellen festlegt.
// modus == 'm' steht dabei für MARKIERT, also der hervorgehobene Zustand, 'n' für normal
//
// Am Anfang sind bei größeren Tabellen einige Zeilen leicht markiert (class="marked"). Diese
// Markierung geht durch das Drüberfahren mit der Maus flöten. Das ist ok, da der Benutzer
// dann ja schon herausgefunden hat, daß die Zeilen durch die Maus hervorgehoben werden 
// können. Bei ausgeschaltetem JavaScript bleiben die initial-markierten Zeilen erhalten.
function change(id, modus){

    // erspart mehrfaches schreiben von 'document.getElementById(...)'
    row = eval(document.getElementById(id));
    
    if(modus == 'm'){
      row.style.backgroundColor = "#CDCDCD";
    }
    else{
      row.style.backgroundColor = "#DEDDDD";
    }

}// end function 'change'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion, um die Eingabe der Suchwörter im Suchformular zu checken.
// Es wird überprüft ob mindestens ein Suchbegriff mit mindestens zwei Zeichen
// eingegeben wurde. Wenn nicht, dann wird der User aufgefordert das zu ändern.
// Erst wenn mindestens EIN gültiges Suchwort eingegeben wurde werden die Daten an
// das PHP-Script weitergeleitet.
function check_search_form(){

var fehler, eingabe, zweiZeichen, woerter, sprache, fehler_meldung;


// Initialisierung der Meldungen in den versch. Sprachen
fehler_meldung = new Array();

fehler_meldung[1] = new Array();
fehler_meldung[1]["de"] = "Bitte geben Sie einen Suchbegriff ein! (mindestens 2 Zeichen)";
fehler_meldung[1]["en"] = "Please insert a search word! (at least 2 characters)";
fehler_meldung[1]["fr"] = "Entrez le critère de recherche! (au moins deux signes)";

fehler_meldung[2] = new Array();
fehler_meldung[2]["de"] = "Suchbegriffe müssen mindestens 2 Zeichen lang sein!";
fehler_meldung[2]["en"] = "Search words must be at least 2 characters long!";
fehler_meldung[2]["fr"] = "Longueur minimale d'un critère de recherche: Deux signes!";


// Abfrage der Sprache aus dem versteckten Feld 'lang' im Formular
// Wenn 'lang' nicht 'en' ist wird auf den Default Wert 'de' gesetzt
switch(document.suchform.lang.value){
case "en":
	sprache = "en";
	break;
case "fr":
	sprache = "fr";
	break;
default:
	sprache = "de";
	break;
}


// Fehlerbehandlung
fehler = 0;
eingabe = document.suchform.searchwords.value;
zweiZeichen = false;

// auf 'leere Zeichenkette' und 'nur Leerzeichen' prüfen
if (eingabe.match(/^\s*$/)){
	fehler = 1;
}


// Wenn kein Fehler bisher, dann auf 'nur ein Zeichen eingegeben' prüfen
// Per split() die eingegebenen Begriffe in ein Array schreiben und nachsehen ob die Begriffe
// ALLE mindestens 2 Zeichen lang sind. Werden Einzeichen-Suchwörter gefunden bricht die
// Schleife mit einer Fehlermeldung ab. Ansonsten werden die Daten an das Such-Script übergeben.
if (fehler == 0){
	
woerter = eingabe.split(" ");

for(var i=0; i < woerter.length; i++)
{
	if (woerter[i].length >= 2){
		zweiZeichen = true;
	} else {
		zweiZeichen = false;
		break;// sobald ein Suchbegriff nicht lang genug ist wird die Schleife mit break abgebrochen
	}
}

if (! zweiZeichen){
	fehler = 2;
}
}



// Ausgabe der Fehlermeldung
if (fehler){
	alert(fehler_meldung[fehler][sprache]);
	document.suchform.searchwords.focus();
	return false;
}


}// end function 'check_search_form'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion zur Überprüfung der obligatorischen Felder im Kontaktformular auf Eingabe. Die
// Ausgabe der Meldungen in verschiedenen Sprachen wird durch ein Array gesteuert welches am
// Anfang initialisiert wird.

function check_kontakt_formular(){

// Initialisierung der Meldungen in den versch. Sprachen
meldungen = new Array();

meldungen["de"] = new Array();
meldungen["de"]["name"] = "Bitte geben Sie Ihren Namen ein!";
meldungen["de"]["firma"] = "Bitte geben Sie Ihre Firma an!";
meldungen["de"]["anschrift"] = "Bitte geben Sie Ihre Anschrift ein!";
meldungen["de"]["telefon"] = "Bitte geben Sie Ihre Telefonnummer an!";
meldungen["de"]["email"] = "Bitte geben Sie Ihre Email Adresse ein!";
meldungen["de"]["sec_item_flaw"] = "Bitte geben Sie 'OK' ein!";

meldungen["en"] = new Array();
meldungen["en"]["name"] = "Please enter your name!";
meldungen["en"]["firma"] = "Please enter your organisation!";
meldungen["en"]["anschrift"] = "Please enter your address!";
meldungen["en"]["telefon"] = "Please enter your phone number!";
meldungen["en"]["email"] = "Please enter your email address!";
meldungen["en"]["sec_item_flaw"] = "Please enter 'OK' as security code!";

meldungen["fr"] = new Array();
meldungen["fr"]["name"] = "Veuillez entrer votre nom!";
meldungen["fr"]["firma"] = "Veuillez entrer votre société!";
meldungen["fr"]["anschrift"] = "Veuillez entrer votre adresse!";
meldungen["fr"]["telefon"] = "Veuillez entrer votre numéro de téléphone!";
meldungen["fr"]["email"] = "Veuillez entrer votre adresse e-mail!";
meldungen["fr"]["sec_item_flaw"] = "Veuillez entrer 'OK'!";


// Abfrage der Sprache aus dem versteckten Feld 'sprache' im Formular
// Wenn 'sprache' nicht 'en' bzw. 'fr' ist wird auf den Default Wert 'de' gesetzt
switch(document.InfoFormular.lang.value){
case "en":
	sprache = "en";
	break;
case "fr":
	sprache = "fr";
	break;
default:
	sprache = "de";
	break;
}


// Abfrage der obligatorischen Felder auf Eingabe
if (document.InfoFormular.Name.value == ""){
	alert(meldungen[sprache]["name"]);
	document.InfoFormular.Name.focus();
	return false;
}
if (document.InfoFormular.Firma.value == ""){
	alert(meldungen[sprache]["firma"]);
	document.InfoFormular.Firma.focus();
	return false;
}
if (document.InfoFormular.Anschrift.value == ""){
	alert(meldungen[sprache]["anschrift"]);
	document.InfoFormular.Anschrift.focus();
	return false;
}
if (document.InfoFormular.Telefon.value == ""){
	alert(meldungen[sprache]["telefon"]);
	document.InfoFormular.Telefon.focus();
	return false;
}
if (document.InfoFormular.Email.value == ""){
	alert(meldungen[sprache]["email"]);
	document.InfoFormular.Email.focus();
	return false;
}
if (document.InfoFormular.sec_item.value.toUpperCase() != "OK"){
	alert(meldungen[sprache]["sec_item_flaw"]);
	document.InfoFormular.sec_item.focus();
	return false;
}

}// end function 'check_kontakt_formular'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion um Elemente ein- bzw. auszublenden. Meist in Verbindung mit dem Drüberfahren der
// Maus über ein Bild oder ähnliches.

function element_anzeigen(id, modus){

    if(modus == "an"){
    	document.getElementById(id).style.visibility = "visible";
    }else{
    	document.getElementById(id).style.visibility = "hidden";
    }

}// end function 'element_anzeigen'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion um das Fenster mit den vergrößerten Bildern auf den Produktseiten aufzumachen

function fensterOeffnen(adresse){
    
    // Bildschirmdimensionen holen
    hoehe = screen.height;
    breite = screen.width;
    
    // linke, obere Ecke des neuen Fensters berechnen, welches mittig aufgehen soll
    // dabei die Werte halbieren und die halbe Fenstergröße (637/2 = 318) abziehen
    links = (breite / 2) - 318;
    oben = (hoehe / 2) - 318;
    
    // Öffnen und fokussieren des Fensters
    fenster = window.open(adresse, "Zweitfenster", "width=637,height=637,left=" + links + ",top=" + oben);
    fenster.focus();
    
}// end function 'fensterOeffnen'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion zur Überprüfung der obligatorischen Felder in der Messeantwort auf Eingabe. Die
// Ausgabe der Meldungen in verschiedenen Sprachen wird durch ein Array gesteuert welches am
// Anfang initialisiert wird.

function check_messeantwort(){

// Initialisierung der Meldungen in den versch. Sprachen
meldungen = new Array();

meldungen["de"] = new Array();
meldungen["de"]["name"] = "Bitte geben Sie Ihren Namen ein!";
meldungen["de"]["firma"] = "Bitte geben Sie Ihre Firma an!";
meldungen["de"]["anschrift"] = "Bitte geben Sie Ihre Anschrift ein!";
meldungen["de"]["telefon"] = "Bitte geben Sie Ihre Telefonnummer an!";
meldungen["de"]["email"] = "Bitte geben Sie Ihre Email Adresse ein!";
meldungen["de"]["sec_item_flaw"] = "Bitte geben Sie 'OK' ein!";
meldungen["de"]["terminkontakt_flaw"] = "Bitte geben Sie wenigstens eines der Felder Anschrift, E-Mail oder Telefon ein! Anderenfalls sind wir nicht in der Lage Sie für einen Besuchstermin zu kontaktieren.";

meldungen["en"] = new Array();
meldungen["en"]["name"] = "Please enter your name!";
meldungen["en"]["firma"] = "Please enter your organisation!";
meldungen["en"]["anschrift"] = "Please enter your address!";
meldungen["en"]["telefon"] = "Please enter your phone number!";
meldungen["en"]["email"] = "Please enter your email address!";
meldungen["en"]["sec_item_flaw"] = "Please enter 'OK' as security code!";
meldungen["en"]["terminkontakt_flaw"] = "Please enter at least one of the fields: address, email or phone number! Otherwise we won't be able to contact you for an appointment.";

meldungen["fr"] = new Array();
meldungen["fr"]["name"] = "Veuillez entrer votre nom!";
meldungen["fr"]["firma"] = "Veuillez entrer votre société!";
meldungen["fr"]["anschrift"] = "Veuillez entrer votre adresse!";
meldungen["fr"]["telefon"] = "Veuillez entrer votre numéro de téléphone!";
meldungen["fr"]["email"] = "Veuillez entrer votre adresse e-mail!";
meldungen["fr"]["sec_item_flaw"] = "Veuillez entrer 'OK'!";
meldungen["fr"]["terminkontakt_flaw"] = "Au moins un des champs E-mail, téléphone ou adresse est obligatoire. Autrement nous ne pourrions pas vous contacter pour fixer une date pour une visite.";


// Abfrage der Sprache aus dem versteckten Feld 'sprache' im Formular
// Wenn 'sprache' nicht 'en' oder 'fr' ist wird auf den Default Wert 'de' gesetzt
switch(document.Messeantwort.lang.value){
case "en":
	sprache = "en";
	break;
case "fr":
	sprache = "fr";
	break;
default:
	sprache = "de";
	break;
}


// Abfrage der obligatorischen Felder auf Eingabe
if (document.Messeantwort.Name.value == ""){
	alert(meldungen[sprache]["name"]);
	document.Messeantwort.Name.focus();
	return false;
}
if (document.Messeantwort.Firma.value == ""){
	alert(meldungen[sprache]["firma"]);
	document.Messeantwort.Firma.focus();
	return false;
}
if (document.Messeantwort.sec_item.value.toUpperCase() != "OK"){
	alert(meldungen[sprache]["sec_item_flaw"]);
	document.Messeantwort.sec_item.focus();
	return false;
}

// Wenn eine Terminvereinbarung gewünscht ist muss wenigstens Anschrift, E-Mail oder Telefon
// angegeben sein
if (document.Messeantwort.Terminvereinbarung.checked == true){
    if ((document.Messeantwort.Anschrift.value == "") && (document.Messeantwort.Email.value == "") && (document.Messeantwort.Telefon.value == "")){
       	alert(meldungen[sprache]["terminkontakt_flaw"]);
    	return false;
    }
}

}// end function 'check_messeantwort'


////////////////////////////////////////////////////////////////////////////////////////////


// Das Title-Attribut eines Bildes bewirkt das der Wert des Attributes als Tooltip angezeigt 
// wird, wenn man mit der Maus kurz über dem Bild verweilt. Das wird benutzt um dem PDF-Icon 
// standardmässig eine Erklärung desselben zu hinterlegen. Bei eingeschaltetem JavaScript
// soll aber stattdessen das Erklärungsbild angezeigt werden, welches per onMouseOver()
// direkter angezeigt wird. Damit nicht auch noch das Tooltip angezeigt wird muss dieses per
// JavaScript ausgeschaltet (leerer String) werden.
function clearPdfTitle(){

    window.document.images.pdfIcon.title = "";
  
}// end function 'clearPdfTitle'


////////////////////////////////////////////////////////////////////////////////////////////


// Funktion um Elemente ein- bzw. auszublenden. Meist in Verbindung mit dem Drüberfahren der
// Maus über ein Bild oder ähnliches.

function pdfHinweis_Handler(id, modus){
	
	Ereignis = window.event;

    if(modus == "an"){
	    alert('TEST');
	    document.getElementById(id).style.left = Ereignis.clientX - 70;
	    document.getElementById(id).style.top = 60;
    	document.getElementById(id).style.visibility = "visible";
    }else{
    	document.getElementById(id).style.visibility = "hidden";
    }

}// end function 'element_anzeigen'


////////////////////////////////////////////////////////////////////////////////////////////