
// *************** COPYRIGHT ***************
//
// Original author : SIMON JANSEN - "ASCIIMATION"
//
// Modified by BOURGERY FLORENT for JungleKey.com and JungleKey.fr
//
// You must attribute this original work to their author.
//
// *************** COPYRIGHT ***************


var film = '2\n                                         /~\\\n                                        |oo )\n                                        _\\=/_\n                        ___            /  _  \\\n                       / ()\\          //|/.\\|\\\\\n                     _|_____|_       ||  \\_/  ||\n                    | | === | |      || |\\ /| ||\n                    |_|  O  |_|       # \\_ _/  #\n                     ||  O  ||          | | |\n                     ||__*__||          | | |\n                    |~ \\___/ ~|         []|[]\n\\                   /=\\ /=\\ /=\\         | | |\n  \\_________________[_]_[_]_[_]________/_]_[_\\_____________________\n60\n                                        /~\\\n                                       ( oo|\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n30\n                                        /~\\\n                                       |oo )     What a desolate\n                                       _\\=/_      place this is.\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n20\n                                        /~\\\n                                       ( oo|     What a desolate\n                                       _\\=/_      place this is.\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|      #  \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )     What a desolate\n                                       _\\=/_      place this is.\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|      #  \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n5\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n4\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n3\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n2\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n2\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n2\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n4\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n5\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___        #   /  _  \\\n                      /() \\        \\\\//|/.\\|\\\\\n                    _|_____|_       \\/  \\_/  ||\n                   | | === | |         |\\ /| ||\n                   |_|  O  |_|         \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n30\n                                        /~\\\n                                       |oo )      Well I\'m not\n                                       _\\=/_       going that\n                       ___        #   /  _  \\         way!\n                      /() \\        \\\\//|/.\\|\\\\\n                    _|_____|_       \\/  \\_/  ||\n                   | | === | |         |\\ /| ||\n                   |_|  O  |_|         \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n30\n                                        /~\\\n                                       |oo )      Well I\'m not\n                                       _\\=/_       going that\n                       ___         #  /  _  \\         way!\n                      /() \\        \\\\//|/.\\|\\\\\n                    _|_____|_       \\/  \\_/  ||\n                   | | === | |         |\\ /| ||\n                   |_|  O  |_|         \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n20\n                                        /~\\\n                                       |oo )      Well I\'m not\n                                       _\\=/_       going that\n                       ___         #  /  _  \\         way!\n                      /() \\        \\\\//|/.\\|\\\\\n                    _|_____|_       \\/  \\_/  ||\n                   | | === | |         |\\ /| ||\n                   |_|  O  |_|         \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )      Well I\'m not\n                                       _\\=/_       going that\n                       ___         #  /  _  \\         way!\n                      / ()\\        \\\\//|/.\\|\\\\\n                    _|_____|_       \\/  \\_/  ||\n                   | | === | |         |\\ /| ||\n                   |_|  O  |_|         \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )      Well I\'m not\n                                       _\\=/_       going that\n                       ___            /  _  \\         way!\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n10\n                                        /~\\\n                                       |oo )\n                                       _\\=/_\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n20\n                                        /~\\\n                                       |oo )      It\'s much too\n                                       _\\=/_          rocky.\n                       ___            /  _  \\\n                      / ()\\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n30\n                                        /~\\\n                                       |oo )      It\'s much too\n                                       _\\=/_          rocky.\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|      #  \\_ _/  #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n20\n                                        /~\\\n                                       |oo )      It\'s not a 6oog7e\n                                       _\\=/_          webpage.\n                       ___            /  _  \\\n                      /() \\          //|/.\\|\\\\\n                    _|_____|_       ||  \\_/  ||\n                   | | === | |      || |\\ /| ||\n                   |_|  O  |_|       # \\_ _/ #\n                    ||  O  ||          | | |\n                    ||__*__||          | | |\n                   |~ \\___/ ~|         []|[]\n                   /=\\ /=\\ /=\\         | | |\n \\_________________[_]_[_]_[_]________/_]_[_\\______________________\n1\n'.split('\n');


var LINES_PER_FRAME = 14;
var DELAY_NORMAL = 47;
var DELAY_FAST = 17;
var DELAY_VERYFAST = 1;

var g_currentFrame = 0;
var g_updateDelay = 47;
var g_frameStep = 1;
var g_timerHandle = null;


function validateFrame(frameNumber)
{
	return ( frameNumber > 0 && frameNumber < Math.floor( film.length / LINES_PER_FRAME ) )
}

function displayFrame(frameNumber)
{
	if( validateFrame(frameNumber) != true )
		return;

	var screen = document.getElementById('screen');

	while(screen.firstChild)
    	screen.removeChild( screen.firstChild );

    for (var line = 1; line < 14; line++)
    {
    	var lineText = film[ (g_currentFrame * LINES_PER_FRAME) + line];
    	if( !lineText || lineText.length < 1 )
    		lineText = ' ';

    	var div = document.createElement('div');
    	div.style.whiteSpace = 'pre';
    	div.appendChild( document.createTextNode( lineText ) );

    	screen.appendChild( div );
    }
}

function updateDisplay()
{
	if(g_timerHandle)
		clearTimeout(g_timerHandle);

    displayFrame(g_currentFrame);

    if( g_frameStep != 0 )
    {
    	var nextFrameDelay = film[ g_currentFrame * LINES_PER_FRAME ] * g_updateDelay;

    	var nextFrame = g_currentFrame + g_frameStep;

    	if(validateFrame(nextFrame) == true)
			g_currentFrame = nextFrame;

        g_timerHandle = setTimeout( updateDisplay, nextFrameDelay );
    }
}

function Start()
{
    g_currentFrame = 0;
    Play();
}

function Stop()
{
    g_frameStep = 0;
    updateDisplay();
}

function FrameAdvance()
{
	g_frameStep = 0;

    var nextFrame = g_currentFrame + 1;
	if(validateFrame(nextFrame) == true)
		g_currentFrame = nextFrame;

	updateDisplay();
}

function Play()
{
    g_frameStep = 1;
    g_updateDelay = 47;
	updateDisplay();
}

function End()
{
	g_frameStep = 0;
    g_currentFrame = Math.floor( film.length / LINES_PER_FRAME ) - 1;
    updateDisplay();
}
