// BAHNOPOLY fuer Campact.de
// (c) 2007 by Klaus Kappel
// $Id: spiel.js,v 1.2 2007/09/03 10:16:04 luki Exp luki $

// Ziel nach dem Spiel
direction = "/bahn/wk1/wkmail";

// Spielfelder zu div-id und img-name zuordnen
var fld = new Array("","b28","b27","b26","b25","b24","b23","b22","b20","b17","b14","b12","b08","b01","b02","b03","b04","b05","b06","b07","b11","b13","b16","b18","b21");
var fn = new Array(0,28,27,26,25,24,23,22,20,17,14,12,8,1,2,3,4,5,6,7,11,13,16,18,21);
// Spielgeld zum Start
var geld = 800;
var id = 1;
var x;
var y;

// Verzoegerung beim Bewegen der Figur
var verz = 150

// wg. IE Bombadibilität
function getObjByName(name){
var obj;
if(document.getElementsByName) obj = document.getElementsByName(name);
else if(document.layers) obj = document.layers[name];
else if(document.all) obj = document.all[name];
return obj;
}

function getkoor(n) {
 var id = "b-"+fn[n];
 var xmargin = 50;
 var ymargin  = 10;
 // if(n > 22) alert("[debug] n: "+n+"; id: "+id);
 div = document.getElementById(id);
 x = parseInt(Element.getStyle(div,"left")) + 15 + xmargin;
 y = parseInt(Element.getStyle(div,"top")) + 15 + ymargin;
 //alert(id + " x: " + x + " y: " + y);
}

// Hoover Spielfelder laden
var bld = "Bilder/b_";
var bl  = new Array();
var blh = new Array();

for (i = 1; i < 25; i++) {
  bl[i] = new Image();
  bl[i].src =  bld + fn[i] + ".jpg";
  blh[i] = new Image();
  blh[i].src =  bld + "hover_" + fn[i] + ".jpg";
}

// Wuerfel-Animation laden
var wrfl = "Bilder/wuerfel";
var wrf = new Array();
var wrg = new Array();
var i;

for (i = 1; i < 7; i++) {
  wrf[i] = new Image();
  wrf[i].src =  wrfl + "1_" + i + ".gif";
  wrg[i] = new Image();
  wrg[i].src =  wrfl + "2_" + i + ".gif";
}

// Guthaben berechnen
function betrag(kosten) {
 geld = geld - kosten;
 if (geld <= 0) {
  geld = 0;
  alert("Genug verloren?");
  // redirect zur Unterschriftenliste
  top.location.href = direction;
 }
 var gtext = document.createTextNode(geld + "€");
 document.getElementById("betrag").replaceChild(gtext, document.getElementById("betrag").firstChild);
}

// Infotext, Erlaeuterung und Icon aktualisieren
function info(feldnr) {
 var gtext = document.createTextNode(Ereignis[feldnr-1]);
 var gerle = document.createTextNode(Erluterung[feldnr-1]);
 var gtitle = document.createTextNode(Spielfeld[feldnr-1]);
 document.getElementById("infotext").replaceChild(gtext, document.getElementById("infotext").firstChild);
if (Erluterung[feldnr-1] != "") {
 document.getElementById("erlaeuterung").replaceChild(gerle, document.getElementById("erlaeuterung").firstChild);
// div einblenden
// css-style = display: block;
  document.getElementById('erlaeuterung').style.display = "block";
}
 document.getElementById("titel").replaceChild(gtitle, document.getElementById("titel").firstChild);

 document.images["icon"].src = SpielfeldIcon[feldnr-1];
}

// Würfeln
var a = 1;
var p = 1;
var b = 1;
var c = 1;
var n = 1;

function wuerfeln() {
  b = Math.round(Math.random() * 5 + 1);
  document.wrfl1.src = wrf[b].src;
  c = Math.round(Math.random() * 5 + 1);
  document.wrfl2.src = wrg[c].src;
  n++;
  // Erlaeuterung ausblenden
  // display:none;
  document.getElementById('erlaeuterung').style.display = "none";

  if (n > 10) {	//zehn mal würfel-Animation Zeigen
     n = 0;
     document.images[fn[a]-1].src = bl[a].src;	// Bild auf Hover umstellen
     a = (b + c + a - 1) % 24 + 1;	// Neues Feld berechnen
     betrag(Kosten[a-1]);		// Guthaben berechnen
     document.images[fn[a]-1].src = blh[a].src;
     moveto(a);				// Spielfigur bewegen
     info(a);				// Infoblock anzeigen
  }
  else
  window.setTimeout("wuerfeln();", 150);
}

function roundabout() {
  document.Images['b01'].src = blh[3].src;
}

function moveto(tgt) {
	var count = 1;
	var ziel = (p<tgt?tgt:tgt+24);
	for(i=p+1;i<=ziel;i++) {	// Schritte Iterieren
		setTimeout("movestep("+((i-1)%24+1)+");", verz * count);
		count++;		
	}	
	p = tgt;
}

function movestep(to) {
	var oldx = x;
	var oldy = y; 
	getkoor(to);
	
	document.getElementById('spieler').style.left = x;
	document.getElementById('spieler').style.top  = y;
}
