// JavaScript Document

// Nur fuer moderne Browser
// da alles ueber getElementById() angesprochen wird.

/*  Design Thomas Eichinger */
/*  Programmierung Stefan Huber */


/* 
   auswahlZweiWerte
   Tauscht 2 Bilder und setzt bei 2 Formular Objekten neue Werte (benoetigt bei den Userdaten auf der Welcome seite)
   parameter1: bildPfadEins = pfad des ersten neuen Bildes
   parameter2: meinBildEins = ID des esrten auszutauschenden Bildes 
   parameter3: idFormObjectEins = die ID des esrten anzusprechenden Formular Objects
   parameter4: wertEins = der erste zu setzende Wert 
   parameter5: bildPfadZwei = pfad des zweiten neuen Bildes
   parameter6: meinBildZwei = ID des zweiten auszutauschenden Bildes 
*/
function auswahlZweiWerte(bildPfadEins, meinBildEins, idFormObjectEins, wertEins, 
						  bildPfadZwei, meinBildZwei)
{
    bildaustausch(bildPfadEins, meinBildEins);
    wertSetzenFormularObject(idFormObjectEins, wertEins);
    bildaustausch(bildPfadZwei, meinBildZwei);
} // ende der function auswahlZweiWerte

/*
   bildaustausch
   Funtion zum austauschen eines Bildes
   parameter1: bildPfad = pfad des neuen Bildes
   parameter2: meinBild = ID des auszutauschenden Bildes
*/
function bildaustausch(bildPfad, meinBild)
{
    document.getElementById(meinBild).src = bildPfad;
} // ende der function bildaustausch

/*
   wertSetzenFormularObject
   Funtion zum aendern eines Werts bei einem Formular Object
   parameter1: idFormObject = die ID des anzusprechenden Formular Objects
   parameter2: wert = der zu setzende Wert 
*/
function wertSetzenFormularObject(idFormularObject, wert)
{
    document.getElementById(idFormularObject).value = wert;
} // ende der function wertSetzenFormularObject

/*
   timeout
   bestimmt, was nach ablauf des Countdown geschieht.
*/
function timeout()
{
	document.getElementById('form1').submit(); // Formular wird gesendet
} // ende der function timeout

/*
    jahresWahl
	Tauscht Bilder Aus und setzt den Wert der Formularfelder neu, wen eine Jahreszahl ausgewahlt wird.
	parameter1: auswahl Eine Nummer, die angibt welches Jahr gewaehlt wurde
*/
function jahresWahl(auswahl)
{
	var jahr=new Array('0','1910','1920','1930','1940','1950','1960','1970','1980','1990','2000');
	var austauschBild='images/kreuz.jpg';
	var Bild=new Array(11);
	Bild[0]='images/keinkreuz.jpg';
	
	for (var i = 1; i < 11; i++)
	{
		if(i==auswahl)
		{
	        Bild[i]=austauschBild; // das kreuz wird an der gewaehlten stelle gesetzt
            wertSetzenFormularObject('jahr', jahr[i]); // das Jahr wird gespeichert
		}
		else
		{
	        Bild[i]=Bild[0]; // ueberall sonst wird das Kreuz geloescht
		}
        bildaustausch(Bild[i], 'B'+jahr[i]);
	}

}// ende der function jahresWahl

/*
   Auswertungstabelle
   bestimmt, was pasiert, wenn man auf einen der links in der Auswertungstabelle klickt.
   parameter1: zeile: gibt an welche Zeile angecklickt wurde
   parameter2: uebergabeJahr: das zu markierende Jahrzehnt
   parameter3: anzahlGruppen: gibt die anzahl der Gruppen an, und somit die Anzahl der Zeilen
   parameter4: derBildPfad: wo ist das bild zu finden, welches eingeblendet werden soll
   parameter5: dasGenaueJahr: gibt das genaue Jahr an, welches unter dem Bild ausgegeben wird
   parameter6: NameDesDesigners: gibt den Name des Designers an, welcher unter dem Bild ausgegeben wird
   parameter7: dieQuelle: die einzublendenden Quellen Angaben
*/
function Auswertungstabelle(zeile, uebergabeJahr, anzahlGruppen, derBildPfad, dasGenaueJahr, NameDesDesigners, dieQuelle)
{
	var jahr=new Array('0','1910','1920','1930','1940','1950','1960','1970','1980','1990','2000');
	//schleife fuer die Spalten
    for (var i = 1; i < 11; i++)
	{
		if(jahr[i]==uebergabeJahr) //faerbt die richtige spalte Magenta
		{
	        document.getElementById(jahr[i]).className = 'Tabelle-mageta';
	        document.getElementById('kopf'+jahr[i]).className = 'tabellenbeschriftung-weiss';
		}
		else //faerbt alle anderen Spalten Weiss
		{
	        document.getElementById(jahr[i]).className = 'Tabelle-weiss';
	        document.getElementById('kopf'+jahr[i]).className = 'tabellenbeschriftung';
		}
	}
    //schleife fuer die Zeilen
    for (var j = 1; j <= anzahlGruppen; j++)
	{
		if(j==zeile) //faerbt die gewaehlt Zeile Magenta
		{
	        document.getElementById('zeile'+j).className = 'Tabelle-mageta';
	        document.getElementById('link'+j).className = 'tabellenbeschriftung-weiss';
		}
		else //faerbt alle anderen Zeilen Weiss
		{
	        document.getElementById('zeile'+j).className = 'Tabelle-weiss';
	        document.getElementById('link'+j).className = 'tabellenbeschriftung';
		}
	}
	//tauscht das bild und die dazugehoerigen Infos aus
	document.getElementById('Austauschbild').src = 'bilderfuerumfrage/'+derBildPfad;
	document.getElementById('jahrdesigner').innerHTML = dasGenaueJahr+', '+NameDesDesigners+'&nbsp;&nbsp;';
	document.getElementById('source').innerHTML = 'source: '+dieQuelle+'&nbsp;';
} // ende der function Auswertungstabelle

/*
    validate_FormFeld
	Ueberprueft ein Formularfeld, ob es richtig ausgefuellt wurde
	parameter1: feld: die ID des zu pruefenden Feldes
	parameter2: fehlerwert: der werdt, den das Feld nicht haben darf. Z.B. der voreingestellte standard Wert, welcher vom User ueberschriben werden sollte
	parameter3: fehlermeldung: die auszugebende fehlermeldung, fals es falsch ausgefuellt ist
	return: True, fals richtig ausgefuellt False wenn nicht
*/
function validate_FormFeld(feld, fehlerwert, fehlermeldung) 
{
	var temp=false;
    if ((document.getElementById(feld).value==fehlerwert) || (document.getElementById(feld).value=='')) 
    {
	   alert(fehlermeldung);
    } 
    else 
    {
       temp=true;
    }
	return temp;
} // ende der function validate_FormFeld


/*
    validate_email
	Ueberprueft ein Formularfeld, ob eine gueltige Email adresse eingegeben ist. (ueberpruefung, ueber regulare ausdruecke)
	parameter1: feld: die ID des zu pruefenden Feldes
	parameter2: fehlerwert: der werdt, den das Feld nicht haben darf. Z.B. der voreingestellte standard Wert, welcher vom User ueberschriben werden sollte
	parameter3: fehlermeldung: die auszugebende fehlermeldung, fals es falsch ausgefuellt ist
	return: True, fals richtig ausgefuellt False wenn nicht
*/
function validate_email(feld, fehlerwert, fehlermeldung) 
{
	var temp=false;
    var email=document.getElementById(feld).value;
	var emailAdressenFormat=/^(.+)@(.+).(..+)$/; // wie sieht eine Email adresse aus: xxx@xxx.xx 
	var sonderzeichen=/>|<|,|;|:|\*|\\|\/|\(|\)/; // zeichen die nicht enthalten sein sollen.
	var doppeltesAt=/(.*)@(.*)@(.*)/; // kein doppeltes @.
	if (emailAdressenFormat.test(email) && !sonderzeichen.test(email) && !doppeltesAt.test(email) && email!=fehlerwert)
    {
	    var temp=true;
    }
	else
	{
	   alert(fehlermeldung);
	}
	return temp;
} // ende der function validate_email


/*
    validate_Formular
	Ueberprueft das Formular mit den Userdaten, ob es richtig ausgefuellt ist.
*/
function validate_Formular() 
{
	if(validate_FormFeld('mf', 'Z', 'please press m or f for male or female'))
	{
	    if(validate_FormFeld('alter', 'XX', 'please insert, your age'))
	    {
		    if(validate_FormFeld('town', 'your town', 'please insert, your town'))
			{
				if(validate_FormFeld('country', 'your country', 'please insert, your country'))
			    {
					if(validate_FormFeld('profi', 'Z', 'please mark if jou are a professional designer or not'))
					{
						document.getElementById('form1').submit();
					}
				}
			}
	    }
	}
} // ende der function validate_Formular