function handleSubmission()
{
    var solution = document.getElementById('solution').value;
    var quote = document.getElementById('quote').value;
    var numberOfMoves = 0;

    var moves = solution.split(' ');
    var lastSide = '%';
    for (var i = 0; i < moves.length; i++) {
        if (!validMove(moves[i])) {
	    if (moves[i] == '')
	        alert('Extra space at position ' + (i+1));
            else
                alert('Invalid move: '+moves[i]);
            return;
        }
        var side = moves[i].charAt(0);
        if (side != lastSide)
            numberOfMoves++;

        lastSide = side;
    }

    submitEntry(numberOfMoves, solution, quote);
}

var validMoves = [ 'l', 'r', 'u', 'd', 'f', 'b' ];
function validMove(move)
{
    move = move.toLowerCase();
    for (var i = 0; i < validMoves.length; i++) {
        if (move == validMoves[i] || move == validMoves[i]+'2' || move == validMoves[i]+'4' || move == validMoves[i]+"'")
            return true;
    }
    return false;
}

function animcube(scramble, solution)
{
	var cubeWin = window.open("", "AnimCube","status=1,width=350,height=350");
	cubeWin.document.write('<p><b>'+solution+'</b></p>');
	var applet = '';
	applet += '<applet codebase="http://www.ryanheise.com/cube/" code="AnimCube.class" archive="AnimCube.jar" width="150" height="150">';
	applet += '<param name="initmove" value="'+scramble+'">';
	applet += '<param name="move" value="'+solution+'">';
	applet += '<param name="bgcolor" value="ffffff">';
	applet += '</applet>';
	cubeWin.document.write(applet);
}
