<!--
var jumpPeg = null;
var pos = [
[0,0], 
[1,5,84],
[2,4,63], [2,6,106],
[3,3,42], [3,5,85], [3,7,128],
[4,2,21], [4,4,64], [4,6,107], [4,8,150], 
[5,1,0], [5,3,43], [5,5,86], [5,7,129], [5,9,172]
]

var pegArr = new Array(16);

var VALID = 1; var FULL = 2;var EMPTY = 4;
var prevId = 0;var inMove = false;
var idArr = new Array();

function initScr()
{
	var idx = 1;
	
	var str = '<div id="seg_1"><div class="peg_h" id="p_' + idx + '" onClick="touchSpot(' + idx + ');"></div></div>';idx++;
	for (var k = 2; k < 6; k++)
	{
		str += '<div id="seg_' + k + '">';
	    for (var m = 0; m < k; m++)
	    {
	    	str += '<div class="peg_f" id="p_' + idx + '" onClick="touchSpot(' + idx + ');"></div>'; idx++;
	    }
		str += '</div>';
	}
	
    for (var i = 1; i < 16; i++) {pegArr[i] = 1;}; pegArr[1] = 0;
	var o = document.getElementById("pegsolitaire_tbrd"); if (o != null) {o.innerHTML = str;}
	jumpPeg = document.createElement("div");
	jumpPeg.className = "peg_j";
	jumpPeg.style.left = "0px";
	jumpPeg.style.top = "0px";
	jumpPeg.style.visibility = "hidden";
	o.appendChild(jumpPeg);
	
}


function submitfrm()
{
	var f = document.getElementById("pegsolitaire_tbrd");
	if (f != null) 
	{
	    var cnt = 0;
		for (var k = 1; k < 34; k++)
		{
			if (pegArr[k] == 1) {cnt++;}
		}

		var str = ""; 
		if (cnt == 1) {str = "Congratulations!!<br/>";}
		else if (cnt < 8) {str = "Pretty good.<br/>";}
		str += "Pegs left: " + cnt;
		f.innerHTML = "";
		var o = f.appendChild(document.createElement('div'));
		o.innerHTML='<input type="hidden" name="helppage" value="pegsolitaire_thelp.html" />';
		var o = f.appendChild(document.createElement('div'));
		o.innerHTML='<input type="hidden" name="gamepage" value="pegsolitaire_t.html" />';
		o = f.appendChild(document.createElement('div'));
		o.innerHTML='<input type="hidden" name="msg" value="' + str + '" />';
	}

	document.pegsolitaire_t_frm.submit();
}


function changeClass(n, c)
{
	var o = document.getElementById("p_" + n); if (o != null) {o.className = c;}
}

function checkSide(n, roff, coff)
{
	var row = pos[n][0] + roff;
	var col = pos[n][1] + coff;
	
	if (row < 1 || row > 5 || col < 1 || col > 9) {return 0;}
	var id = 0;
	for (var i = 1; i < 16; i++) { if (pos[i][0] == row && pos[i][1] == col) {id = i;break;}}
	if (id == 0) {return 0;}
	var flags = VALID;
	if (pegArr[id] == 1) {flags |= FULL;} else {flags |= EMPTY;}
	return id*1000 + flags;
}

function getJumpableIds(n, arr)
{
    while (arr.length > 0) {arr.pop();}
        
	var id_1 = checkSide(n, 0, -2);var id_2 = 0;
	if ((id_1 & VALID) && (id_1 & FULL)) 
	{
	    id_1 = Math.floor(id_1/1000);
	    id_2 = checkSide(id_1, 0, -2);
	    if ((id_2 & VALID) && (id_2 & EMPTY)) {arr.push([id_1,Math.floor(id_2/1000)]);}
	}
	
	id_1 = checkSide(n, 0, 2);
	if ((id_1 & VALID) && (id_1 & FULL)) 
	{
	    id_1 = Math.floor(id_1/1000);
	    id_2 = checkSide(id_1, 0, 2);
	    if ((id_2 & VALID) && (id_2 & EMPTY)) {arr.push([id_1,Math.floor(id_2/1000)]);}
	}
	
	id_1 = checkSide(n, -1, -1);
	if ((id_1 & VALID) && (id_1 & FULL)) 
	{
	    id_1 = Math.floor(id_1/1000);
	    id_2 = checkSide(id_1, -1, -1);
	    if ((id_2 & VALID) && (id_2 & EMPTY)) {arr.push([id_1,Math.floor(id_2/1000)]);}
	}

	id_1 = checkSide(n, -1, 1);
	if ((id_1 & VALID) && (id_1 & FULL)) 
	{
	    id_1 = Math.floor(id_1/1000);
	    id_2 = checkSide(id_1, -1, 1);
	    if ((id_2 & VALID) && (id_2 & EMPTY)) {arr.push([id_1,Math.floor(id_2/1000)]);}
	}
	
	id_1 = checkSide(n, 1, 1);
	if ((id_1 & VALID) && (id_1 & FULL)) 
	{
	    id_1 = Math.floor(id_1/1000);
	    id_2 = checkSide(id_1, 1, 1);
	    if ((id_2 & VALID) && (id_2 & EMPTY)) {arr.push([id_1,Math.floor(id_2/1000)]);}
	}

	id_1 = checkSide(n, 1, -1);
	if ((id_1 & VALID) && (id_1 & FULL)) 
	{
	    id_1 = Math.floor(id_1/1000);
	    id_2 = checkSide(id_1, 1, -1);
	    if ((id_2 & VALID) && (id_2 & EMPTY)) {arr.push([id_1,Math.floor(id_2/1000)]);}
	}
}

function touchSpot(n) 
{
    if (inMove) {return;}
	for (var i = 0; i < idArr.length; i++) {changeClass(idArr[i][1], "peg_h");}	
    if (prevId > 0)
    {
        if (pegArr[prevId] == 1 && pegArr[n] == 0)
        {        
			for (var i = 0; i < idArr.length; i++) 
			{
				if (idArr[i][1] == n) 
				{
					startMove(prevId, idArr[i][0], idArr[i][1]);
				}
			}
        }
    }
    while (idArr.length > 0) {idArr.pop();}

   
    if (pegArr[n] == 0) { return; }   
    
    showJumpPeg(n);
    
	getJumpableIds(n, idArr);
	if (idArr.length == 0) {prevId = 0;setTimeout("hideJumpPeg(" + n + ")", 100);}
	else if (idArr.length == 1)
	{	    
		startMove(n, idArr[0][0], idArr[0][1]);
	    idArr.pop();
	}
	else
	{
	    for (var i = 0; i < idArr.length; i++) {changeClass(idArr[i][1], "peg_t");}
	    prevId = n;
	}
}

function startMove(frm, mid, to)
{
    inMove = true;
    changeClass(frm, "peg_h"); pegArr[frm] = 0;
    jumpPeg.style.className = "peg_m";
    moveSlow(frm, mid, to);
}

function isGameOver()
{
    var tstArr = new Array();var done=true;
    for (var k = 1; k < 16 && done; k++)
    {
		if (pegArr[k] == 1) {getJumpableIds(k, tstArr); if (tstArr.length > 0) {done=false;}}
    }
    return done;
}

function endMove(frm, mid, to)
{
    changeClass(mid, "peg_h"); pegArr[mid] = 0;
    changeClass(to, "peg_f"); pegArr[to] = 1;
    hideJumpPeg();
    jumpPeg.style.className = "peg_j";
    if (isGameOver()) 
    {
        var str = ""; str += ('<div style="float:right;"><div class="btntxt">No moves possible:&nbsp;&nbsp;</div><div id="lbtn"></div><div id="mbtn" onClick="submitfrm();">OK</div><div id="rbtn"></div></div>');
        var o = document.getElementById("btnbrd"); if (o != null) {o.innerHTML = str;}
    }
    else {inMove = false;}
}

function moveSlow(n0, n1, n2)
{
	var xpos = getLeft(n2);
	var ypos = getTop(n2);
	var xsign = 1; var ysign = 1; //plus or minus
	
	var x = parseInt(jumpPeg.style.left);
	var y = parseInt(jumpPeg.style.top);
	var off_x = xpos - x; if (off_x < 0) {xsign = -1;}; if (Math.abs(off_x) > 5) {off_x = 5 * xsign;}
	var off_y = ypos - y; if (off_y < 0) {ysign = -1;}; if (Math.abs(off_y) > 5) {off_y = 5 * ysign;}
	x += off_x; y += off_y;
	jumpPeg.style.left = x + 'px';jumpPeg.style.top = y + 'px';
	if ((x != xpos) || (y != ypos)) {setTimeout("moveSlow(" + n0 + "," + n1 + "," + n2 + ")", 10);}
	else {endMove(n0,n1,n2);}
}

function showJumpPeg(n)
{
    jumpPeg.style.left = getLeft(n) + 0 + "px";
    jumpPeg.style.top = getTop(n) - 6 + "px";
	jumpPeg.style.visibility = "visible";
}

function hideJumpPeg()
{
	jumpPeg.style.visibility = "hidden";
}

function getLeft(n)
{
    return 59 + pos[n][2];
}

function getTop(n)
{
    return 49 + (pos[n][0] - 1)*43;
}




-->


