//Pelin tilaa osoittavat vakiot ja muuttujat
var otettu = 0;

var pelaaja = 1;
var siirtaa = 2;
var hauva = 3;
var loppui = 4;
var tila = pelaaja;

//globaalit omat objektit
var keksit = []; //new Array()
var Tnappi1, Tnappi2, Tnappi3, Tnappi4;
function alusta(){
    //Alustetaan olioita onLoad-tapahtumassa
    for (i = 1; i <= 21; i++) {
        keksit[i] = getElt("keksi" + i);
        moveEltTo(keksit[i], 0, 0); //Tarpeen, jotta getEltTop yms. toimivat Navigator 6:ssa
    }
    
    Tnappi1 = getElt("nappi1");
    Tnappi2 = getElt("nappi2");
    Tnappi3 = getElt("nappi3");
    Tnappi4 = getElt("nappi4");
}

function aloita(aloittaja){
    for (i = 1; i <= 21; i++) {
        moveEltTo(keksit[i], 0, 0);
    }
    otettu = 0;
    tila = aloittaja;
    if (tila == hauva) {
        //piilota napit
        setEltVisibility(Tnappi1, 'hidden');
        setEltVisibility(Tnappi2, 'hidden');
        setEltVisibility(Tnappi3, 'hidden');
        setEltVisibility(Tnappi4, 'hidden');
        siirra();
    }
    else {
        setEltVisibility(Tnappi1, 'visible');
        setEltVisibility(Tnappi2, 'visible');
        setEltVisibility(Tnappi3, 'visible');
        setEltVisibility(Tnappi4, 'visible');
    }
}

function siirra(){
    //Hauvan vuoro
    var lkm;
    var jaljella = 21 - otettu;
    for (lkm = 1; lkm <= 4; lkm++) {
        if (Math.round((jaljella - 1 - lkm) / 5) == (jaljella - 1 - lkm) / 5) {
            break;
        }
    }
    if (lkm == 5) {
        lkm = Math.floor(Math.random() * Math.min(4, jaljella) + 1);
    }
    for (i = otettu + 1; i <= otettu + lkm; i++) {
        moveEltBy(keksit[i], 0, -2);
    }
    setTimeout(nosta, 10);
    otettu += lkm;
}

function ota(lkm){
    //pelaaja valitsi lkm kappaletta
    if (tila == pelaaja) {
        tila = siirtaa;
        for (i = otettu + 1; i <= otettu + lkm; i++) {
            moveEltBy(keksit[i], 0, 2);
        }
        setTimeout(tiputa, 10);
        otettu += lkm;
        
        //piilota napit
        setEltVisibility(Tnappi1, 'hidden');
        setEltVisibility(Tnappi2, 'hidden');
        setEltVisibility(Tnappi3, 'hidden');
        setEltVisibility(Tnappi4, 'hidden');
    }
}

function tiputa(){
    var tiputettavaa = false;
    for (i = 1; i <= 21; i++) {
        if (getEltTop(keksit[i]) < 48 && getEltTop(keksit[i]) > 0) {
            moveEltBy(keksit[i], 0, 2);
            tiputettavaa = true;
        }
    }
    
    if (tiputettavaa) {
        setTimeout(tiputa, 10);
    }
    else {
        if (otettu == 21) {
            nostakaikki();
        }
        else {
            tila = hauva;
            siirra();
        }
    }
}

function nosta(){
    var nostettavaa = false;
    for (i = 1; i <= 21; i++) {
        if (getEltTop(keksit[i]) > -48 && getEltTop(keksit[i]) < 0) {
            moveEltBy(keksit[i], 0, -2);
            nostettavaa = true;
        }
    }
    if (nostettavaa) {   
        setTimeout(nosta, 10);
    }
    else {
        if (otettu == 21) {
			laskekaikki();
		}
		else {
			//nŠytŠ napit
			var saaottaa = 21 - otettu;
			if (saaottaa >= 1) {
				setEltVisibility(Tnappi1, 'visible');
			}
			if (saaottaa >= 2) {
				setEltVisibility(Tnappi2, 'visible');
			}
			if (saaottaa >= 3) {
				setEltVisibility(Tnappi3, 'visible');
			}
			if (saaottaa >= 4) {
				setEltVisibility(Tnappi4, 'visible');
			}
			tila = pelaaja;
		}
    }
}

function laskekaikki(){
    //Pelaaja voitti, kaikki lasketaan
    var laskettavaa = false;
    for (i = 1; i <= 21; i++) {
		if (getEltTop(keksit[i]) < 48) {
			moveEltBy(keksit[i], 0, 2);
			laskettavaa = true;
		}
	}
    if (laskettavaa) {
		setTimeout(laskekaikki, 10);
	}
	else {
		tila = loppui;
	}
}

function nostakaikki(){
    //Hauva voitti, kaikki nostetaan
    var nostettavaa = false;
    for (i = 1; i <= 21; i++) {
		if (getEltTop(keksit[i]) > -48) {
			moveEltBy(keksit[i], 0, -2);
			nostettavaa = true;
		}
	}
    if (nostettavaa) {
		setTimeout(nostakaikki, 10);
	}
	else {
		tila = loppui;
	}
}

