"use strict";

var timer;
var numQuestions   = 0;
var qNumber        = 0;
var resultPageOlet = 'olet.html';
var resultPageEtOle= 'etole.html';

var btns		   = document.getElementById('napit');
var howMany        = 10;	// How many questions to ask
var gluedQuestions; 		// First n questions are always included
var qDiv;


var btnYes		   = document.getElementById('btnYes');
var btnNo		   = document.getElementById('btnNo');

var itemList = [];		// Questions to ask in this list
var points = 0;


var questions = [                                                  
  /*1*/  { 'q':"Onko sinulla Suomen kansalaisuus?",                    'a':"yes", 'points':1 }, 
  /*2*/  { 'q':"Pidätkö itseäsi suomalaisena?",                        'a':"yes", 'points':1 }, 
  /*3*/  { 'q':"Juotko kahvia?",                                       'a':"",    'points':0 },
  /*4*/  { 'q':"Omistatko muumimukin?",                                'a':"",    'points':0 }, 
  /*5*/  { 'q':"Kieltäydytkö tarjotusta etelänmatkasta?",              'a':"",    'points':0 }, 
  /*6*/  { 'q':"Oletko käynyt Lapissa?",                               'a':"",    'points':0 }, 
  /*7*/  { 'q':"Onko kersantti Rokka roolimallisi?",                   'a':"",    'points':0 }, 
  /*8*/  { 'q':"Tiedätkö Kalevalan?",                                  'a':"",    'points':0 }, 
  /*9*/  { 'q':"Käännätkö kanavaa, jos tulee Sibeliusta?",             'a':"",    'points':0 }, 
  /*10*/ { 'q':"Käännätkö kanavaa, jos tulee Uuno Turhapuroa?",        'a':"",    'points':0 }, 
  /*11*/ { 'q':"Nautitko hiljaisuudesta",                              'a':"",    'points':0 }, 
  /*12*/ { 'q':"Onko sinulla sisua?",                                  'a':"",    'points':0 }, 
  /*13*/ { 'q':"Onko sinulla kantele?",                                'a':"",    'points':0 }, 
  /*14*/ { 'q':"Oletko pelannut Afrikan tähteä?",                      'a':"",    'points':0 }, 
  /*15*/ { 'q':"Oletko nukkunut hetekalla?",                           'a':"",    'points':0 }, 
  /*16*/ { 'q':"Oletko käynyt lavatansseissa?",                        'a':"",    'points':0 }, 
  /*18*/ { 'q':"Syötkö mämmiä?",                                       'a':"",    'points':0 },
  /*19*/ { 'q':"Syötkö sieniä?",                                       'a':"",    'points':0 },
  /*20*/ { 'q':"Saunotko viikoittain?",                                'a':"",    'points':0 }, 
  /*21*/ { 'q':"Äänestätkö kaikissa vaaleissa?",                       'a':"",    'points':0 }, 
  /*23*/ { 'q':"Uskotko suomalaiseen joulupukkiin?",                   'a':"",    'points':0 },
  /*24*/ { 'q':"Käytkö kansalaisopiston kurssilla?",                   'a':"",    'points':0 },
  /*25*/ { 'q':"Laulatko kuorossa?",                                   'a':"",    'points':0 },
  /*26*/ { 'q':"Onko sinulla kaapissa Iittalaa?",                      'a':"",    'points':0 },
  /*27*/ { 'q':"Omistatko tuulipuvun?",                                'a':"",    'points':0 },
  /*28*/ { 'q':"Pidätkö hiihtämisestä?",                               'a':"",    'points':0 },
  /*29*/ { 'q':"Oletko osallistunut hiihtokilpailuun?",                'a':"",    'points':0 },
  /*30*/ { 'q':"Käytkö kirjastossa?",                                  'a':"",    'points':0 },
  /*31*/ { 'q':"Oletko penkkiurheilija?",                              'a':"",    'points':0 },
  /*32*/ { 'q':"Tiedätkö kuka on hallitseva jääkiekon suomenmestari?", 'a':"",    'points':0 }
];

window.onload = function() { 

	qDiv    	 = document.getElementById('kysymys');
	btns		 = document.getElementById('napit');

	btnYes		 = document.getElementById('btnYes');
	btnNo		 = document.getElementById('btnNo');


    btnYes.onclick = function() { 
            bCLicked('yes');  
    };

    btnNo.onclick = function() { 
            bCLicked('no'); 
    };

	setRandomnes();
    letsStart();
}


function letsStart() { 

    numQuestions = questions.length - 3;	// Three first questions always in
    qNumber      = 0;
    points       = 0;
    
    askQuestion(itemList[qNumber]);
}

function setRandomnes() {
	var numQ           = questions.length;
	
	itemList = [0,1];		// Glued questions
	
    gluedQuestions = itemList.length;
    
	while (itemList.length < howMany) {
		var n = gluedQuestions + Math.floor(Math.random() * (numQ - gluedQuestions));
		while (itemList.indexOf(n) >= 0)
			n = gluedQuestions + Math.floor(Math.random() * (numQ - gluedQuestions));
		itemList.push(n);
	}
	
	console.log(itemList);

	// Shuffle
	for (var i = 0; i < howMany; i++) {
		var n1 = Math.floor(Math.random() * howMany);  
		var n2 = Math.floor(Math.random() * howMany);
		
		var x = itemList[n1];
		itemList[n1] = itemList[n2];
		itemList[n2] = x;
	}
	
	console.log(itemList);
}

function dbgPrint(txt) {
    console.log(txt);
}

function askQuestion(num) {
    showText(questions[num]['q']);
}

function showText(teksti) {
    var newDiv=document.createElement('div');
    newDiv.id = 'kysymys';
    newDiv.class = 'normal';
    
    var txt=document.createTextNode(teksti);
    newDiv.appendChild(txt);
    
    qDiv = document.getElementById('kysymys');
    qDiv.parentNode.replaceChild(newDiv, qDiv);
}

function showReadyPicture() {
    var newDiv=document.createElement('div');
    newDiv.id = 'kuva';
    
    var img=document.createElement('img');
    img.setAttribute('src', 'kyselyvalmis.jpg');
    newDiv.appendChild(img);
    
    qDiv = document.getElementById('kuva');
    qDiv.parentNode.replaceChild(newDiv, qDiv);
}


function bCLicked(you) {
	var rightAnswer = questions[itemList[qNumber]].a;
    //dbgPrint("Oikea vastaus:"+rightAnswer + ", vastasit:" + you);
    
    if (you.toUpperCase() == rightAnswer.toUpperCase()) {
        points += questions[itemList[qNumber]].points;
        //dbgPrint("Oikein");
    }
    else {
        //dbgPrint("Väärin");
    }

    qNumber++;
    
    if ( qNumber >= howMany) {                      // all questions asked
        // show result
        dbgPrint('Tulos: ' + points);
        document.getElementById('napit').style.display = 'none';
        showReadyPicture();
        showText('Kysely valmis, odota hetki...');
        
        //timer = setTimeout('jatka()', 3000);            // show result after a short delay
        timer = setTimeout(function() {
            jatka();
        }, 3000);
    } else {
        // next question
        askQuestion(itemList[qNumber]);
    }
}


function jatka() {
	
	if (points >= 1)
        window.location.href = resultPageOlet;
    else
        window.location.href = resultPageEtOle;
}