// Deze regel niet verwijderen kan dan controleren welke versie er gebruikt wordt.
var fgVer="Fotogame versie 1.8";

/* Andere files eraan koppelen */

Include("levels.js"); // File met Data v/d levels
Include("msglib.js"); // Meldingen in 't spel
Include("fotostatus.js") // Statusbar boodschap

if(document.all){
	Include("gamelib.js"); // Internet Exploder :-P
}

/* Compatible met oudere versies van Netscape */ 
/* Werkt nog niet stay tuned, of probeer Netscape 6 of hoger */
if(document.layers){
	Include("nsgamelib.js"); // Netscape 4.X
}

/* ==================================================================*/
function Include(lib){
	document.write("<script language='Javascript' type='text/javascript' src='"+lib+"'></script>");
}
/* ==================================================================*/
/* Het script is onderverdeeld in verschillende scripts om het wijzigen te vereenvoudigen */

/* Het eigenlijke spel */

/* Hier kun je een beetje mee spelen om de moeilijkheidsgraad in te stellen */
var timeoutBegin=1500;
var timeoutLimit=150;
var timeoutDecr=50;

/* Score */
var scoreFactor=100;
var penaltyScore=500;

/* === Met de rest eigenlijk niet zo erg...veel ======================*/

/* Timer variabelen */
var timerId;
var time=360;
var timeDecr=5;

/* Gevonden punten */
var points=0;
var maxpoints=5;
var found=new Array();

/* In den beginne */
var timeout;
timeout=timeoutBegin;
var playing=false; // Je bent niet gelijk aan het spelen
var score=0; 	// issss nie gratis
var levelsDone=0; 

/* Volgorde v/d levels */
var order=new Array(); 


/* Het spel */
function start(){
	if(levelsDone==0){
		mk_order();
		if(levelsDone<levels.length){
			preloadPics(levels[order[levelsDone]]);
		}
	}
	if(!playing){
		init_game(levels[order[levelsDone]]);
	}
}
function restart(){
	timeout=timeoutBegin;
	levelsDone=0;
	score=0;
	writeScore();
	hideAll();
	writeMsg(msg[0]); // Start
	showMsg();
}
function init_game(level){
	time=360;
	points=0;
	//playing=false;
	hideAll();
	initarea(level);
	initbar();
	initpoints();
	// Plaatjes downloaden
	writeMsg(msg[4]);// Even geduld a.u.b.
	makemap(level);
	setDesc(level);
	setPics();
	/* Nadat de plaatjes zijn gedownload verschijnt er een 'start' boodschap */
}
function start_game(){
		if(levelsDone+1<levels.length){
			preloadPics(levels[order[(levelsDone+1)]]);
		}
		playing=true;
		hideMsg();	// Weg met de tekst!
		showpics();	//plaatjes zichtbaar maken
		showDesc(); // Evt. omschrijving van de foto's weergeven
		showBar(); // Tijd, status en score weergeven
		timer(); // Start de timer
}
function savescore(){
/* Vraag eerst de naam van de speler */
var naam = prompt('Vul je naam in :', 'Onbekend');
reWin=window.open('http://www.hoorn.be/fotospel/highscore/savescore.asp?Spel=Fotogame&Score='+score+'&Naam='+naam,'Saving','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=100,height=30,top=10,left=10');
setTimeout("reWin.close()",5000); //for 3 seconds
}

function stop(){
	window.clearTimeout(timerId);
	if(playing){
		playing=false;
		if(points==maxpoints){	// Klaar met Level?
			if(levelsDone<levels.length-1){ // Nog niet alle levels gedaan?
				// Doorgaan
				levelsDone++;
				speedUp();
				writeMsg(msg[1]); // 'Ga door!'
			}
			else{ // Alles gedaan?
				// Gewonnen
				// Spel herstarten
				writeMsg(msg[3]); // 'Joepie, ik heb gewonnen!'
				savescore();
			}
		}
		else{ // Verloren :(
			// Spel herstarten
			writeMsg(msg[2]); // 'Ah joh opnieuw proberen'
			showerrors(); // 'Hier moest je klikken'
			savescore();
		}
		// Boodschap afbeelden
		showMsg();
	}
}
function speedUp(){
	if(timeout>timeoutLimit){
		timeout-=timeoutDecr;
	}
	else{
		timeout=timeoutLimit;
	}
}
function goed(n){
	if(playing){
		if(!found[n]){
			found[n]=true;
			// Score ophogen
			upScore(points);
			upFound(points);
			showarea(n);
			// Point aanvinken
			points++;
			if(points==maxpoints){
				stop();
			}
		}
	}
}
function fout(){
	if(playing){
		time-=(10*timeDecr);
		downScore();
		update_bar();
	}
}
/* score functies */

function upScore(){
	score+=Math.round(time/360*(levelsDone+1)*scoreFactor);
	writeScore();
}
function downScore(){
	score-=penaltyScore;
	if(score<0){
		score=0;
	}
	writeScore();
}
function timer(){
	time-=timeDecr;
	timerId=window.setTimeout("timer()",timeout);
	update_bar();
}

function update_bar(){
	if(time>0){
		// bar bijwerken
		adjbar(time);
	}
	else{
		time=0
		// bar bijwerken
		adjbar(time);
		stop();
	}
}
function make_game(){
	mk_gameCont();
	loadicons();
	initStatus();
}
/* ============================================================================= */
/* Functies voor willekeurige volgorde */
function mk_order(){
	for(var i=0;i<levels.length;i++){
		order[i]=i;
	}
	shuffle("order");
}
function random(maxnum){
	var ran,val;
	ran=Math.random();
	val=Math.round(ran*maxnum);
	return val;
}

function cutArray(arrayName,position){

	var firstarr=new Array();
	var result=new Array();
	var t=0;
	var val="";
	eval("firstarr="+arrayName);
	for(var i=0;i<firstarr.length;i++){
		if(i!=position){
			result[t++]=firstarr[i];
		}
		else{
			val=firstarr[i];
		}
	}
	eval(arrayName+"=result");
	return val;
}

function shuffle(arrayName){
	var shuffled=new Array();
	var length=0;
	
	length=eval(arrayName+".length");
	
	for(var i=0;i<length;i++){
		shuffled[i]=cutArray(arrayName,random(eval(arrayName+".length")-1));
	}
	eval(arrayName+"=shuffled");
}
