// ----------------------------------------------------------
// |   Quartett (c) 2009 by Kfz.net   						|
// |   Onlinespiel unter 									|
// |   http://www.kfz.net/spiele/kostenlos/auto-quartett/	|
// ----------------------------------------------------------
//
//
// AB HIER BITTE NICHTS MEHR �NDERN.
// ----------------------------------------------------------------
//
// functions
// zufallsreihenfolge f�r array
function qt_randOrd() { return (Math.round(Math.random())-0.5); }

// getElementById wrapper
function qt_ei(name, param, wert) {
	if(param == 'html') eval("document.getElementById('"+name+"').innerHTML = '"+wert+"';");
	else if(param == 'class') eval("document.getElementById('"+name+"').className = '"+wert+"';");
	else if(param == 'src') eval("document.getElementById('"+name+"').src = '"+wert+"';");
	else eval("document.getElementById('"+name+"').style."+param+" = '"+wert+"';");
}
// formatiere zahlen
function qt_formatNum(num) {
  num = num.toString()
  while (num.search(/\d{4}/) != -1) { num = num.replace(/(\d+)(\d{3})/, "$1.$2"); }
  return num;
}
function qt_formatNumToDate(num) {
  var dateObj = new Date((num * 1000));
  var day     = dateObj.getDate();
  var month   = (dateObj.getMonth() + 1);
  if(day<10) { day = "0" + day; }
  if(month<10) { month= "0" + month; }
  return day + '.' + month + '.' + dateObj.getFullYear();
}
// zeige richtige kartenseiten
function qt_showCards(sp1, sp2) {
	for(x=1;x<4;x++) {
		qt_ei('qt_sp1k'+x, 'display', 'none');
		qt_ei('qt_sp2k'+x, 'display', 'none');
	}
	// ÄNDERUNG VON MEINSPIEL
	for(x=1;x<=qt_wertstellungen.length;x++) {
//			for(x=1;x<7;x++) { // ORIGINAL
		qt_ei('qt_sp1r'+x, 'class', 'qt_p');
		qt_ei('qt_sp2r'+x, 'class', 'qt_p');
	}
	if(sp1 == 4) {
		// ÄNDERUNG VON MEINSPIEL
		for(x=1;x<=qt_wertstellungen.length;x++) {
//				for(x=1;x<7;x++) { // ORIGINAL
			qt_ei('qt_sp1r'+x, 'class', 'qt_p2');
			qt_ei('qt_sp2r'+x, 'class', 'qt_p2');
		}
		sp1 = 3;
	}
	qt_ei('qt_sp1k'+sp1, 'display', 'block');
	qt_ei('qt_sp2k'+sp2, 'display', 'block');
}
// f�lle daten in kartenseiten
function qt_fillCards() {
	for(var x = 1; x <= qt_wertstellungen.length; x++) {
		// ÄNDERUNG VON MEINSPIEL
		qt_ei('qt_sp1n'+x, 'html', qt_wertstellungen[(x-1)][0]);
		qt_ei('qt_sp2n'+x, 'html', qt_wertstellungen[(x-1)][0]);
//		qt_ei('qt_sp1n'+x, 'html', qt_wertstellungen[(x-1)][0]+':'); // ORIGINAL
//		qt_ei('qt_sp2n'+x, 'html', qt_wertstellungen[(x-1)][0]+':'); // ORIGINAL
// ÄNDERUNG VON MEINSPIEL
    if (x == 1) {
      qt_ei('qt_sp1w'+x, 'html', (qt_karten_tisch[0][x] != 0) ? qt_karten_tisch[0][x] : '?');
			qt_ei('qt_sp2w'+x, 'html', (qt_karten_tisch[1][x] != 0) ? qt_karten_tisch[1][x] : '?');
    }
		else if (x == 4 || x == 5) {
			qt_ei('qt_sp1w'+x, 'html', (qt_karten_tisch[0][x] != 0) ? qt_formatNumToDate(qt_karten_tisch[0][x]) : '?');
			qt_ei('qt_sp2w'+x, 'html', (qt_karten_tisch[1][x] != 0) ? qt_formatNumToDate(qt_karten_tisch[1][x]) : '?');
		} else {
			qt_ei('qt_sp1w'+x, 'html', (qt_karten_tisch[0][x] != 0) ? qt_formatNum(qt_karten_tisch[0][x]) : '?');
			qt_ei('qt_sp2w'+x, 'html', (qt_karten_tisch[1][x] != 0) ? qt_formatNum(qt_karten_tisch[1][x]) : '?');
		}
		// ÄNDERUNG ENDE
		qt_ei('qt_sp1e'+x, 'html', qt_wertstellungen[(x-1)][1]);
		qt_ei('qt_sp2e'+x, 'html', qt_wertstellungen[(x-1)][1]);
		if(qt_wertstellungen[(x-1)][2] == 'h') {
			qt_ei('qt_sp1p'+x, 'class', 'qt_pfh');
			qt_ei('qt_sp2p'+x, 'class', 'qt_pfh');
		} else {
			qt_ei('qt_sp1p'+x, 'class', 'qt_pfn');
			qt_ei('qt_sp2p'+x, 'class', 'qt_pfn');
		}
	}
	qt_ei('qt_kaansp1', 'html', qt_karten_tisch[0][0]);
	qt_ei('qt_kaaisp1', 'src', qt_karten_tisch[0][7]+'?zuf='+Math.floor(Math.random()*10000));
	qt_ei('qt_kaansp2', 'html', qt_karten_tisch[1][0]);
	qt_ei('qt_kaaisp2', 'src', qt_karten_tisch[1][7]+'?zuf='+Math.floor(Math.random()*10000));
}

// fülle daten in statusfeld
function qt_fillStatus() {
	if(qt_phase == 1) {
		if(qt_turn == 1) {
			qt_ei('qt_asp1', 'backgroundImage', 'url(img/spieler-orange.jpg)');
			qt_ei('qt_asp2', 'backgroundImage', 'url(img/spieler-grey.jpg)');
			qt_ei('qt_ssp1', 'html', 'Du bist am Zug.');
			qt_ei('qt_ssp2', 'html', '');
		} else {
			qt_ei('qt_asp1', 'backgroundImage', 'url(img/spieler-grey.jpg)');
			qt_ei('qt_asp2', 'backgroundImage', 'url(img/spieler-orange.jpg)');
			qt_ei('qt_ssp1', 'html', '');
			qt_ei('qt_ssp2', 'html', 'Ist am Zug.');
		}
	}

	if(qt_phase == 2) {
		if(qt_haswon == 0) {
			qt_ei('qt_asp1', 'backgroundImage', 'url(img/spieler-green.jpg)');
			qt_ei('qt_asp2', 'backgroundImage', 'url(img/spieler-green.jpg)');
			qt_ei('qt_ssp1', 'html', 'Unentschieden!');
			qt_ei('qt_ssp2', 'html', 'Unentschieden!');
			qt_ei('qt_sp1r'+qt_choice, 'class', 'qt_pg');
			qt_ei('qt_sp2r'+qt_choice, 'class', 'qt_pg');
		} else if(qt_haswon == 1) {
			qt_ei('qt_asp1', 'backgroundImage', 'url(img/spieler-green.jpg)');
			qt_ei('qt_asp2', 'backgroundImage', 'url(img/spieler-red.jpg)');
			qt_ei('qt_ssp1', 'html', 'Stich gewonnen!');
			qt_ei('qt_ssp2', 'html', 'Stich verloren!');
			qt_ei('qt_sp1r'+qt_choice, 'class', 'qt_pg');
			qt_ei('qt_sp2r'+qt_choice, 'class', 'qt_pr');
		} else {
			qt_ei('qt_asp1', 'backgroundImage', 'url(img/spieler-red.jpg)');
			qt_ei('qt_asp2', 'backgroundImage', 'url(img/spieler-green.jpg)');
			qt_ei('qt_ssp1', 'html', 'Stich verloren!');
			qt_ei('qt_ssp2', 'html', 'Stich gewonnen!');
			qt_ei('qt_sp1r'+qt_choice, 'class', 'qt_pr');
			qt_ei('qt_sp2r'+qt_choice, 'class', 'qt_pg');
		}
	}

	if(qt_phase == 3) {
		qt_ei('qt_asp1', 'backgroundImage', 'url(img/spieler-grey.jpg)');
		qt_ei('qt_asp2', 'backgroundImage', 'url(img/spieler-grey.jpg)');
		qt_ei('qt_ssp1', 'html', '');
		qt_ei('qt_ssp2', 'html', '');
	}

	for(var x = 1; x <= qt_karten.length; x++) {
		if(x <= qt_karten_sp1.length) qt_ei('qt_sp1card'+x, 'display', 'block');
		else qt_ei('qt_sp1card'+x, 'display', 'none');
		if(x <= qt_karten_sp2.length) qt_ei('qt_sp2card'+x, 'display', 'block');
		else qt_ei('qt_sp2card'+x, 'display', 'none');
	}

	qt_temp = qt_karten_sp1.length + ((qt_karten_tisch.length > 0)?1:0);
	qt_ei('qt_kaasp1', 'html', qt_temp+((qt_temp != 1)?' Karten':' Karte'));
	qt_temp = qt_karten_sp2.length + ((qt_karten_tisch.length > 0)?1:0);
	qt_ei('qt_kaasp2', 'html', qt_temp+((qt_temp != 1)?' Karten':' Karte'));
}

// erzeuge kartenstapel
function qt_writeCards(num1, num2) {
	var karten = document.createElement("div");
	var attributes = document.createAttribute("id");

	attributes.nodeValue = 'qt_sp'+num1+'card'+num2;
	karten.setAttributeNode(attributes);
	document.getElementById('qt_kasp'+num1).appendChild(karten);

	qt_ei('qt_sp'+num1+'card'+num2, 'position', 'absolute');
	qt_ei('qt_sp'+num1+'card'+num2, 'background', 'url(img/karte-klein.png)');
	qt_ei('qt_sp'+num1+'card'+num2, 'width', '30px');
	qt_ei('qt_sp'+num1+'card'+num2, 'height', '34px');
	qt_ei('qt_sp'+num1+'card'+num2, 'left', ((num2*4)-4)+'px');
	qt_ei('qt_sp'+num1+'card'+num2, 'top', '0px');
	qt_ei('qt_sp'+num1+'card'+num2, 'display', 'none');
}

// prüfe wer gewonnen hat
function qt_whoWon(num) {
  if(qt_karten_tisch[0][num] == 0) {
    qt_haswon = 1;
    qt_turn = qt_haswon;
  }
  else if(qt_karten_tisch[1][num] == 0) {
    qt_haswon = 2;
    qt_turn = qt_haswon;
  }
  else {
    if(qt_karten_tisch[0][num] == qt_karten_tisch[1][num]) qt_haswon = 0;
  	else {
  		if(qt_wertstellungen[(num-1)][2] == 'h') {
  			if(qt_karten_tisch[0][num] > qt_karten_tisch[1][num]) qt_haswon = 1;
  			else qt_haswon = 2;
  		} else {
  			if(qt_karten_tisch[0][num] < qt_karten_tisch[1][num]) qt_haswon = 1;
  			else qt_haswon = 2;
  		}
  		qt_turn = qt_haswon;
  	}
  }
}

// starte spiel
function qt_start() {
	qt_temp = qt_karten;

	// eröffne spiel, hole karten
	qt_temp.sort(qt_randOrd);
	
	// ÄNDERUNG VON MEINSPIEL
	var qt_karten_pro_sp	= (qt_temp.length / 2) - 1;	// Eine Karte geht sofort von der Hand auf den Tisch. Deswegen -1.
	qt_karten_sp1					= qt_temp.slice(0, qt_karten_pro_sp);
	qt_karten_tisch				= qt_temp.slice(qt_karten_pro_sp, (qt_karten_pro_sp + 2));
	qt_karten_sp2					= qt_temp.slice((qt_karten_pro_sp + 2), qt_temp.length);
	
	// ORIGINAL
//			for(var x = 1; x < 8; x++) qt_karten_sp1[(x-1)] = qt_temp[x];
//			for(var x = 8; x < 10; x++) qt_karten_tisch[(x-8)] = qt_temp[x];
//			for(var x = 10; x < 17; x++) qt_karten_sp2[(x-10)] = qt_temp[x];
	// ENDE ÄNDERUNG VON MEINSPIEL

	// er�ffne spiel, setze mini karten
	for(var x = 1; x <= qt_temp.length; x++) {
		qt_writeCards(1, x);
		qt_writeCards(2, x);
	}
	qt_setPhase1();
}

// restarte spiel
function qt_new_game() {
	qt_phase = 1;
	qt_turn = 1;
	qt_choice = 0;
	qt_haswon = 0;
	qt_karten_sp1 = [];
	qt_karten_tisch = [];
	qt_karten_sp2 = [];
	qt_start();
}

// f�hre zug player 1 aus
function qt_zug(num) {
	if(qt_phase == 1 && qt_turn == 1) {
		qt_whoWon(num);
		qt_choice = num;
		qt_setPhase2();
	}
}

// stelle phase 1 dar
function qt_setPhase1() {
	qt_phase = 1;
	if(qt_turn == 1) qt_showCards(4, 2);
	else qt_showCards(3, 2);
	
	qt_fillCards();
	qt_fillStatus();
	
	if(qt_turn == 2) {
		// ÄNDERUNG VON MEINSPIEL
		qt_temp = (Math.floor(Math.random()*qt_wertstellungen.length)+1);
//				qt_temp = (Math.floor(Math.random()*6)+1); // ORIGINAL
		qt_whoWon(qt_temp);
		qt_choice = qt_temp;
		setTimeout("qt_setPhase2()", 1500);
	}
}

// stelle phase 2 dar
function qt_setPhase2() {
	qt_phase = 2;
	qt_showCards(3, 3);
	qt_fillStatus();

	if(qt_haswon == 0) {
		qt_karten_sp1.unshift(qt_karten_tisch[0]);
		qt_karten_sp2.unshift(qt_karten_tisch[1]);
	} else if(qt_haswon == 1) qt_karten_sp1.unshift(qt_karten_tisch[0], qt_karten_tisch[1]);
	else qt_karten_sp2.unshift(qt_karten_tisch[0], qt_karten_tisch[1]);

	qt_karten_tisch = [];

	if(qt_karten_sp2.length == 0) {
		if(confirm(unescape('Herzlichen Gl%FCckwunsch, du hast gewonnen!'+"\n"+'M%F6chtest du noch eine Partie spielen?'))) qt_new_game();
	} else if(qt_karten_sp1.length == 0) {
		if(confirm(unescape('Du hast leider verloren!'+"\n"+'M%F6chtest du noch eine Partie spielen?'))) qt_new_game();
	} else setTimeout("qt_setPhase3()", 3000);
}

// stelle phase 3 dar
function qt_setPhase3() {
	qt_phase = 3;
	qt_showCards(1, 1);
	qt_fillStatus();
	qt_karten_tisch.unshift(qt_karten_sp1.pop(), qt_karten_sp2.pop());
	setTimeout("qt_setPhase1()", 500);
}

// setze variablen
var qt_phase = 1;
var qt_turn = 1;
var qt_choice = 0;
var qt_haswon = 0;
var qt_karten_sp1 = new Array();
var qt_karten_tisch = new Array();
var qt_karten_sp2 = new Array();
var qt_temp = '';
qt_temp = qt_karten.shift();
qt_temp = qt_wertstellungen.shift();

// er�ffne spiel
window.onload = qt_start;
