var browser = navigator.appName;
var version=parseInt(navigator.appVersion.substring(0,1));
// Array fuer Filenamen
imgFiles = new Array("1.jpg","2.jpg","3.jpg","4.jpg","5.jpg","6.jpg","7.jpg","8.jpg","9.jpg","10.jpg","11.jpg","12.jpg","13.jpg","14.jpg","15.jpg","16.jpg","17.jpg","18.jpg","19.jpg","20.jpg","21.jpg","22.jpg","23.jpg","24.jpg","1.jpg","2.jpg","3.jpg","4.jpg","5.jpg","6.jpg","7.jpg","8.jpg","9.jpg","10.jpg","11.jpg","12.jpg","13.jpg","14.jpg","15.jpg","16.jpg","17.jpg","18.jpg","19.jpg","20.jpg","21.jpg","22.jpg","23.jpg","24.jpg");
positions = new Array(48); // Array fuer Positionen
newImages = new Array(48); // Array fuer Bildnamen
openStatus = new Array(48); // Array fuer status (Bild offen oder zu)
var firstClick = false;
var firstTile = "";	// zuerst geklicktes Teil
var secondTile = "";	// zweites
var tileNumber = 0;	// Teile-Nummer
var tileNumberfT = 0;	// Teile-Nummer des ersten
var tileNumbersT = 0;	// Teile-Nummer des zweiten
var numberOfClicks = 0; // Anzahl der Clicks
var vorSekunden	= 0;
var sekunden = 0;	// Sekunden
var minuten = 0;	// Minuten
var startTime = 0;	// Zeit beim ersten Click
var zeitString = "00:00";	// Zeit String
var busy = false;
var timeOut;
var pairs = 0;		// aufgedeckte paare
var activeLayer = "loading";


if (navigator.appVersion.substring(0,1) >=3)
{
	for ( i=0; i<=47; i++ ) {			// Bilder laden
		eval("tile"+i+"= new Image");
		eval("tile"+i+".src = 'blende.jpg'");

	}
	for (i=0; i<=47; i++) {
		eval("newTile"+i+"= new Image");
		eval("newTile"+i+".src=imgFiles[i]");
	}
}

function init() {		// Bilder "wahllos" verteilen und Werte bzw. Arrays initialisieren
	document.scoreForm.zeit.value = "00:00";
	document.scoreForm.clicks.value = "0";
	var randomNum = getRand(47);

	for ( i=0; i<=47; i++ ) {	// Array "newImages" und openStatus initialisieren
		newImages[i] = "newTile" + i;
		openStatus[i] = "closed";
	}

	for ( i=0; i<=47; i++) {
		positions[randomNum] = newImages[i];

		while ( positions[randomNum] && i < 47 ) {
			randomNum = getRand(47);
		}
	}
	hideLayer();
}

function restartGame() {
	clearTimeout(timeOut);
	document.scoreForm.zeit.value = "00:00";
	document.scoreForm.clicks.value = "0";
	firstClick = false;
	firstTile = "";
	secondTile = "";
	tileNumber = 0;
	tileNumberfT = 0;
	tileNumbersT = 0;
	numberOfClicks = 0;
	vorSekunden = 0;
	sekunden = 0;
	minuten = 0;
	zeitString = "0:00";
	busy = false;
	pairs = 0;

	for ( i=0; i<=47; i++ ) {
		openStatus[i] = "closed";
		positions[i] = "null";
		rollover("tile"+i,"tile0");
	}
	var randomNum = getRand(47);

	for ( i=0; i<=47; i++ ) {
		positions[randomNum] = newImages[i];

		while ( positions[randomNum] != "null" && i < 47 ) {
			randomNum = getRand(47);
		}
	}
}

function getRand(max) {
	var randomNum = 0;
	randomNum = Math.random();
	randomNum = Math.round( randomNum * max );
	return randomNum;
}

function turnTile(tileNumber) {
if ( !firstClick ) { firstClick = true; setTimeout( "startTimer(1)", 1 ); }
if ( !busy ) {
	if ( openStatus[tileNumber] != "open" ) {
		numberOfClicks += 1;
		document.scoreForm.clicks.value = numberOfClicks;
		if ( browser=="Netscape" ) { playSound(0); }
		openStatus[tileNumber] = "open";
		newTile = positions[tileNumber];
		rollover( "tile" + tileNumber, newTile);
		if ( firstTile != "" ) {
			secondTile = "tile" + tileNumber;
			tileNumbersT = tileNumber;
			checkIfEqual();
		}
		else {	// wenn noch nicht geklickt
			firstTile = "tile" + tileNumber;
			tileNumberfT = tileNumber;
		}
	}
}
}

function checkIfEqual() {
	if ( document.images[firstTile].src != document.images[secondTile].src ) {
		busy = true;
		setTimeout("closeTiles();",700);
	} else {
		pairs += 1;
		checkWin();
		firstTile = "";
		secondTile = "";
		tileNumberfT = 0;
		tileNumbersT = 0;
	}
}

function closeTiles() {	// Bilder schliessen wenn nicht gleich
	rollover( firstTile, "tile0" );
	rollover( secondTile, "tile0" );
	firstTile = "";
	secondTile = "";
	openStatus[tileNumberfT] = "closed";
	openStatus[tileNumbersT] = "closed";
	tileNumberfT = 0;
	tileNumbersT = 0;
	busy = false;
}

function startTimer(flag) {
	var now = new Date();
	if ( vorSekunden != sekunden ) { sekunden += 1; }
	if ( sekunden == 60 ) { sekunden = 0; }
	vorSekunden = now.getSeconds();
	if ( sekunden == 0 && flag != 1 ) { minuten += 1; }
	if ( minuten <= 9 ) {
		if ( sekunden <= 9 ) {
			zeitString = "0" + minuten + ":0" + sekunden;
		} else {
			zeitString = "0" + minuten + ":" + sekunden;
		}
	} else {
		if ( sekunden <= 9 ) {
			zeitString = minuten + ":0" + sekunden;
		} else {
			zeitString = minuten + ":" + sekunden;
		}
	}
	document.scoreForm.zeit.value = zeitString;
	if ( minuten == 60 ) {	// nach einer Stunde
		alert("Ups, you didn't finish in one hour. What a pity!")
		busy = true;
		return;
	}
	timeOut = setTimeout ( "startTimer(0)", 1000 );
}

function checkWin() {
	if ( pairs == 24 ) {
		busy = true;	// fertig
		clearTimeout(timeOut);
		alert ("Wow, you finished!\n\nTime: " + zeitString + "\nClicks: " + numberOfClicks + "\n\nLet's see if you entered the highscores!");
		document.scoreForm.submit();
	}
}

function rollover(imgid,imgnew) {		// Bilder austauschen
        if (navigator.appVersion.substring(0,1) >= 3) {
                document.images[imgid].src=eval(imgnew + ".src");
        }
}

function playSound(soundNumber) {		// Sound abspielen
//	document.AudioClipPlayer.playSound(soundNumber);
}

function loopSound(soundNumber) {		// Sound "loopen"
//	document.AudioClipPlayer.loopSound(soundNumber);
}

function stopSound(soundNumber) {		// Sound stoppen
//	document.AudioClipPlayer.stopSound(soundNumber);
}

function showLayer(lid) {
	if (version >= 4) {
		activeLayer = lid;
		if (document.layers) {
			document.layers[lid].visibility = "show";
			return true;
		}
		else {
			document.all[lid].style.visibility = "visible";
			return true;
		}
	}
}

function hideLayer() {
	if (version >= 4) {
		if (activeLayer != "null") { 
			if (document.layers) {
				document.layers[activeLayer].visibility = "hide";
				activeLayer = "null";
			}
			else {
				document.all[activeLayer].style.visibility = "hidden";
				activeLayer = "null";
			}
		}
	}
}
