  /*Euro Umrechnung mit div.Waehrunen*/

function setup()
{
}

var        waehrungen =
[
        {name:"EUR", faktor:1},
        {name:"BEF", faktor:40.3399},
        {name:"DEM", faktor:1.95583},
        {name:"ESP", faktor:166.386},
        {name:"FRF", faktor:6.55957},
        {name:"IEP", faktor:.787564},
        {name:"ITL", faktor:1936.27},
        {name:"LUF", faktor:40.3399},
        {name:"NLG", faktor:2.20371},
        {name:"ATS", faktor:13.7603},
        {name:"PTE", faktor:200.482},
        {name:"FIM", faktor:5.94573},
	{name:"GRD", faktor:340.750}
]
var        fehlerstatus        = false
var        fehlerstatus_runden        = false

// Initialisierung der Eingabefelder
function setup()
{
        var        i

        for(i = 0; i < waehrungen.length; i++)
                document.Umrechnung[waehrungen[i].name].value        = waehrungen[i].faktor
}

// Verarbeitung bei Werteingabe
function change(wert)
{
        if(isNaN(wert.value))
        {
                alert("Bitte nur Zahlen angeben! Zahlen bitte mit Dezimalpunkt deklarieren! Danke.")
                fehlerstatus        = true
                return
        }

        fehlerstatus        = false
        var        i
        for(i = 0; i < document.Umrechnung.Changed.length; i++)
                if(document.Umrechnung.Changed[i].value == wert.name)
                {
                        document.Umrechnung.Changed[i].checked        = true
                        return
                }
}

// Ueberpruefung der Stellenanzahl zum Runden
function pruefen()
{
        if(isNaN(document.Umrechnung.Wert.value))
        {
                alert("Bitte nur Zahlen angeben! Danke.")
                fehlerstatus_runden        = true
                return
        }
        document.Umrechnung.Wert.value        = Math.round(document.Umrechnung.Wert.value)
        fehlerstatus_runden        = false
}

// Rundung aller Werte
function runden()
{
        if(fehlerstatus)
        {
                alert("Bitte Angaben vervollst&auml;ndigen! Zahlen bitte mit Dezimalpunkt deklarieren! Danke.")
                return
        }
        if(fehlerstatus_runden)
        {
                alert("Bitte Angaben f&uuml;r Rundung vervollst&auml;ndigen! Danke.")
                return
        }

        var        p        = Math.pow(10, document.Umrechnung.Wert.value)
        var        i
        for(i = 0; i < document.Umrechnung.Changed.length; i++)
                document.Umrechnung[document.Umrechnung.Changed[i].value].value        = Math.round(p * document.Umrechnung[document.Umrechnung.Changed[i].value].value) / p
}

// Ermittlung der aktuell gewaehlten Basiswaehrung
function aktuell()
{
        var        i
        for(i = 0; i < document.Umrechnung.Changed.length; i++)
                if(document.Umrechnung.Changed[i].checked)
                        return document.Umrechnung.Changed[i].value

        return null
}

// Ermittlung des Werts der aktuell gewaehlten Basiswaehrung
function wert()
{
        var        i
        for(i = 0; i < document.Umrechnung.Changed.length; i++)
                if(document.Umrechnung.Changed[i].checked)
                        return document.Umrechnung[document.Umrechnung.Changed[i].value].value

        return null
}

// Ermittlung des Umrechnungsfaktor zu einer gegebenen Waehrung
function faktor(name)
{
        var        i
        for(i = 0; i < waehrungen.length; i++)
                if(waehrungen[i].name == name)
                        return waehrungen[i].faktor

        return null
}

// Berechnung der Werte
function berechnen()
{
        if(fehlerstatus)
        {
                alert("Bitte Angaben vervollst&auml;ndigen! Zahlen bitte mit Dezimalpunkt deklarieren! Danke.")
                return
        }

        // Aktuell gewaehlte Waehrung
        var        akt        = aktuell()
        if(!akt)
        {
                alert("Es ist leider ein Fehler unterlaufen.")
                return
        }

        // Umrechnung auf Euro
        var        euro        = wert() / faktor(akt)

        // Umrechnung der Werte inklusive Rundung
        var        i
        var        p        = Math.pow(10, 10)
        for(i = 0; i < document.Umrechnung.Changed.length; i++)
        {
                if(document.Umrechnung.Changed[i].value == akt)
                        continue
                document.Umrechnung[document.Umrechnung.Changed[i].value].value = Math.round(p * euro * faktor(document.Umrechnung.Changed[i].value)) / p
        }
}

