//  yes, i know the Javascript coding style used here is non-optimal, but
//  it works. so there.

    function rand(arr) {
        return arr[Math.floor(Math.random() * arr.length)];
    }


    function name1() {
        var firstname = [ "Fifi","Gigi","Trixie","Jolie","Babette","Angelique","Colette","Amelie","Aimee","Antoinette",
            "Blanche","Caresse","Cherie","Chantal","Clarice","Dominique","Georgette","Vivienne","Yvette" ];
        var lastname  = [ "LeMure","de Ville","DeVil","au Lait","du Bois","diVine","Parfait",
            "d'Arcy","Champagne","ala Mode","Petite","de Vivre","Fatale", "de Milo","Frou-frou","Royale","Flambee",
            "Brassiere"
        ];
        
        return rand(firstname) + ' ' + rand(lastname);
    }
    
    function name2() {
        var firstname = [
            "Ruby","Amethyst","Sapphire","Emerald","Onyx","Topaz","Pearl","Crystal","Amber",
            "Montana","Dakota","Florida","Georgia","Nevada","Carolina","Virginia","Wyoming",
            "Daisy","Violet","Rose","Buttercup","Holly","Magnolia","Pansy",
            "Ginger","Rosemary","Cherry","Pepper","Coco","Sugar","Honey","Cinnamon",
            "Brandy","Tanqueray","Martini",
            "Kitty","Tabby","Rusty","Fluffy",
            "Blaze","Sparkle",
            "Friday","Wednesday","April","May","June","July",
            "Venus","Jezebel"
        ];
        var lastname = [
            "de Light","Sunshine","Passion","Divine","Ecstasy","Fire","Storm","Falls","Spice","Fury",
            "Whispers","Mist","Starlight","Bottom","Wilde","Starr","Supreme","Snow",
            "Dandelion",
            "North","South","West"
        ];
        
        return rand(firstname) + ' ' + rand(lastname);
    }
    
    function name3() {
        var firstname = [
            "Fanny","Candy","Fonda","Lovey","Ophelia","Ida","Iva","Pussy","Merry","Happy",
            "Juicy","Rusty","Dusty"
        ];
        var lastname = [
            "Cox","Bottom","Sitwell","Cummings","Topps","Wank","Peters","Cladwell","O'Toole","Handfull",
            "Biggun","Petting","Plenty"
        ];
        
        return rand(firstname) + ' ' + rand(lastname);
    }
    
    function name4() {
        var firstname = [
            "Annie,Amelia,Anna,Angie",
            "Betty,Bea,Brenda,Brandy",
            "Carrie,Cherry,Candy",
            "Debbie,Daniella,Dina",
            "Edie,Etta,Emma,Eva",
            "Fannie,Frannie,Frida",
            "Gladys,Gigi,Georgette",
            "Harriet,Hannah,Hattie",
            "Ida,Ivy,Imelda",
            "Julie,Jill,Jo,Jennie",
            "Kaitlyn,Karen,Kimmy,Krissy",
            "Louisa,Lydia,Lucy",
            "Marilyn,Minnie,Maggie",
            "Nellie,Nancy,Nina",
            "Ophelia,Olivia,Olive",
            "Pansy,Petunia,Patty",
            "",  // no Q names?
            "Roberta,Ruthie,Rachel,Raquel",
            "Susie,Sabrina,Sammi",
            "Teresa,Tiffany,Taffy,Tina",
            "Una,Uma",
            "Veronica,Velma,Vicki",
            "Wanda,Wilhelmina,Weeza",
            "Xuxa",
            "Yancey,Yolanda",
            "Zelda"
        ];
        var placename = [
            "Anchorage,Arizona,Atlanta,Alabama",
            "Boston,Boise",
            "Chicago,California,Carolina,Colorado",
            "Detroit,Dallas,New Delhi",
            "", // no E places?
            "Florida,San Francisco",
            "Georgia",
            "Hawaii,Hilo,Honolulu",
            "Idaho,Indiana,Iowa",
            "Jersey,Jakarta",
            "Kentucky,Kansas",
            "Louisiana,L.A.",
            "Montana,Memphis,Maryland,Michigan,Massachusetts",
            "Nevada,Natchez",
            "Oklahoma,Omaha,Oregon",
            "Parsippany,Philly,Portland,Pennsylvania",
            "Queensland,Quebec", // no Q places?
            "Rhode Island",
            "Sandusky",
            "Tampa,Texas,Tallahassee",
            "Ulan Bator,Utah",
            "Virginia,Vegas,Vermont",
            "Washington,Walla Walla,Wisconsin",
            "", // no X places?
            "Yonkers",
            "Zaire,Zimbabwe"
        ];
        var num, arr1, arr2;
        
        do {
            num = Math.floor(Math.random() * 26);
        } while (firstname[num] == '' || placename[num] == '');
        
        arr1 = firstname[num].split(',');
        arr2 = placename[num].split(',');
        
        return rand(arr2) + ' ' + rand(arr1);
    }

    function name5() {
        var title = [ "Miss","Lady","Madam","Princess","Duchess","Miss Lady","Madam Chairwoman","Mrs.","Mme.","Queen",
            "Cowgirl","HRH","Li'l","Nurse","Dame","Librarian" ];
        var firstname = [
            "Kitty","Peaches","Starlight","Marmalade","Sparkles","Panties","Tangerine","Ambrosia","Twinkie","Ecstasy",
            "Hypatia","Messalina","Venus","Cairo","Comfort","Jezebel"
        ];
        var lastname = [
            "DuPree","Kiss","Frontier","Fondue","Express","Deluxe","Galore","Mature","Bandersnatch"
        ];
        
        if (Math.random() > 0.5) {
            return rand(title) + ' ' + rand(firstname);
        } else {
            return rand(title) + ' ' + rand(firstname) + ' ' + rand(lastname);
        }
    }



    var lastone = -1;
    function random_name() {
        var rnd;

//      fyi: the logic below is just to prevent the user from
//      seeing two similar names in a row.

        do {
            rnd = Math.floor(Math.random() * 5);
        } while (rnd == lastone);
        
        lastone = rnd;

        
        if (rnd == 0) { return name1(); }
        if (rnd == 1) { return name2(); }
        if (rnd == 2) { return name3(); }
        if (rnd == 3) { return name4(); }
        if (rnd == 4) { return name5(); }
    }

    function do_something() {
        var thingy = document.getElementById('foo');
        thingy.innerHTML = random_name();
    }  
