
	var MODE_TEST        =  -1;
	var MODE_NORMAL      =   1;
	var MODE_PSYCHED     =   2;

	var MODE_TIRED       = 100;
	var MODE_WOOF        = 110;
	var MODE_STAY        = 111;


	var MODE_WOOFY       = 120;
	var MODE_WOOFY_STAY  = 121;

	var MODE_SLEEP       = 200;

	var MODE_WAKEUP       = 210;
	var MODE_WAKEUP_QUICK = 211;


	var MODE_SHAKE_HEAD  = 215;

	var MODE_DOUBLE_TAKE = 220;

	var MODE_LOOK_AROUND = 300;

	var MODE_BALL_GET    = 310;

	var DEFAULT_MODE = MODE_NORMAL;  // change this for diff startup

	var choochoo = new Array();
	var choo_timeouts = new Array();

	var scroll_to;

	var spmsg = null;
	var credits = null;
	var credit_timeout;

	var loading = true;

	var credits_count = 0;


	function roll_credits(){
		start();
		// credit_timeout = setTimeout("add_br()", 10);
	}

	function add_br(){


	    clearTimeout(credit_timeout);

		if (credits_count < 15) {
			credits.innerHTML = "<br /><br /><br />" + credits.innerHTML;
			credit_timeout = setTimeout("add_br()", 100);
			credits_count += 1;
		}
	}


	function start(number_of_chews, default_behavior){

		loading = true;

		if (number_of_chews == undefined) number_of_chews = 1;
		if (default_behavior != undefined) DEFAULT_MODE = default_behavior;

		for (i = 0; i < choo_timeouts.length; i ++){
			if (choo_timeouts[i]) clearTimeout(choo_timeouts[i]);
		}

		if (!spmsg) {
			spmsg = document.getElementById("special_message");

		    if (spmsg) {
				spmsg.innerHTML = "";

				//var crate = document.getElementById("so_crates");
		        //var c_tbody = document.getElementsByTagName("TBODY");

				//for (i = 0; i < c_tbody.length; i++){
				//	if (c_tbody[i].parentNode.id == crate.id) {
				//		c_tbody[i].parentNode.removeChild(c_tbody[i]);
				//	}
				//}

				credits = document.getElementById("credits");

                if (credits) {
				    credit_timeout = setTimeout("roll_credits()", 10);
				    return;
				}
		    }
	    }

		choochoo = new Array();
		choo_timeouts = new Array();

        clear_balls();

        make_chewys(number_of_chews);
        make_ball(10);

        document.documentElement.scrollTop = 0;

        loading = false;
	}


	function clear_balls(){
		var balls = document.getElementsByTagName("SPAN");

		for (i = 0; i < balls.length; i ++){
			if (balls[i].id.indexOf("ball") == 0){
				balls[i].parentNode.removeChild(balls[i]);
			}
		}
	}

	function make_ball(speed){

		if (window.top != window) return;

		var ball = document.createElement("SPAN");
		var ball_inside = document.createElement("SPAN");
		var body_doc = document.getElementsByTagName("BODY");

		ball.appendChild(ball_inside);
		ball.setAttribute("id", "ball");
		ball.className= "ball";

		body_doc[0].appendChild(ball);

		choochoo[choochoo.length] = new ball_personality(ball, choochoo.length);

		choochoo[choochoo.length -1].speed = speed;

		return(choochoo[choochoo.length -1]);

	}

	function make_chewys(number_of_chews){

		var chewys = document.getElementsByTagName("A");

		for (i = 0; i < chewys.length; i ++){
			if (chewys[i].id.indexOf("_chewys") == 0){
				if (chewys[i].id == "_chewys" + number_of_chews) chewys[i].className = "the_links_sel";
				else chewys[i].className = "the_links";
			}
		}
		rebuild_crate(number_of_chews);
    }

	function rebuild_crate(number_of_chews){

		var crate = document.getElementById("so_crates");

		var i_across = 3;
		var i_count  = 0;

		var c_tbody = null;
		var c_row   = null;
		var c_cell  = null;
		var c_span  = null;
		var c_br    = null;

		if (number_of_chews == 4)   i_across = 2;
		if (number_of_chews == 16)  i_across = 4;
		if (number_of_chews == 25)  i_across = 5;

		c_tbody = document.getElementsByTagName("TBODY");

		for (i = 0; i < c_tbody.length; i++){
			if (c_tbody[i].parentNode.id == crate.id) {
				c_tbody[i].parentNode.removeChild(c_tbody[i]);
			}
	    }

		c_tbody = document.createElement("TBODY");

		crate.appendChild(c_tbody);

		while(i_count < number_of_chews){

			c_row = document.createElement("TR");
			c_tbody.appendChild(c_row);

			for (k = 0; k < i_across; k++){

				c_cell = document.createElement("TD");
				c_cell.setAttribute ("id", "chewy_pic" + (i + 1));

				choochoo[choochoo.length] = new chewy(c_cell, choochoo.length, DEFAULT_MODE);

				c_row.appendChild(c_cell);

				for (j = 0; j < 7; j++){
					c_span  = document.createElement("SPAN");
					c_br    = document.createElement("BR");
					c_cell.appendChild(c_span);
					c_cell.appendChild(c_br);
				}

				i_count += 1;
				if (i_count == number_of_chews) break;
			}
		}
	}

	function super_duper (index, prog, delay){
		if (loading) return;
		if (choo_timeouts[index]) clearTimeout(choo_timeouts[index]);
		choo_timeouts[index] = setTimeout("choochoo[" + index + "]." +  prog, delay);
	}

	function super_looper(index){
		if (loading) return;
		if (!choochoo[index]) return;
		choochoo[index].super_looper();
	}

	function db(msg){
		// spmsg.innerHTML = msg + "<br />" + spmsg.innerHTML;
	}


