Array.prototype.contains = function (x){ for(var i = 0; i < this.length; i++) if(this[i] == x) return true; return false; }

var countries = new Array("Afghanistan", "Albanien", "Algeriet", "Amerikanska Samoa", "Andorra", "Angola", "Anguilla", "Antigua och Barbuda", "Argentina",
"Armenien", "Aruba", "USA", "Bangladesh", "Bahrain", "Bahamas", "Azerbajdzjan", "Australien", "Österrike", "Barbados", "Vitryssland", "Belgien", "Belize",
"Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnien Hercegovina", "Botswana", "Brasilien", "Brittiska territoriet i Indiska oceanen", "Brittiska jungfruöarna",
"Brunei", "Bulgarien", "Burkina Faso", "Burma", "Burundi", "Kambodja", "Kamerun", "Kanada", "Kap Verde", "Caymanöarna", "Centralafrikanska republiken",
"Tchad", "Chile", "Kina", "Frankrike", "Colombia", "Komorerna", "Demokratiska republiken Kongo", "Republiken Kongo", "Cooköarna", "Costa Rica",
"Elfenbenskusten", "Kroatien", "Kuba", "Cypern", "Tjeckien", "Danmark", "Djibouti", "Dominica", "Dominikanska republiken", "Östtimor", "Ecuador", "Egypten",
"El Salvador", "Ekvatorialguinea", "Eritrea", "Estland", "Etiopien", "Falklandsöarna", "Färöarna", "Fiji", "Finland", "Franska polynesien", "Gabon",
"Gambia", "Georgien", "Tyskland", "Ghana", "Gibraltar", "Grekland", "Grönland", "Grenada", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti",
"Vatikanstaten", "Honduras", "Hongkong", "Ungern", "Island", "Indien", "Indonesien", "Iran", "Irak", "Irland", "Israel", "Italien", "Jamaica", "Japan",
"Jordanien", "Kazakstan", "Kenya", "Kiribati", "Nordkorea", "Sydkorea", "Kuwait", "Kirgizistan", "Laos", "Lettland", "Libanon", "Lesotho", "Liberia",
"Libyen", "Lichtenstein", "Litauen", "Luxemburg", "Macao", "Makedonien", "Madagaskar", "Malawi", "Malaysia", "Maldiverna", "Mali", "Malta", "Marshallöarna",
"Martinique", "Mauretanien", "Mauritius", "Mexiko", "Mikronesien", "Monaco", "Moldavien", "Mongoliet", "Marocko", "Mozambique", "Namibia", "Nauru", "Nepal",
"Nederländerna", "Nya Zeeland", "Nicaragua", "Niger", "Nigeria", "Norge", "Oman", "Pakistan", "Palau", "Panama", "Papua Nya Guinea", "Paraguay",
"Peru", "Filippinerna", "Polen", "Portugal", "Puerto Rico", "Qatar", "Rumänien", "Ryssland", "Rwanda", "Saint Christopher och Nevis", "St. Lucia", "Samoa",
"San Marino", "São Tomé och Príncipe", "Saudiarabien", "Senegal", "Serbien och Montenegro", "Seychellerna", "Sierra Leone", "Singapore", "Slovakien",
"Slovenien", "Salomonöarna", "Somalia", "Sydafrika", "Spanien", "Sri Lanka", "Sudan", "Surinam", "Swaziland", "Sverige", "Schweiz", "Syrien", "Tadzjikistan",
"Tanzania", "Thailand", "Togo", "Tonga", "Trinidad och Tobago", "Tunisien", "Turkiet", "Turkmenistan", "Tuvalu", "Uganda", "Ukraina",
"Förenade Arabemiraten", "Storbritannien", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Jungfruöarna", "Yemen", "Zambia", "Zimbabwe", "Taiwan");

var flag = null;

var score = 0;
var flagsleft = 20;

function irand(n)
{
    return Math.floor(Math.random() * n)
}

function Flag(n)
{
    var tmp;
    var order = new Array(-1, -1, -1, -1, -1);
    for(var i = 0; i < 5; i++)
    {
        do tmp = irand(5); while(order.contains(tmp));
        order[i] = tmp;
    }

    this.flag = "flaggor/" + (1 + n) + ".gif";
    this.answer = order[0];

    this.alternatives = new Array("", "", "", "", "");
    this.alternatives[order[0]] = countries[n];

    do tmp = countries[irand(countries.length)]; while(this.alternatives.contains(tmp));
    this.alternatives[order[1]] = tmp;

    do tmp = countries[irand(countries.length)]; while(this.alternatives.contains(tmp));
    this.alternatives[order[2]] = tmp;

    do tmp = countries[irand(countries.length)]; while(this.alternatives.contains(tmp));
    this.alternatives[order[3]] = tmp;

    do tmp = countries[irand(countries.length)]; while(this.alternatives.contains(tmp));
    this.alternatives[order[4]] = tmp;
}

function getRandomFlag()
{
    return new Flag(irand(countries.length));
}

function setNextFlag()
{
    flag = getRandomFlag();
    document.getElementById("flag").src = flag.flag;

    document.getElementById("alt1").value = flag.alternatives[0];
    document.getElementById("alt2").value = flag.alternatives[1];
    document.getElementById("alt3").value = flag.alternatives[2];
    document.getElementById("alt4").value = flag.alternatives[3];
    document.getElementById("alt5").value = flag.alternatives[4];
}

function answer(n)
{
    if(flag == null)
        return;

    flagsleft--;
    if(flag.answer == n)
        score++;

    if(flagsleft > 0)
        setNextFlag();
    else
        document.getElementById("alternatives").style.display = "none";

    update();
}

function update()
{
    document.getElementById("score").firstChild.nodeValue = score;
    document.getElementById("outof").firstChild.nodeValue = 20 - flagsleft;
    document.getElementById("flagsleft").firstChild.nodeValue = flagsleft;
}

function initialise()
{
    flag = null;
    score = 0;
    flagsleft = 20;
    update();
    document.getElementById("alternatives").style.display = "block";
    setNextFlag();
}
