Number.prototype.money = function(fixed, decimalDelim, breakDelim){
	var n = this, 
	fixed = isNaN(fixed = Math.abs(fixed)) ? 2 : fixed, 
	decimalDelim = decimalDelim == undefined ? "," : decimalDelim, 
	breakDelim = breakDelim == undefined ? "." : breakDelim, 
	negative = n < 0 ? "-" : "", 
	i = parseInt(n = Math.abs(+n || 0).toFixed(fixed)) + "", 
	j = (j = i.length) > 3 ? j % 3 : 0;

	console.log(negative + (j ? i.substring(0, j) +
	breakDelim : "") + i.substring(j).replace(/(\d{3})(?=\d)/g, "$1" + breakDelim) +
	 (fixed ? decimalDelim + Math.abs(n - i).toFixed(fixed).slice(2) : ""));
	return negative + (j ? i.substring(0, j) +
		 breakDelim : "") + i.substring(j).replace(/(\d{3})(?=\d)/g, "$1" + breakDelim) +
		  (fixed ? decimalDelim + Math.abs(n - i).toFixed(fixed).slice(2) : "");
}

startSound = function(id, loop) {
	soundHandle = document.getElementById(id);
	if(loop)
		soundHandle.setAttribute('loop', loop);
	soundHandle.play();
}

var MillionaireModel = function(data) {
	var self = this;

    this.questions = data.questions;
    this.transitioning = false;
 	this.money = new ko.observable(0);
 	this.level = new ko.observable(1);
 	this.usedFifty = new ko.observable(false);
 	this.usedPhone = new ko.observable(false);
 	this.usedAudience = new ko.observable(false);

 	self.getQuestionText = function() {
		window.scrollTo(0, document.body.scrollHeight);
 		return self.questions[self.level() - 1].question;
 	}

 	self.getAnswerText = function(index) {
 		return self.questions[self.level() - 1].content[index];
 	}

 	self.fifty = function(item, event) {
 		if(self.transitioning)
 			return;
 		$(event.target).fadeOut('slow');
 		var correct = this.questions[self.level() - 1].correct;
 		var first = (correct + 1) % 4;
 		var second = (first + 1) % 4;
 		if(first == 0 || second == 0) {
 			$("#answer-one").fadeOut('slow');
 		}
 		if(first == 1 || second == 1) {
 			$("#answer-two").fadeOut('slow');
 		}
 		if(first == 2 || second == 2) {
 			$("#answer-three").fadeOut('slow');
 		}
 		if(first == 3 || second == 3) {
 			$("#answer-four").fadeOut('slow');
 		}
 	}

 	self.fadeOutOption = function(item, event) {
 		if(self.transitioning)
 			return;
 		$(event.target).fadeOut('slow');
 	}

 	self.answerQuestion = function(index, elm) {
 		if(self.transitioning)
 			return;
 		self.transitioning = true;
 		if(self.questions[self.level() - 1].correct == index) {
 			self.rightAnswer(elm);
 		} else {
 			self.wrongAnswer(elm);
 		}
 	}

 	self.rightAnswer = function(elm) {
 		$("#" + elm).slideUp('slow', function() {
 			// startSound('rightsound', false);
 			$("#" + elm).css('background', 'green').slideDown('slow', function() {
 				self.money($(".active").data('amt'));
				console.log(self.level());
 				if(self.level() + 1 > 12) {
	 				$("#game").fadeOut('slow', function() {
	 					$("#game-over").html('Συγχαρητήρια, κερδίσατε!');
	 					$("#game-over").fadeIn('slow');
	 				});
 				} else {
 					self.level(self.level() + 1);
 					$("#" + elm).css('background', 'none');
			 		$("#answer-one").show();
			 		$("#answer-two").show();
			 		$("#answer-three").show();
			 		$("#answer-four").show();
			 		self.transitioning = false;
 				}
 			});
 		});
 	}

 	self.wrongAnswer = function(elm) {
 		$("#" + elm).slideUp('slow', function() {
 			// startSound('wrongsound', false);
 			$("#" + elm).css('background', 'red').slideDown('slow', function() {
 				$("#game").fadeOut('slow', function() {
 					$("#game-over").html('Τέλος παιχνιδιού!');
 					$("#game-over").fadeIn('slow');
 					self.transitioning = false;
 				});
 			});
 		});
 	}

 	self.formatMoney = function() {
	    return self.money().money(2, ',', '.');
	}
};

$(document).ready(function() {

	const jsonData = '{"games":[{"questions":[{"question":"Η δέκατη τέταρτη ραψωδία της Οδύσσειας ξεκινά:","content":["με τον Οδυσσέα στην ακτή της Ιθάκης.","με τον Οδυσσέα και την Αθηνά να τον μεταμορφώνει.","με τη συνάντηση του μεταμορφωμένου Οδυσσέα με τον Εύμαιο.","με τη συνάντηση του μεταμορφωμένου Οδυσσέα πρώτα με τους άλλους βοσκούς."],"correct":2},{"question":"Ο Εύμαιος βλέποντας τον «ζητιάνο»","content":["τον καλοδέχτηκε.","φοβήθηκε.","ζήτησε πληροφορίες για την ταυτότητά του.","αδιαφόρησε."],"correct":0},{"question":"Ο Οδυσσέας μετά τη συνομιλία του με τον χοιροβοσκό","content":["ενημερώθηκε ότι ο Λαέρτης βρίσκεται στο παλάτι.","ενημερώθηκε για το ότι ο Τηλέμαχος βρίσκεται στην Πελοπόννησο και για το ότι οι μνηστήρες του στήνουν ενέδρα.","ενημερώθηκε για το ότι ο Τηλέμαχος μόλις έφτασε στην Ιθάκη και κινδυνεύει.","έμαθε ότι η Πηνελόπη ετοιμάζεται να επιλέξει ποιον μνηστήρα θα παντρευτεί."],"correct":1},{"question":"Ο Οδυσσέας μετά τη συνομιλία του με τον χοιροβοσκό","content":["συνειδητοποίησε ότι ο Εύμαιος υποστηρίζει τους μνηστήρες.","πληροφορήθηκε ότι ο Λαέρτης ετοιμάζεται να επιτεθεί στους μνηστήρες.","αντιλήφθηκε ότι δεν έχει συμμάχους.","συνειδητοποίησε ότι ο Εύμαιος εφόσον μέμφεται τους μνηστήρες είναι αφοσιωμένος."],"correct":3},{"question":"Στην αρχή της συνομιλίας (στ.80-120) Οδυσσέα-Εύμαιου ο Εύμαιος","content":["ζήτησε να μάθει πληροφορίες για την ταυτότητα του «ξένου».","δεν αναφέρεται στο αφεντικό του με το όνομά του.","αναφέρθηκε στο ταξίδι του Τηλέμαχου.","παρότρυνε τον «ξένο» να κοιμηθεί στην καλύβα του."],"correct":1},{"correct":2,"question":"Το γεγονός ότι ο Οδυσσέας ως ξένος ρωτά πληροφορίες για τον εαυτό του και δεν αποκαλύπτει την ταυτότητά του αποτελεί","content":["προοικονομία.","εγκιβωτισμένη αφήγηση.","επική ειρωνεία.","τεχνική των άστοχων ερωτημάτων."]},{"correct":0,"question":"Στην πλαστή διήγησή του (στ.191-359) ο Οδυσσέας αναφέρει ότι κατάγεται από","content":["την Κρήτη.","την Αίγυπτο.","την Τροία.","τη Θεσπρωτία."]},{"correct":1,"content":["κατέλαβαν τη χώρα πολεμώντας γενναία.","οι σύντροφοί του επέδειξαν αρχικά αλαζονική συμπεριφορά.","ο βασιλιάς τον τιμώρησε.","ο ίδιος έμεινε στην Αίγυπτο 9 χρόνια."],"question":"Σύμφωνα με την πλαστή διήγηση του Οδυσσέα, όταν έφτασε με τους συντρόφους του στην Αίγυπτο"},{"correct":3,"content":["έφτασαν σώοι στη χώρα των Θεσπρωτών.","ήρθαν αντιμέτωποι με θαλασσοταραχή αλλά γλίτωσαν.","μόνο αυτός επιβίωσε με τη βοήθεια της Αθηνάς.","παράδερνε στο κύμα για 9 μέρες μέχρι να σωθεί και να φτάσει στη χώρα των Θεσπρωτών."],"question":"Σύμφωνα με την πλαστή διήγηση του Οδυσσέα αφού φύγανε από την Αίγυπτο"},{"correct":2,"content":["να τον πετάξουν στα άγρια ζώα.","να τον πουλήσουν ως δούλο.","να τον πετάξουν από μια ψηλή κορφή.","να αποφασίσουν για την τύχη του οι μνηστήρες."],"question":"Ο «ζητιάνος» δίνει όρκο στον Εύμαιο ότι θα γυρίσει ο Οδυσσέας και για να τον πείσει τονίζει ότι αν δεν γυρίσει"},{"correct":2,"content":["τον έχουν ξεγελάσει για να πάρουν λεφτά.","έχει μάθει από έγκυρες πηγές ότι ο Οδυσσέας είναι νεκρός.","τον έχουν εξαπατήσει ώστε να κερδίσουν χιτώνα, χλαίνη και άλλα ρούχα.","φοβάται ότι θα τιμωρηθεί αν γυρίσει ο Οδυσσέας."],"question":"Ο Εύμαιος είναι δύσπιστος για το ότι θα επιστρέψει ο αφέντης του καθώς"},{"correct":2,"content":["Ο Οδυσσέας ενημερώνεται για την κατάσταση στο παλάτι.","Η δράση επιβραδύνεται ώστε να επιστρέψει και ο Τηλέμαχος.","Ο Οδυσσέας εν τέλει αποκαλύφθηκε στον χοιροβοσκό.","Η ραψωδία κλείνει με φαγοπότι και σπονδές και στους θεούς."],"question":"Τι από τα παρακάτω δεν αληθεύει σχετικά με όσα αναφέρονται στη ραψωδία ξ;"}]}]}';
	const data = JSON.parse(jsonData);
	for(var i = 1; i <= data.games.length; i++) {
		$("#problem-set").append('<option value="' + i + '">' + i + '</option>');
	}
	$("#pre-start").show();
	$("#start").click(function() {
		var index = $('#problem-set').find(":selected").val() - 1;
		ko.applyBindings(new MillionaireModel(data.games[index]));
		$("#pre-start").fadeOut('slow', function() {
			$("#game").fadeIn('slow');
		});
	});
});