/*******************************************************           TITLE: "Bunny Trail Maze"          AUTHOR: ROBERT GOMEZ         CONTACT: rwgomez@hotmail.com         VERSION: v.5            DATE: March 17, 2000       COPYRIGHT: 2000 MoonRock Software Inc.THIS CODE IS THE MANBEAST ENGINE BY ROBERT GOMEZ ANDIS COPYRIGHT (C)2000 MOONROCK SOFTWARE INC. FEEL FREETO USE THE CODE BUT ALWAYS INCLUDE AN AKNOWLEDGEMENTAND LINK TO MOONROCK'S WEBSITE www.moonrock.com.THE CODE IS FREE, BUT THE GRAPHICS ARE NOT, AND THEYMAY NOT BE REPRODUCED IN ANY FORM WITHOUT THEEXPRESSED WRITTEN PERMISSION OF MOONROCK SOFTWARE.********************************************************///Preload Graphicsg1 = new Image();g1.src = "images/0.gif";g2 = new Image();g2.src = "images/1.gif";g3 = new Image();g3.src = "images/2.gif";g4 = new Image();g4.src = "images/3.gif";g5 = new Image();g5.src = "images/4.gif";g6 = new Image();g6.src = "images/5.gif";g7 = new Image();g7.src = "images/6.gif";g8 = new Image();g8.src = "images/7.gif";g9 = new Image();g9.src = "images/8.gif";g10 = new Image();g10.src = "images/9.gif";g11 = new Image();g11.src = "images/inven_clipper.gif";g12 = new Image();g12.src = "images/movetext.gif";g13 = new Image();g13.src = "images/spacer.gif";g14 = new Image();g14.src = "images/tile_clipper.gif";g15 = new Image();g15.src = "images/tile_egg.gif";g16 = new Image();g16.src = "images/tile_egg2.gif";g17 = new Image();g17.src = "images/tile_egg3.gif";g18 = new Image();g18.src = "images/tile_egg4.gif";g19 = new Image();g19.src = "images/tile_ex.gif";g20 = new Image();g20.src = "images/tile_flowers.gif";g21 = new Image();g21.src = "images/tile_grass.gif";g22 = new Image();g22.src = "images/tile_hedge.gif";g23 = new Image();g23.src = "images/tile_hedgebottom.gif";g24 = new Image();g24.src = "images/tile_hole.gif";g25 = new Image();g25.src = "images/tile_player.gif";g26 = new Image();g26.src = "images/tile_playerwall.gif";g27 = new Image();g27.src = "images/tile_secret.gif";g28 = new Image();g28.src = "images/tile_treetop.gif";g29 = new Image();g29.src = "images/tile_treetrunk.gif";g30 = new Image();g30.src = "images/tile_wall.gif";g31 = new Image();g31.src = "images/tile_wallexit.gif";g32 = new Image();g32.src = "images/tile_wallhedge.gif";g33 = new Image();g33.src = "images/tile_wallhedgebottom.gif";g34 = new Image();g34.src = "images/tile_walltop.gif";g35 = new Image();g35.src = "images/tile_walltopexit.gif";g36 = new Image();g36.src = "images/x.gif";// player starting position and other Globalsvar playerx = 4;			// player x positionvar playery = 4;			// player y positionvar egg = 0;var clipper = 0;			// set to 1 to give player a hedgeclippervar startTime = new Date();var firstClipper = 0;var firstTwoClipper = 0;var secret = 0;var secretMess = 1;var maxEggs = 61;  // Total number of eggs one can collect on a level.// GAME MAPvar num ="0123456789 123456789 123456789 123456789 123456789 12345679" var mr0 ="HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXXXXHHHHHHHHHHHHHHHHH"var mr1 ="HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHXnnXHHHHHHHHHHHHHHHHH"var mr2 ="hhhXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXHHXXXXXXXXXXXXXXhhhh"var mr3 ="   XwwXwwwwXwwwwwnwnwwwwXXwwwnwwwwXNNNNhhXnNXNNNNNNNNNX  F "var mr4 ="   XO X    XC    HeHE   wn  KH   cX  K eFnHcXEFFF eKKFXT   "var mr5 ="  TX  XEX FXF F  H hhhT  h HhhFhhhw XXXThhH nFKFFFF  FXtXXX"var mr6 ="  tX  XXXXKX  H hh    tT   h        wwwtKKh HFcFFCFF FX www"var mr7 ="T  X  wwww whhH    H   te     X   X  F      HFFFFFFFFXX H  "var mr8 ="t HX        c Hhhh H H   H HXXXXXXXFXXXXXXXXXFFFFFFF wX h  "var mr9 ="HHHX hTF  Tff h C  HhhhhhhhhwwwwwwwFwwwwwXwwnK K F  c X   H"var mr10="hhhX et   tE    HH H    c      C       e XK hhhhFh  K X  HH"var mr11="   XXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXX w        FhhhX HHH"var mr12=" F XwwXwX XwwwwwwwXw wwwwwnwwwwXwwwXwnwX    XXE       XHHHH"var mr13="  TXE w X XeC     X       h  e X   w H XXXXXXXXXXXXXX Xhhhh"var mr14="  tX    w XXXXXXX XXXXXX    hhFX H   h wwwXwwwwXwwwwX X F T"var mr15="  FX  X   wwwwwwXFXwwwww  H    X X H C    X  e XCc  X X   t"var mr16=" F X XXXX   e   w X   c   hTh  w XXXXXXXX XXFXXXXXX X X T  "var mr17="HH X wwwXXXXXXX   Xh HXXXX t     wwwwwwwX wN NNwwnX w XHtTh"var mr18="HHHX   ewwwwwwXXXXX  hNNnw hHhhX       KX        hX   XH t "var mr19="hHHXXX  XXXXX wwwXw     h   h cXXXXH hhhNXXXXXXe cXXXXqXXXX"var mr20=" HHXwX  wXwwX c KX  Fhh   X   XwwnNh     NwwwwwXCXwwXwWwwww"var mr21="hHXXCX   X cXeE CX    EXXXXHh wCKHK  X  He     wXw EX  Q   "var mr22=" HnX w   w HXXXXXXHhhHhwwwnHE   hhhhhNh hhh Hh  w   X XXXXX"var mr23=" HHX       HNwwwNNhE hcTF hHHH     C  T   F h X   FXX Xwnww"var mr24=" hhXXXXX HHhK          t   HHXXXXXXXXFtT  H   Xc XhNN X H  "var mr25="   Xwwnw hh     hhHhhH   T hhNnwwnnww  thhhHXXXXXX    XHh  "var mr26=" T XECH      H    He H H t    heEHh    H   hNwwwXw XXXXh   "var mr27="Tt X  hhhh Thhhh  Hh h Hhhhh  F  He  hhh H  F   wC wwwX HHH"var mr28="t  X       tc  F  H    HKCF      HH      HH   H      eX hhh"var mr29="HHHXXXXXXSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXF  F"var mr30="hhhNwwwnnwnwwwwwwwwwwwwwwwwwwwwwwNnNwwwwwwXwwwwwwwwwwww T  "var mr31="     F HH Hh     T   hh      F    h    F  X    HHHHH    t  "var mr32="  F   HHH H      t       T                X    hhhhhH      "var mr33="     HHHH HHH            t                                 "var mr34="     HHHH HHHH" var mr35="     HHHh hHHH" var mr36="     HHHR RHHH" var mr37="     HHHHHHHHH"var mr38="     HHHHHHHHH"var mr39="     HHHHHHHHH"var mr40="     HHHHHHHHH"/*********************************************************************** MAP ABBREVIATIONS: X = top of wall		x = wall			O = entrance E,e,c,C = Egg			F = Flowers			Q = Exit w = Wall				W = exit wall		q = exit wall top T = Tree top			t = Tree bottom		H = hedge h = hedge bottom		K = Clipper			n = wall hedge N = wall hedge bot*************************************************************************/function movePlayer(newPosx, newPosy) {       // this is the MAIN routine		var tileType = eval("mr" + newPosy + ".charAt(newPosx)");	switch (tileType) { // Blocking Detection		case "O": 	alert("Nice try, but you can't get out the way you came in.");					return;		case "X": 	return;		case "F":	if (clipper != 0) {break;}					return;		case "q":	return;		case "W":	return;		case "T":	return;		case "t":	return;		case "h":	return;		case "H":	return;		case "n":	return;		case "N":	return;		default: 	break;		}			playerx=newPosx;	playery=newPosy;	drawMap();	tileReact(tileType,playerx,playery);	}function getTile(x,y)	{	var tilegfx = ""	var tileType = eval("mr" + y + ".charAt(x-1)");	switch(tileType)		{			case "w":	tilegfx = "wall";						break;			case " ":	tilegfx = "grass";						break;			case "E":	tilegfx = "egg";						break;			case "e":	tilegfx = "egg2";						break;			case "c":	tilegfx = "egg3";						break;			case "C":	tilegfx = "egg4";						break;			case "O":	tilegfx = "hole";						break;			case "F":	tilegfx = "flowers";						break;			case "X":	tilegfx = "walltop";						break;			case "S":	tilegfx = "walltop";						break;			case "Q":	tilegfx = "grass";						break;			case "q":	tilegfx = "walltopexit";						break;			case "W":	tilegfx = "wallexit";						break;			case "T":	tilegfx = "treetop";						break;			case "t":	tilegfx = "treetrunk";						break;			case "H":	tilegfx = "hedge";						break;			case "h":	tilegfx = "hedgebottom";						break;			case "K":	tilegfx = "clipper";						break;			case "n":	tilegfx = "wallhedge";						break;			case "N":	tilegfx = "wallhedgebottom";						break;			case "R":	tilegfx = "secret"						break;			default:	tilegfx = "grass";		}	tilegfx = "./images/tile_" + tilegfx;	return tilegfx;	}function drawMap() {	for (i=1;i<8;i++) {		for (n=1;n<8;n++) {			skip = 0			tile = getTile((playerx-3) + n, (playery - 4) + i)			if (n==4 && i==4) {				if (tile == "./images/tile_wall") {					tile = "./images/tile_playerwall"					}				else {					tile = "./images/tile_player"					}				}			eval("document.mapx" + n + "y" + i + ".src = '" + tile + ".gif'");			}		}	}		function tileReact(type,x,y) {	switch(type) {		case "E":	getEgg();					return;		case "e":	getEgg();					return;		case "c":	getEgg();					return;		case "C":	getEgg();					return;		case "Q":	playerWins();					return;		case "K":	getClipper();					return;		case "F":	clipDaisy();					return;		case "S":	if (!secret) {						alert("You have found a secret passage!!");						secret = 1;						}					return;		case "R":	secretMessage();					return;		default: 	return;		}	}		function getEgg() {	egg++;	displayNumbers(egg.toString(),'egg');	changeMap("E"," ",playerx,playery);	}		function getClipper(){	if (clipper) {		if (firstTwoClipper == 0) {			alert("You are only allowed to carry one clipper at a time!");			firstTwoClipper = 1;			}		return;		}	if (firstClipper == 0) {		alert("You've picked up a Daisy Clipper! You can use it to cut away a group of flowers. However, it can only be used once and you can only carry around one clipper at a time. \n\nWhen you are holding one, a Daisy Clipper will appear between your movement buttons.");		firstClipper = 1;		}	clipper = 1;	changeMap("K"," ",playerx,playery);	eval('document.inven.src = "./images/inven_clipper.gif"');	}	function clipDaisy() {	changeMap("F"," ",playerx,playery);	clipper = 0;	eval('document.inven.src = "./images/spacer.gif"');	}function changeMap(oldTile,newTile,x,y) {	l = eval("mr" + y + ".length")	firstHalf = eval("mr" + y + ".substring(0," + x + ")")	secondHalf = eval("mr" + y + ".substring(" + (x+1) + "," + l + ")")	eval("mr" + y + " = '" + firstHalf + newTile + secondHalf + "'")	}function secretMessage() {	switch (secretMess) {		case 1: alert("This game was created by Robert Gomez (rwgomez@hotmail.com), is copyright (c)2000 MoonRock Software Inc. and was made in conjunction with Ajenda Interactive Media. Visit www.moonrock.com and download our Windows game QBob. It rocks the known universe!");				break;		case 2: alert("Are you keeping all your eggs in one basket?");				break;		case 3: alert("I like my eggs poached, and I think the people will stand behind me on this.");				break;		case 4: alert("When a computer developer puts a secret function in a program it is called an 'Easter Egg.'");				break;		case 5: alert("Buy many copies of QBob!");				break;		case 6: alert("Be cool, stay in school!");				break;		case 7: alert("Don't use drugs. Be a hero, not a zero.");				break;		case 8: alert("Why do you keep stepping on me?");				break;		case 9: alert("Ouch!");				break;		case 10: alert("Okay, you get the point. You step on my head and I say stuff, well, it's starting to hurt.");				break;		case 11: alert("Maybe if I stop talking you will go away...");				break;		case 12: alert("...");				break;		case 13: alert("...");				break;		case 14: alert("OUCH!!! The silent treatment apparently doen't work.");				break;		case 15: alert("Maybe I should turn to idle threats.");				break;		case 16: alert("How about this... step on me again and I will take all of your eggs!");				break;		case 17: alert("I mean it!");				break;		case 18: alert("I REALLY mean it!!!");				break;		case 19: alert("Okay, you asked for it!");				egg = 0;				displayNumbers(egg.toString(),'egg');								break;		default: alert("Are you happy now?!?");				secretMess = 0;				break;		}	secretMess++;	}	function displayNumbers(string,gfx) {	switch(string.length) {		case 1:	string="x" + string;				break;		}	for (i=0; i<2; i++) {		eval("document." + gfx + i + ".src = './images/" + string.charAt(i) + ".gif'")		}	}function playerWins() {	var pluralEgg = "s";	var pluralSec = "s";	var pluralMin = "s";	var endTime = new Date();	var secs = (endTime.getTime() - startTime.getTime()) / 1000;	var seconds = Math.floor((secs) % 60);	var minutes = Math.floor(secs / 60);		if (egg==1) {pluralEgg = "";}	if (seconds == 1) {pluralSec = "";}	if (minutes == 1) {pluralMin = "";}	alert("Congratulations! You finished the maze in " + minutes + " minute" + pluralMin + " and " + seconds + " second" + pluralSec + ", with " + egg + " egg" + pluralEgg +" out of "+maxEggs+"!");	if (egg >= maxEggs) {		location.href="winbonus.html"		}	else {		location.href="win.html"		}	}function startUp() {	displayNumbers(egg.toString(),'egg');	drawMap();	}	