function parsevin(vincoderaw) {

        // Umwandeln in Grossschrift 

        var vincode=vincoderaw.toUpperCase(vincoderaw);


        // Leerzeichen entfernen

        while (vincode.indexOf(" ") != "-1") {

                vincode = vincode.replace(' ', '');

        }

        // Separatoren entfernen

        while (vincode.indexOf("-") != "-1") {

                vincode = vincode.replace('-', '');

        }


        // FIN zurueckschreiben
        window.document.forms.vincheck.vin.value=vincode;

        // laenge pruefen (17 Zeichen)

        if (vincode.length == 17) {

                clearAll();                 // Eingaben loeschen falls was altes drinne stand
                post1980(vincode);

        } else if (vincode.length == 9 | vincode.length == 10) {
        // FINs 1965-1975 mit 9  bzw 10 Stellen

                clearAll();
                vw6574(vincode);

        } else if(vincode.length >= 17) {        // Funktioniert nicht wenn das HTML FORM leer ist
                clearAll();
                window.document.forms.vincheck.summary.value= "FIN ungültig: Zu lang, wie hast das denn geschafft ? :D)";

        } else {       
                clearAll();
                window.document.forms.vincheck.summary.value= "FIN ungültig:";
        }






function clearAll() {

        window.document.forms.vincheck.region.value="";
        window.document.forms.vincheck.regioncode.value="";

        window.document.forms.vincheck.manufacturer.value="";
        window.document.forms.vincheck.mfrcode.value="";

        window.document.forms.vincheck.cartype.value=""
        window.document.forms.vincheck.cartypecode.value="";

        window.document.forms.vincheck.bodystyle.value="";
        window.document.forms.vincheck.bodycode.value="";

        window.document.forms.vincheck.engine.value="";
        window.document.forms.vincheck.enginecode.value="";

        window.document.forms.vincheck.restraint.value="";
        window.document.forms.vincheck.restraintcode.value="";

        window.document.forms.vincheck.model.value="";
        window.document.forms.vincheck.modelcode.value="";

        window.document.forms.vincheck.year.value="";
        window.document.forms.vincheck.yearcode.value="";

        window.document.forms.vincheck.plant.value="";
        window.document.forms.vincheck.plantcode.value="";

        window.document.forms.vincheck.serial.value="";

        }


function vw6574(vincode) {

// 1965er zerlegen


                // 1965-69

        var yeardata65 = new Array()
                yeardata65["5"]="1965";
                yeardata65["6"]="1966";
                yeardata65["7"]="1967";
                yeardata65["8"]="1968";
                yeardata65["9"]="1969";

// 1970 muessen wir extra behandeln

        var yeardata70 = new Array()
                yeardata70["0"]="1970";
                yeardata70["1"]="1971";
                yeardata70["2"]="1972";
                yeardata70["3"]="1973";
                yeardata70["4"]="1974";
                yeardata70["5"]="1975";
                yeardata70["6"]="1976";
                yeardata70["7"]="1977";
                yeardata70["8"]="1978";
                yeardata70["9"]="1979 (Ghia = 1969)";
                yeardata70["A"]="1980";

        var modeldata = new Array ()
                modeldata["11"]="Käfer";
                modeldata["13"]="Käfer 1303";
                modeldata["15"]="Golf 1 Cabrio";
                modeldata["17"]="Golf 1 Limo";
                modeldata["53"]="Scirocco";


        var bodystyledata = new Array ()
                bodystyledata["11"]="Flache Windschutzscheibe";
                bodystyledata["13"]="Panorama Windschutzscheibe";



        var model = vincode.substring(0,2);
        var modelout = modeldata[model];
        var modelcodeout=model;
        var serial = vincode.substring(4,11);

        // Baujahr und FIN laenge bestimmen

        if (vincode.length == 9) {

                var year = vincode.substring(2,3);
                var yearout=yeardata65[year];
                var serial = vincode.substring(3,10);


        } else if (vincode.length == 10) {

                if (vincode.substring(3,4) == 1) {

                        // Vor 1970 (4. Stelle ist eine '1')

                        var year = vincode.substring(2,3);
                        var yearout=yeardata65[year];

                } else {

                        // 1970 oder spaeter (4. Stelle ist eine 2 oder 3)

                        var year = vincode.substring(2,3);
                        var yearout=yeardata70[year];

                }



        }

        //        Ergebnis schreiben

        window.document.forms.vincheck.manufacturer.value="Volkswagen";
        window.document.forms.vincheck.year.value=yearout;
        window.document.forms.vincheck.yearcode.value=year;
        window.document.forms.vincheck.model.value=modelout;
        window.document.forms.vincheck.modelcode.value=modelcodeout;
        window.document.forms.vincheck.serial.value=serial;

        //     Zusammenfassung schreiben

        window.document.forms.vincheck.summary.value="Jahr: " + yearout +
                "\rModell: " + modelout +
                "\rFortlaufende Nr.: " + serial


        }




function post1980(vincode) {        //         1980er FINs

        //         1980er Daten Ausgeben


        var mfrdata = new Array ()        

                mfrdata["A"]="Audi";
                mfrdata["B"]="VW Brazil";
                mfrdata["F"]="Ford";
                mfrdata["V"]="Volkswagen";



        var regiondata = new Array ()        

                regiondata["A"]="Afrika";
                regiondata["B"]="Afrika";
                regiondata["C"]="Afrika";
                regiondata["D"]="Afrika";
                regiondata["E"]="Afrika";
                regiondata["F"]="Afrika";
                regiondata["G"]="Afrika";
                regiondata["H"]="Afrika";

                regiondata["J"]="Asien";
                regiondata["K"]="Asien";
                regiondata["L"]="Asien";
                regiondata["M"]="Asien";
                regiondata["N"]="Asien";
                regiondata["P"]="Asien";
                regiondata["R"]="Asien";

                regiondata["S"]="Europa";
                regiondata["T"]="Europa";
                regiondata["U"]="Europa";
                regiondata["V"]="Europa";
                regiondata["W"]="Europa";
                regiondata["X"]="Europa";
                regiondata["Y"]="Europa";
                regiondata["Z"]="Europa";

                regiondata["1"]="Nord Amerika";
                regiondata["2"]="Nord Amerika";
                regiondata["3"]="Nord Amerika";
                regiondata["4"]="Nord Amerika";
                regiondata["5"]="Nord Amerika";

                regiondata["6"]="keine Ahnung";
                regiondata["7"]="keine Ahnung";

                regiondata["8"]="Süd Amerika";
                regiondata["9"]="Süd Amerika";
                regiondata["0"]="Süd Amerika";


        var cartypedata = new Array ()  

                cartypedata["W"]="PKW (VW)";
                cartypedata["1"]="Pickup/Transporter";
                cartypedata["U"]="PKW (Audi)";
                cartypedata["2"]="MPV";
                cartypedata["Z"]="Füllzeichen (ohne Bedeutung)";

                //        Ende der Daten        //




        var bodystyledata = new Array ()        

                bodystyledata["A"]="2 Türer";
                bodystyledata["B"]="2 Türer (Economy/custom)";
                bodystyledata["C"]="Cabrio";
                bodystyledata["D"]="GTi, Carat/Sport/Passat-Synchro GLS";
                bodystyledata["E"]="Cabrio Etienne Aigner";
                bodystyledata["F"]="4 Türer";
                bodystyledata["G"]="4 Türer (deluxe/custom/wagon GL)";
                bodystyledata["H"]="2 Türer GTi 16V/4";
                bodystyledata["K"]="2 Türer GL Ausstattung";
                bodystyledata["P"]="4 Türer";
                bodystyledata["R"]="4 Türer GL/Carat/Economy";
                bodystyledata["T"]="4 Türer GLI/GLX";
                bodystyledata["U"]="Van/Transporter/Pickup";
                bodystyledata["V"]="3 Türer DoKa";
                bodystyledata["W"]="3 Türer Bus";
                bodystyledata["X"]="1983-88 Kombi";
                bodystyledata["Y"]="1983-92 3 Türer Bus";
                bodystyledata["Z"]="Füllzeichen (ohne Bedeutung)";

                //        End Body Style Data        //



        var enginedata = new Array ()        //        Again, varies by model. Need huge amounts of data to nail these down.

                enginedata["A"]="JH, EN, Benziner";
                enginedata["B"]="Benziner";
                enginedata["C"]="2H 94/98 PS (Cabrio)";
                enginedata["D"]="Benziner";
                enginedata["E"]="GTi Aggregat";
                enginedata["F"]="1.9L TDI";
                enginedata["G"]="Diesel";
                enginedata["H"]="Diesel";
                enginedata["Z"]="Füllzeichen (ohne Bedeutung)";

                //        End Engine Data        //



        var restraintdata = new Array ()        //        Seat belts, etc.

                restraintdata["0"]="Gurtwarner";
                restraintdata["1"]="Passiv";
                restraintdata["2"]="Passiv + Beckengurt";
                restraintdata["4"]="Aktiv (ELRA)";
                restraintdata["5"]="Gurtwarner + Fahrerairbag";
                restraintdata["6"]="Front und Seitenairgabs";
                restraintdata["8"]="Gurtwarner + 2 Airbags";
                restraintdata["9"]="Passiv";
                restraintdata["Z"]="Füllzeichen (ohne Bedeutung)";

                //        End Restraint Data        //



        var yeardata = new Array()        //         Standard year codes. It's going to get messy after 2010

                yeardata["A"]="1980";
                yeardata["B"]="1981";
                yeardata["C"]="1982";
                yeardata["D"]="1983";
                yeardata["E"]="1984";
                yeardata["F"]="1985";
                yeardata["G"]="1986";
                yeardata["H"]="1987";
                yeardata["J"]="1988";
                yeardata["K"]="1989";
                yeardata["L"]="1990";
                yeardata["M"]="1991";
                yeardata["N"]="1992";
                yeardata["P"]="1993";
                yeardata["R"]="1994";
                yeardata["S"]="1995";
                yeardata["T"]="1996";
                yeardata["V"]="1997";
                yeardata["W"]="1998";
                yeardata["X"]="1999";
                yeardata["Y"]="2000";
                yeardata["1"]="2001";
                yeardata["2"]="2002";
                yeardata["3"]="2003";
                yeardata["4"]="2004";
                yeardata["5"]="2005";
                yeardata["6"]="2006";
                yeardata["7"]="2007";
                yeardata["8"]="2008";
                yeardata["9"]="2009";

                //        End year Data        //


        var modeldata = new Array ()        //        VW Model codes //

                modeldata["14"]="Caddy";
                modeldata["15"]="1979-93 Golf 1 Cabrio";
                modeldata["16"]="1983-1988 Jetta";
                modeldata["17"]="Golf 1 Limo";
                modeldata["19"]="Golf 2 ";
                modeldata["1C"]="New Beetle";
                modeldata["1G"]="1989-92 Golf/Jetta";
                modeldata["1H"]="Golf 3 / Vento";
                modeldata["1E"]="1995 Golf Cabrio";
                modeldata["1J"]="Golf 4";
                modeldata["1K"]="Golf 5";
                modeldata["1T"]="Touran";
                modeldata["1Y"]="New Beetle Cabrio";
                modeldata["24"]="Transporter/Pickups/Multivan";
                modeldata["25"]="Transporter/Van";
                modeldata["30"]="1987-93 Fox";
                modeldata["31"]="1990-1995 Passat";
                modeldata["32"]="Passat 2 & 4 türer";
                modeldata["33"]="1985-88 Quattro";
                modeldata["3A"]="1995 Passat";
                modeldata["3B"]="Passat (3B)";
                modeldata["43"]="Audi 5000 und älter";
                modeldata["44"]="Audi 5000/100/200/V8 (D11)";
                modeldata["4A"]="Audi S4/100CS/V8 (D11)";
                modeldata["4B"]="Audi A6";
                modeldata["50"]="1990-95 Corrado";
                modeldata["53"]="Scirocco";
                modeldata["60"]="1994-95 Corrado";
                modeldata["6N"]="Polo 4 (6N)";
                modeldata["6N0"]="Polo 4 (9N)";
                modeldata["6N2"]="Polo 5 (6N2)";
                modeldata["6E"]="Lupo GTI";
                modeldata["6Q"]="Polo 6";
                modeldata["6X"]="Lupo";
                modeldata["70"]="Eurovan";
                modeldata["78"]="Passat";
                modeldata["80"]="Polo (1986->)";
                modeldata["81"]="Audi 4000";
                modeldata["83"]="Audi 4000";
                modeldata["85"]="Audi Coupe GT";
                modeldata["86"]="Polo, Derby/Polo (->1986)";
                modeldata["867"]="Polo 3 (86C 2F)";
                modeldata["87"]="Polo, Polo coupe (->1986)";
                modeldata["89"]="Audi 90";
                modeldata["8A"]="Audi 90";
                modeldata["8B"]="Audi Coupe";
                modeldata["9M"]="Jetta A4";
                modeldata["9N"]="Polo 6";
                modeldata["ZZ"]="Füllzeichen (ohne Bedeutung)";

                //        End Model Data        //


        var plantdata = new Array ()        //         The VW plant where the car was manufactured

                plantdata["A"]="Ingolstadt, Deutschland";
                plantdata["B"]="Brüssel, Belgien";
                plantdata["C"]="Taipeh, Taiwan";
                plantdata["D"]="Bratislava, Slovakei";
                plantdata["E"]="Emden, Deutschland";
                plantdata["G"]="Steyr/Graz, Österreich";
                plantdata["H"]="Hannover, Deutschland";
                plantdata["J"]="Jakarta, Indonesien";
                plantdata["K"]="Karmann, Osnabrück Deutschland";
                plantdata["L"]="Leipzig, Deutschland";
                plantdata["M"]="Puebla, Mexiko";
                plantdata["N"]="Neckarsulm, Deutschland";
                plantdata["P"]="Mosel, Deutschland";
                plantdata["R"]="Martorell, Barcelona, Spanien";
                plantdata["S"]="Stuttgart, Deutschland";
                plantdata["T"]="Kvasiny, Tschechien";
                plantdata["U"]="Uitenhage, Süd Afrika";
                plantdata["V"]="Palmela, Portugal (Westmoreland, USA bis 1988)";
                plantdata["W"]="Wolfsburg, Deutschland";
                plantdata["X"]="Poznan, Polen";
                plantdata["Z"]="Füllzeichen (ohne Bedeutung)";
                plantdata["1"]="Gyor, Ungarn";
                plantdata["2"]="Changchun, China";
                plantdata["4"]="Curitiba, Brasilien";

                //        End Plant Data        //




        // Parse post-1980 codes into sub-components

        var region = vincode.substring(0,1);
        var manufacturer = vincode.substring(1,2);
        var mfrcode = vincode.substring(3,6);
        var cartype = vincode.substring(2,3);
        var bodystyle = vincode.substring(3,4);
        var engine = vincode.substring(4,5);
        var restraint = vincode.substring(5,6);
        var model = vincode.substring(6,8);
        var checksum = vincode.substring(8,9);
        var year = vincode.substring(9,10);
        var plant = vincode.substring(10,11);
        var serial = vincode.substring(11,18);


        // Write results to output


        // Region
        window.document.forms.vincheck.region.value=regiondata[region];
        window.document.forms.vincheck.regioncode.value=region;

        // Manufacturer Name
        window.document.forms.vincheck.manufacturer.value=mfrdata[manufacturer];
        window.document.forms.vincheck.mfrcode.value=manufacturer;

        // Car Type
        window.document.forms.vincheck.cartype.value=cartypedata[cartype];
        window.document.forms.vincheck.cartypecode.value=cartype;

        // Body Style
        window.document.forms.vincheck.bodystyle.value=bodystyledata[bodystyle];
        window.document.forms.vincheck.bodycode.value=bodystyle;

        // Engine
        window.document.forms.vincheck.engine.value=enginedata[engine];
        window.document.forms.vincheck.enginecode.value=engine;

        // Restraint
        window.document.forms.vincheck.restraint.value=restraintdata[restraint];
        window.document.forms.vincheck.restraintcode.value=restraint;

        // Car Model
        window.document.forms.vincheck.model.value=modeldata[model];
        window.document.forms.vincheck.modelcode.value=model;

        // Production year of manufacture
        window.document.forms.vincheck.year.value=yeardata[year];
        window.document.forms.vincheck.yearcode.value=year;

        // Plant of manufacture
        window.document.forms.vincheck.plant.value=plantdata[plant];
        window.document.forms.vincheck.plantcode.value=plant;

        // The Production serial # of this vehicle
        window.document.forms.vincheck.serial.value=serial;


        // A nice summary so the user can copy and paste the results
        window.document.forms.vincheck.summary.value=
        "Geprüfte FIN: " + vincode + "\r\r" +
        "Region: " + regiondata[region] + "  " + "\r" +
        "Hersteller: " + mfrdata[manufacturer] + "  " + "\r" +
        "Typ: " + cartypedata[cartype] + "  " + "\r" +
        "Nur US Modelle: " + bodystyledata[bodystyle] + "  " + "\r" +
        "Nur US Modelle: " + enginedata[engine] + "  " + "\r" +
        "Nur US Modelle: " + restraintdata[restraint] + "  " + "\r" +
        "Modell: " + modeldata[model] + "  " + "\r" +
        "Modelljahr: " + yeardata[year] + "  " + "\r" +
        "Hergestellt: " + plantdata[plant] + "  " + "\r" +
        "Fortlaufende Nr.: " + serial;

        }

}

// Stop hiding -->
