function field(x,y)
{
	if (window.scrisend) { return; }

	var l = window.scrletters;
	var t = document.scrabble.addword.value.toUpperCase().replace(/[^A-ZÄÖÜ]/,'');
	var d = (document.scrabble.adddirection[0].checked*1) + (document.scrabble.adddirection[1].checked*2);
	var j = '';

	for (var cx=1;cx<=window.scrboardwidth;cx++) { for (var cy=1;cy<=window.scrboardheight;cy++) { var f = document.getElementById('fx'+cx+'y'+cy); if ((f) && (f.className == 'fieldnew')) { f.innerHTML = ''; f.className = 'fieldempty'; } } }
	if (t.length <= 1) { alert('Das zu schreibende Wort muss aus mindestens 2 Buchstaben bestehen.'); return;  }
	if (!document.getElementById('fx'+(d==1?x+t.length-1:x)+'y'+(d==2?y+t.length-1:y))) { alert('Das passt da so nicht hin.'); return; }

	if (window.scrisstart)
	{
		var m = '';
		for (var i=0;i<t.length;i++) { var p = l.indexOf(t.substr(i,1)); if (p<0) { p = l.indexOf(' '); if (p>=0) { j+= t.substr(i,1); } } if (p<0) { m+=' '+t.substr(i,1); }  l = l.substr(0,p)+l.substr(p+1); }
		if (m != '') { alert('Das kannst du mit deinen Buchstaben nicht schreiben. Fehlen tut:'+m); return; }
		var overstart = 0;
		for (var i=0;i<t.length;i++) { if (((d==1?x+i:x)==window.scrstartx)&&((d==2?y+i:y)==window.scrstarty)) { overstart = 1; } }
		if (!overstart) { alert('Das erste Wort muss über das Startfeld (grün) gelegt werden.'); return; }
		for (var i=0;i<t.length;i++) { var f = document.getElementById('fx'+(d==1?x+i:x)+'y'+(d==2?y+i:y)); if ((f) && (f.className != 'fieldempty')) { return; } }
	}
	else
	{
		var u = '';
		var hasothers = 0;
		if ((d==1)&&(x>1)&&(document.getElementById('fx'+(x-1)+'y'+y).className != 'fieldempty')) { alert('Das Feld neben deinem gewünschten Wortstartpunkt ist bereits gefüllt - Bitte gebe das komplette Wort das du schreiben willst an (inklusive allen schon vorhandenen Buchstaben).'); return; }
		if ((d==2)&&(y>1)&&(document.getElementById('fx'+x+'y'+(y-1)).className != 'fieldempty')) { alert('Das Feld über deinem gewünschten Wortstartpunkt ist bereits gefüllt - Bitte gebe das komplette Wort das du schreiben willst an (inklusive allen schon vorhandenen Buchstaben).'); return; }
		if ((d==1)&&(x+t.length-1<window.scrboardwidth)&&(document.getElementById('fx'+(x+t.length)+'y'+y).className != 'fieldempty')) { alert('Das Feld neben deinem gewünschten Wortendpunkt ist bereits gefüllt - Bitte gebe das komplette Wort das du schreiben willst an (inklusive allen schon vorhandenen Buchstaben).'); return; }
		if ((d==2)&&(y+t.length-1<window.scrboardheight)&&(document.getElementById('fx'+x+'y'+(y+t.length)).className != 'fieldempty')) { alert('Das Feld unter deinem gewünschten Wortendpunkt ist bereits gefüllt - Bitte gebe das komplette Wort das du schreiben willst an (inklusive allen schon vorhandenen Buchstaben).'); return; }
		for (var i=0;i<t.length;i++)
		{
			var f = document.getElementById('fx'+(d==1?x+i:x)+'y'+(d==2?y+i:y));
			if ((f) && (f.className != 'fieldfilled')) { u += t.substr(i,1); }
			else
			{
				if (t.substr(i,1) != f.innerHTML) { alert('Der vorhandene Buchstabe \''+f.innerHTML+'\' passt nicht zu dem Wort das du legen willst (Buchstabe \''+t.substr(i,1)+'\').'); return; }
				hasothers++; 
			}
		}
		if (!hasothers)
		{
			for (var i=0;i<t.length;i++)
			{
				var f1 = document.getElementById('fx'+(d==1?x+i:x-1)+'y'+(d==2?y+i:y-1));
				var f2 = document.getElementById('fx'+(d==1?x+i:x+1)+'y'+(d==2?y+i:y+1));
				if (((f1)&&(f1.className == 'fieldfilled')) || ((f2)&&(f2.className == 'fieldfilled'))) { hasothers++; }
			}
			if (!hasothers) { alert('Es muss mindestens über oder direkt neben einen schon vorhandenen Buchstaben gelegt werden.'); return; }
		}
		if (u.length == 0) { alert('Es muss etwas neues gelegt werden.'); return; }
		var m = '';
		for (var i=0;i<u.length;i++) { var p = l.indexOf(u.substr(i,1)); if (p<0) { p = l.indexOf(' '); if (p>=0) { j+= u.substr(i,1); } } if (p<0) { m+=' '+u.substr(i,1); }  l = l.substr(0,p)+l.substr(p+1); }
		if (m != '') { alert('Das kannst du mit deinen Buchstaben nicht schreiben. Fehlen tut:'+m); return; }
	}

	for (var i=0;i<t.length;i++)
	{
		var f = document.getElementById('fx'+(d==1?x+i:x)+'y'+(d==2?y+i:y));
		if ((f) && (f.className == 'fieldempty'))
		{
			f.innerHTML = (j.indexOf(t.substr(i,1))>=0?' ':t.substr(i,1));
			if (j.indexOf(t.substr(i,1))>=0) { j = j.substr(0,j.indexOf(t.substr(i,1)))+j.substr(j.indexOf(t.substr(i,1))+1); }
			f.className = 'fieldnew';
		}
	}
	document.scrabble.addok.disabled = false;
	document.scrabble.addx.value = x;
	document.scrabble.addy.value = y;
}

var myactive = 0;
function myfield(x)
{
	if (myactive == x) { document.getElementById('my'+x).className = 'fieldmy'; myactive = 0; return; }
	if (myactive == 0) { document.getElementById('my'+x).className = 'fieldmysel'; myactive = x; return; }
	if (myactive == -1)
	{
		var f = document.getElementById('my'+x);
		if (f) { f.className = (f.className == 'fieldmy' ? 'fieldmysel' : 'fieldmy'); }
		var newletterexch = '';
		for (var i=1;i<=window.scrletteronrack;i++) { var f = document.getElementById('my'+i); if ((f)&&(f.className=='fieldmysel')) { newletterexch += document.getElementById('mylet'+i).innerHTML; } }
		document.scrabble.letterexch.value = newletterexch.replace(/ /g, "+");
	}
	else
	{
		document.getElementById('my'+myactive).className = 'fieldmy';
		var a = document.getElementById('mylet'+myactive).innerHTML;
		document.getElementById('mylet'+myactive).innerHTML = document.getElementById('mylet'+x).innerHTML;
		document.getElementById('mylet'+x).innerHTML = a;
		a = document.getElementById('myscr'+myactive).innerHTML;
		document.getElementById('myscr'+myactive).innerHTML = document.getElementById('myscr'+x).innerHTML;
		document.getElementById('myscr'+x).innerHTML = a;
		myactive = 0;
		var newlettersort = '';
		for (var i=1;i<=window.scrletteronrack;i++) { var f = document.getElementById('mylet'+i); if (f) { newlettersort += f.innerHTML; } }
		document.scrabble.lettersort.value = newlettersort.replace(/ /g, "+");
	}
}

function exchange()
{
	var b = document.getElementById('exchimg');
	var s = document.getElementById('exchsub');
	if (s.style.display == 'none')
	{
		b.src = window.scrimgdir+'EXCH.PNG';
		s.style.display = '';
		document.getElementById('sortsub').style.display = 'none';
		myactive = -1;
	}
	else
	{
		b.src = window.scrimgdir+'EXCHNO.PNG';
		s.style.display = 'none';
		document.getElementById('sortsub').style.display = '';
		myactive = 0;
	}
	for (var i=1;i<=window.scrletteronrack;i++) { var f = document.getElementById('my'+i); if (f) { f.className = 'fieldmy'; } }
}

function changeObjectVisibility(id, v)
{
	var s = document.getElementById(id).style;
	if(s) { s.visibility = v; return true; } else { return false; }
}

function showPopup(e, mode, letter, points, user, settime, byjoker)
{
	if(!e) { return false; }
	var id = 'divInfo';
	hideCurrentPopup();
	e.cancelBubble = true;
	var newx = (e.pageX)?e.pageX + 5:e.x + 5 + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newy = (e.pageY)?e.pageY + 5:e.y + 5 + ((document.body.scrollTop)?document.body.scrollTop:0);
	var o = document.getElementById(id)
	if (o)
	{
		var s = document.getElementById(id).style;
		if(s) { s.left = newx; s.top = newy; }
		o.innerHTML = '';

		var lines = 0;

		if ((letter) && (letter.length) && (byjoker)) { o.innerHTML += (o.innerHTML.length?'<br>':'')+'Blankostein als: <b>'+letter+'</b>'; lines++; }
		else if ((letter) && (letter.length) && (points)) { o.innerHTML += (o.innerHTML.length?'<br>':'')+'Buchstabe: <b>'+letter+'</b> - Punkte: <b>'+points+'</b>'; lines++; }

		if ((user)&&(user.length)) { o.innerHTML += (o.innerHTML.length?'<br>':'')+'Von: <b>'+user+'</b>'; lines++; }
		if ((settime)&&(settime.length)) { o.innerHTML += (o.innerHTML.length?'<br>':'')+'Zeit: <b>'+settime+'</b>'; lines++; }
		if (byjoker) { o.innerHTML += (o.innerHTML.length?'<br>':'')+'Gelegt durch <b>Blankostein</b>'; lines++; }
		if ((mode) && (mode != 'START'))
		{
			o.innerHTML += (o.innerHTML.length?'<br><br>':'')+'Prämienfeld: ';
			o.innerHTML += ((mode=='LETTER2'||mode=='L2')?'Doppelter Buchstabenwert':((mode=='LETTER3'||mode=='L3')?'Dreifacher Buchstabenwert':''));
			o.innerHTML += ((mode=='WORD2'||mode=='W2')?'Doppelter Wortwert':((mode=='WORD3'||mode=='W3')?'Dreifacher Wortwert':''));
			lines += 2;
		}
		if (o.innerHTML == '') { return false; }
		if(changeObjectVisibility(id, 'visible')) { window.currentlyVisiblePopup = id; return true; } else { return false; }
	}
}

function hideCurrentPopup() { if(window.currentlyVisiblePopup) { changeObjectVisibility(window.currentlyVisiblePopup, 'hidden'); window.currentlyVisiblePopup = false; } }

function showhelp() { var c = document.getElementById('helpimg'); for (var i=1;i<=80;i++) { var d = document.getElementById('help_'+i); if (d) { if (d.style.display == 'none') { d.style.display = ''; c.src = window.scrimgdir+'COLLAPSE.GIF'; } else { d.style.display = 'none'; c.src = window.scrimgdir+'EXPAND.GIF'; } } else { return; } } }

function showscore() { var c = document.getElementById('scoreimg'); for (var i=1;i<=80;i++) { var d = document.getElementById('score_'+i); if (d) { if (d.style.display == 'none') { d.style.display = ''; c.src = window.scrimgdir+'COLLAPSE.GIF'; } else { d.style.display = 'none'; c.src = window.scrimgdir+'EXPAND.GIF'; } } else { return; } } }

function showrounds() { var c = document.getElementById('roundsimg'); for (var i=1;i<=80;i++) { var d = document.getElementById('rounds_'+i); if (d) { if (d.style.display == 'none') { d.style.display = ''; c.src = window.scrimgdir+'COLLAPSE.GIF'; } else { d.style.display = 'none'; c.src = window.scrimgdir+'EXPAND.GIF'; } } else { return; } } }

function FillTable(board_width, board_height)
{
	for (var y=1;y<=board_height;y++)
	{
		document.write('<tr valign="center">');
		for (var x=1;x<=board_width;x++)
		{
			if (r[x+'|'+y])
			{
				var s = r[x+'|'+y].split("<>");
				var bgc = (s[0]=='START'?'#54B456':(s[0]=='L2'?'#B5D5D5':(s[0]=='L3'?'#009ED8':(s[0]=='W2'?'#F6937C':(s[0]=='W3'?'#F25646':'#B5A35C')))));
				document.write('<td style="background-color: '+bgc+';" onclick="field('+x+','+y+');">');
				if (s.length > 1)
				{
					document.write('<div onmouseover="showPopup(event, \''+s[0]+'\', \''+s[1]+'\', '+s[2]+', \''+s[3]+'\', \''+s[4]+'\', '+s[5]+');" onmouseout="hideCurrentPopup();" id="fx'+x+'y'+y+'" class="fieldfilled" style="'+(s[5]==1?'background-color: #E3E4BE; color: #979477':(s[6]==1?'background-color: #C0E5BD':''))+'">'+s[1]+'</div>');
				}
				else
				{
					document.write('<div '+(s[0]=='START'?'':'onmouseover="showPopup(event, \''+s[0]+'\');" onmouseout="hideCurrentPopup();" ')+'id="fx'+x+'y'+y+'" class="fieldempty">&nbsp;</div>');
				}
			}
			else
			{
				document.write('<td style="background-color:#B5A35C" onclick="field('+x+','+y+');"><div id="fx'+x+'y'+y+'" class="fieldempty">&nbsp;</div>');
			}
			document.write('</td>');
		}
		document.write('</tr>');
	}
}

