var arr1 = new Array('a1_on',  'b1_on', 'c1_on', 'd1_on', 'e1_on', 'f1_on', 'g1_on', 'h1_on', 'i1_on', 'j1_on');
var arr2 = new Array('a2_on',  'b2_on', 'c2_on', 'd2_on', 'e2_on', 'f2_on', 'g2_on', 'h2_on', 'i2_on', 'j2_on');

// Don't change anything from here down.
var mem   = new Image(img_width,img_height); mem.src   = img_dir + '/' + card_back;
var a1_on = new Image(img_width,img_height); a1_on.src = img_dir + '/' + cards[0];
var a2_on = new Image(img_width,img_height); a2_on.src = a1_on.src
var b1_on = new Image(img_width,img_height); b1_on.src = img_dir + '/' + cards[1];
var b2_on = new Image(img_width,img_height); b2_on.src = b1_on.src
var c1_on = new Image(img_width,img_height); c1_on.src = img_dir + '/' + cards[2];
var c2_on = new Image(img_width,img_height); c2_on.src = c1_on.src
var d1_on = new Image(img_width,img_height); d1_on.src = img_dir + '/' + cards[3];
var d2_on = new Image(img_width,img_height); d2_on.src = d1_on.src
var e1_on = new Image(img_width,img_height); e1_on.src = img_dir + '/' + cards[4];
var e2_on = new Image(img_width,img_height); e2_on.src = e1_on.src
var f1_on = new Image(img_width,img_height); f1_on.src = img_dir + '/' + cards[5];
var f2_on = new Image(img_width,img_height); f2_on.src = f1_on.src
var g1_on = new Image(img_width,img_height); g1_on.src = img_dir + '/' + cards[6];
var g2_on = new Image(img_width,img_height); g2_on.src = g1_on.src
var h1_on = new Image(img_width,img_height); h1_on.src = img_dir + '/' + cards[7];
var h2_on = new Image(img_width,img_height); h2_on.src = h1_on.src
var i1_on = new Image(img_width,img_height); i1_on.src = img_dir + '/' + cards[8];
var i2_on = new Image(img_width,img_height); i2_on.src = i1_on.src
var j1_on = new Image(img_width,img_height); j1_on.src = img_dir + '/' + cards[9];
var j2_on = new Image(img_width,img_height); j2_on.src = j1_on.src
var blank = new Image(img_width,img_height); blank.src = img_dir + '/' + card_blank;
free = true;

if(!document.images) {
    write("<p>Mit Ihrem Browser kann dieses Spiel leider nicht gespielt werden. Bitte besorgen Sie sich einen aktuelleren!");
}

if(document.images) {
    window.onerror=null;
    
    var now 	= new Date();
    var seed 	= now.getTime() % 0xffffffff;
    var randNum = new Array();
    var no 		= u_turn = j_turn = pairs = 0;
    var cl_1 	= ''; var cl_2 = ''; var clicks = 0;
    var user 	= 'u';  var user_score = 0;
    var jenny 	= 'j';  var jenny_score = 0;
    var cur_pl 	= user;
    var choice 	= '';
    var cheat 	= free = false;
    var klickat = 0;

    //ARRAY OF IMAGE NAMES
    var imgArray = new Array('a1', 'a2', 'b1', 'b2', 'c1', 'c2', 'd1', 'd2', 'e1', 'e2', 'f1', 'f2', 'g1', 'g2', 'h1', 'h2', 'i1', 'i2', 'j1', 'j2');
}

//TURNING IMAGES
function img_swap(nowImage, nextImage) {
    document [nowImage].src = nextImage;
}

function turn_Img(imgName) {
    document.images[imgName].src = eval(imgName + '_on.src');
}

function reset_Img() {
    document.images[cl_1].src = mem.src;
    document.images[cl_2].src = mem.src;
}

function clear_Img() {	
    document.images[cl_1].src = blank.src;
    document.images[cl_2].src = blank.src;
}

//SCORE HANDLING
function winner() {
	if(user_score == jenny_score) {
		if (confirm('Unentschieden!\n\nNeues Spiel ?')) {
		location.href = script_url
		}
	}
	if(user_score > jenny_score) {
		if (confirm('Gratulation! Sie haben mich mit ' + user_score + ' - ' + jenny_score + ' geschlagen.\n\nNeues Spiel ?')) {
		location.href = script_url
		}
	}
	if(jenny_score > user_score) {
		if (confirm(jenny_score + ' - ' + user_score + ' fuer mich!\n\nNeues Spiel ?')) {
		location.href = script_url
		}
	}
}

function setScore() {
	if(cur_pl == user) {
		user_score++;
		document.getElementById("player1").innerHTML = user_score;
		if(user_score >= 2) { 
			cheat = true }
	}
	else {
		jenny_score++; klickat = 0;
		document.getElementById("player2").innerHTML = jenny_score;
		cheat = false;
	}
	if(pairs == imgArray.length / 2) { 
		setTimeout('winner()', 1000) 
	}
}

function pairCheck() {
    if(cl_1.charAt(0) == cl_2.charAt(0)) {
    	pairs++;
        for(i = 0; i < imgArray.length; i++) {
        	if(imgArray[i] == cl_1 || imgArray[i] == cl_2) { imgArray[i] = 'taken';        }
        }
        setTimeout('clear_Img()', 1000);
        return true;
    }
    else {
        return false;
    }
}

//CLICK HANDLING
function makeMove() {
    if(cl_1 != cl_2) {
    cur_pl == user ? u_turn++ : j_turn++;
    document.getElementById("player1_x").innerHTML = u_turn;
    document.getElementById("player2_x").innerHTML = j_turn;

   // alert("cl_1 : "+cl_1+" cl_2 : "+ cl_2)
		turn_Img(cl_2);
		if(pairCheck()) {	// Treffer
			setTimeout('clear_Img()', 1000);
			clicks = 0;
			setScore();
			setTimeout('setFree()', 1000);
			if(cur_pl == jenny) {
				setTimeout('handleClick("")', 2000);
			}
		}
		else {				// Niete
			setTimeout('reset_Img()', 1000);
			clicks = 0;
			klickat++;
			if(cur_pl == user) {
				cur_pl = jenny;
				setTimeout('handleClick(" ")', 2000);
			}
			else {
				cur_pl = user;
				setTimeout('setFree()', 1000);
			}
		}
    }
    else {
		if(cur_pl == jenny) {
			handleClick('');
		}
		else {
			free = true;
		}
    }
}

function setFree() {
    free = true
}

function handleClick(namn) {
    if(pairs < imgArray.length / 2) {
    	if(clicks == 0) {
        	if(cur_pl == user) {
            	if(notClicked(namn)) {
                	free = false; cl_1 = namn; clicks++;
                    turn_Img(cl_1);
                    free = true;
                }
            }
            else {
            	if(reply())  {
                	cl_1 = choice; clicks++;
                    turn_Img(cl_1);
                    setTimeout('handleClick("")', 1000);
                }
            }
        }
        else {
            if(cur_pl == jenny) {
            	reply();
                cl_2 = choice;
                makeMove();
            }
            else {
				if(notClicked(namn)) {
				free = false; cl_2 = namn;
				makeMove();
                }
            }
        }
    }
}

function notClicked(elm) {
    var status = false;
    for(i = 0; i < imgArray.length; i++) {
            if(imgArray[i] == elm) { status = true; }
    }
    return status;
}

function reply() {
    rand(imgArray.length);
    while((imgArray[no]) == 'taken') {
            rand(imgArray.length);
    }
    if((cheat == true && clicks == 1) || (klickat == 7)) {
        if(cl_1.charAt(1) == '2') {
        	choice = cl_1.charAt(0) + '1';
        }
        else {
            choice = cl_1.charAt(0) +'2';
        }
    }
    else {
            choice = imgArray[no];
    }
    return true;
}

function rand(n) {
        seed = (0x015a35 * seed) % 0x7fffffff;
        no = (seed >> 16) % n;
}

function get_random() {
        rand(imgArray.length);
        while(no == randNum[no]) {
                rand(imgArray.length);
        }
        randNum[no] = no;
        return no;
}

with(document) {
    free = true;

    for(i = 0; i < imgArray.length; i++)        {
        no= get_random();
        write('<a href=\'javascript:if(free)handleClick("' );
        write(imgArray[no] + '")\' onmouseover="window.status=window.defaultStatus;return true">');
        write('<img src="' + img_dir + '/' + card_back + '" name="' + imgArray[no] + '" width="' + img_width + '" height="' + img_height + '" border="0" hspace="5" vspace="5"></a>\n');
        if( i == 4  || i == 9 || i == 14) {
            write('<br />\n');
        }
    }
 }