/*
07-01-09
gameEventObject(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
attributes: Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
UNLESS attribute[0] == -1, in which case:
simultaneous evnt,highest index of event to fire in this array, eventID, eventID.....

05-01-09
-Add calls to html to fire simultaneous events
-Remove old method of firing more than one event
-Update html of index to cope with above

20-12-08
This file was created from game_01.js
12-11-08
Added trigger objects & array with triggers plus way of
testing character entering & exiting a trigger + offsets to
destination & checking triggers

07-11-08
this first version has an animatable character object which can be sent a new position via
an event - plays one animation if it is moving, another if it is stationary

Note - setting z-index example:
document.getElementById(this.ID).style.zIndex = -1;
*/
//NOTE:Time has to work for all anims of the same set
//DEBUG loops!! - theres a problem with them after they are started
//consider if events are only fired once - how to do this? They undo themselves?
//consider loops
//fix loops (won't currently loop, just animate forever - basically set bFwds to opposite)
//rationalise position & scale animation
//Try making height & position apply to images
//add support for frames

characterArray = new Array(1);
triggerArray = new Array(3);
eventArray = new Array();

var bFirefox = true;
var browserName=navigator.appName;


//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function triggerObj(bActive, posX, posY, lengthX, lengthY, eventToTrigger)
{
	this.bActive = bActive;
	this.posX = posX;
	this.posY = posY;
	this.lengthX = lengthX;
	this.lengthY = lengthY;
	this.eventToTrigger = eventToTrigger;
	this.bHasFired = false;
}
triggerObj.prototype.inTrigger = function(x, y)
{
	if (x >= this.posX && x <= (this.posX + this.lengthX))
	{
		if (y >= this.posY && y <= (this.posY + this.lengthY))
		{
			return true;
		}
	}
	//could test here for shutting if open...
	return false;
}
triggerObj.prototype.fireTrigger = function()
{
	if (!this.bHasFired)
	{
		//alert("Entered Trigger!");
		eventArray[this.eventToTrigger].fireEvent(true);
		this.bHasFired = true;
	}
	else
	{
		//alert("Exited Trigger!");
		eventArray[this.eventToTrigger].fireEvent(false);
		this.bHasFired = false;
	}
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function gameEventObject(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
{
	this.ID = elementID;
	this.name = name;
	this.posX = posX;
	this.posY = posY;
	this.width = width;
	this.height = height;
	this.bPosition = bPosition;
	this.bScale = bScale;
	this.attributes = attributes;
	this.nextEvent = nextEvent;
	this.previousEvent = previousEvent;
	this.bAnimating = bAnimating;
	this.bFireOnce = bFireOnce;
	//Not passed as yet:::
	this.bFwds = true;
	this.time = 0;
	if (bFirefox)
	{
		//alert("browser is firefox");
		this.startOpacity = attributes[6];//set at object creation to cope with repeat problem
	}
	else
	{
		this.startOpacity = attributes[6] * 100;//set at object creation to cope with repeat problem
	}
}
gameEventObject.prototype.fireEvent = function(bStart)
{
	//alert("eventFired");
	//OK REALLY DODGE. If time is -1, this event just fires simultaneous events, so attributes is used in a totally different way!!!!
	if(this.attributes[0] == -1)
	{
		//alert("multiple simultaneous event event");
		//now fire the number of events designated by the value at attributes[1]
		//starting with the event designated by the next imediate value...
		for (i=2; i < this.attributes[1]; i++)
		{
			//&&&&&&&&FIRE EVENT&&&&&&&&&&&&//
			eventArray[this.attributes[i]].fireEvent(bStart);
		}
		return;
	}
	if(this.bAnimating)//SAFETY - in case triggered again whilst actually animating
	{
		this.time = this.attributes[0] - this.time;//i.e. should only do reverse for as long as it has already gone forwards
	}
	//SECTION ABOVE MIGHT BE CAUSING THE CURRENT PROBLEM....NEED TO SWITCH OFF bAnimating?
	else
	{
		this.bAnimating = true;
		this.time = 0;//HMMM - double check this
		//alert("just set bAnimating");
	}
	//Handle any game logic here
	if (bStart)
	{
		//alert("Event set Start!");
		//this.time = 0;//RESET TIME!!!
		this.bFwds = true;
		//added as a kind of safety, really needs rationalising...
		if (this.time==0)
		{
			this.attributes[6] = this.startOpacity;
			//alert("setting attribute 6!");
		}
	}
	else
	{
		//alert("Event Stop!")
		this.bFwds = false;
	}
	
	
}
gameEventObject.prototype.updateAnims = function()
{
	//var event1Attrib = Array(0, 0, 0, -1, 0, 0, -1, -1);
	//animTime, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
	var multiplier = 1;
	if (!(this.bFwds))
	{
		multiplier = -1;
	}
	
	if (this.time < this.attributes[0])
	{
		//alert("this is animating");
		if (this.bPosition)
		{
		document.getElementById(this.ID).style.left = (this.posX  + (this.attributes[1] * multiplier))+ "px";
		this.posX += (this.attributes[1] * multiplier);
		document.getElementById(this.ID).style.top = (this.posY  + (this.attributes[2] * multiplier))+ "px";
		this.posY += (this.attributes[2] * multiplier);
		}
		if (this.bScale)
		{
			document.getElementById(this.ID).style.width = (this.width  + (this.attributes[4] * multiplier))+ "px";
			this.width += (this.attributes[4] * multiplier);
			document.getElementById(this.ID).style.height = (this.height  + (this.attributes[5] * multiplier))+ "px";
			this.height += (this.attributes[5] * multiplier);
		}
		if (this.name != "")
		{
			alert("Got a name");
			//document[this.name].src = ;
		}
		if (this.attributes[6] > -1)//HAS ANIMATED OPACITY
		{
			//alert("has animated opacity");
			if (bFirefox)
			{
				//Next if-else is a safety to cap values of opacity at end of anims timeline
				//otherwise problems are caused & garbage values get returned
				//alert("animating firefox opacity");
				if (this.time == (this.attributes[0] -1))
				{
					if(this.attributes[6] > 0.5)
					{
						this.attributes[6] = 1.0;
					}
					else
					{
						this.attributes[6] = 0.0;
					}
				}
				else
				{
					this.attributes[6] += (this.attributes[7] * multiplier);
				}
				document.getElementById(this.ID).style.opacity = this.attributes[6];
				//alert("got here");
			}
			else
			{
				this.attributes[6] += (this.attributes[7] * multiplier * 100);
				document.getElementById(this.ID).style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=" + this.attributes[6] + ")";
			}
		}
	}
	else//stop animating
	{
		//alert(("time attribute = " + this.attributes[2] + " time = " + this.time));
		this.stopAnims(); 
	}
	if (this.bAnimating)//SAFETY - can be switcehd off above
	{
		this.time+= 1;
		//alert("animating");
	}
}
gameEventObject.prototype.stopAnims = function()
{
	this.time = 0;
	if (this.attributes[3] == 0)//if this is an infinite loop
	{
		if (this.bFwds)
		{
			this.bFwds = false;
		}
		else
		{
			this.bFwds = true;
		}
		if(this.previousEvent != -1)
		{
			eventArray[this.previousEvent].nextEvent = -1;//remove this event from the caller - could cause problems if it hasn't stopped its anim
		}
		return;
	}
	//if not be loop (see attributes)
	this.bAnimating = false;
	if (this.bFireOnce)
		{
			eventArray[this.previousEvent].nextEvent = -1;//remove this event from the caller - could cause problems if it hasn't stopped its anim
		}
	if (this.nextEvent > -1 && this.bFwds)
		{
			//alert("start next event");
			eventArray[this.nextEvent].fireEvent(true);
		}
	
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function setupGame(id)
{
	//create characters
	//rabbit_obj = new characterObj("mr_rabbit_anim", "mr_rabbit", 300, 300, 15, 11, "rabbit", 76, 128, 32, 100);
	//add them to an array of characters
	//characterArray[0] = rabbit_obj;
	//(bActive, posX, posY, lengthX, lengthY, eventToTrigger)
	triggerArray[0] = new triggerObj(true, 100, 50, 100, 100, 0);
	triggerArray[1] = new triggerObj(true, 700, 250, 100, 100, 1);
	triggerArray[2] = new triggerObj(true, 200, 500, 100, 100, 2);
	//Get browser type
	 if (browserName=="Microsoft Internet Explorer")
	 {
	  //alert("Hi, Explorer User!");
	  bFirefox = false;
	 }
	 
	
	if (id == 0)
	{
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event1Attrib = Array(20, 0, 0, -1, 0, 0, -1, -1);
		//(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
		
		//FIRST EVENT - A PAUSE
		eventArray[0] = new gameEventObject("pause","", 100, 50, 100, 100, false, false, event1Attrib, 1, -1, true, false );
		
		//MAIN IMAGE
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event2Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[1] = new gameEventObject("mainImage", "", 700, 250, 100, 100, false, false, event2Attrib, 2, 0, false, false );
		
		//PAUSE
		var event3Attrib = Array(2, 0, 0, -1, 0, 0, -1, -1);
		eventArray[2] = new gameEventObject("pause", "",200, 500, 100, 100, false, false, event3Attrib, 3, 1, false, false );
		
		//TITLE TEXT
		var event4Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[3] = new gameEventObject("textImage", "",200, 500, 100, 100, false, false, event4Attrib, 4, 2, false, false );
		
		//PAUSE
		var event5Attrib = Array(10, 0, 0, -1, 0, 0, -1, -1);
		eventArray[4] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event5Attrib, 5, 3, false, false );
		
		//DESCRIPTIVE TEXT 1 'well there are these moments...'
		var event6Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[5] = new gameEventObject("text_1", "",200, 300, 100, 100, false, false, event6Attrib, 6, 4, false, false );
		
		//PAUSE
		var event7Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[6] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event7Attrib, 7, 5, false, false );
		
		//DESCRIPTIVE TEXT 2 'a play by milan markovic'
		var event8Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[7] = new gameEventObject("text_2", "",200, 300, 100, 100, false, false, event8Attrib, 8, 6, false, false );
		
		//PAUSE
		var event9Attrib = Array(10, 0, 0, -1, 0, 0, -1, -1);
		eventArray[8] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event9Attrib, 9, 7, false, false );
		
		//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		//ENTER GRAPHIC - NOTE CALLS TWO EVENTS
		var event10Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[9] = new gameEventObject("enterImage", "",200, 300, 100, 100, false, false, event10Attrib, 12, 8, false, false );
		
		//ENTER GRAPHIC GLOW - LOOPS
		var event11Attrib = Array(20, 0, 0, 0, 0, 0, 0, 0.05);
		eventArray[10] = new gameEventObject("enterImage_on", "",200, 300, 100, 100, false, false, event11Attrib, -1, 9, false, false );
		
		//FLY IN LOGO
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event12Attrib = Array(50, -10, 0, -1, 0, 0, 0, 0.02);
		//(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
		eventArray[11] = new gameEventObject("logo_small", "",725, 690, 100, 100, true, false, event12Attrib, -1, 9, false, false );
		
		//FIRE SIMULTANEOUS EVENTS
		var event13Attrib = Array(-1, 4, 10, 11, -1, -1, -1, -1);
		eventArray[12] = new gameEventObject("fire events", "",200, 300, 100, 100, false, false, event13Attrib, -1, 9, false, false );
	}
	else if (id == 1)
	{
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event1Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		//(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
		
		//FIRST EVENT - A PAUSE
		eventArray[0] = new gameEventObject("enter", "", 700, 250, 100, 100, false, false, event1Attrib, -1, -1, false, false );
		
	}
	else if (id == 2)
	{
		//PAUSE
		var event1Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[0] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event1Attrib, 1, -1, true, false );
		
		//PLAYPIC1 ON
		var event2Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[1] = new gameEventObject("playpic_1", "",200, 300, 100, 100, false, false, event2Attrib, 2, 0, false, false );
		
		//PAUSE
		var event3Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[2] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event3Attrib, 3, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event4Attrib = Array(-1, 4, 4, 5, 0, -1, -1, -1);
		eventArray[3] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event4Attrib, -1, 0, false, false );
		
		//PLAYPIC1 OFF
		var event5Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[4] = new gameEventObject("playpic_1", "",200, 300, 100, 100, false, false, event5Attrib, -1, 0, false, false );
		
		//PLAYPIC2 ON
		var event6Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[5] = new gameEventObject("playpic_2", "",200, 300, 100, 100, false, false, event6Attrib, 6, 0, false, false );
		
		//PAUSE
		var event7Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[6] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event7Attrib, 7, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event8Attrib = Array(-1, 4, 8, 9, 0, -1, -1, -1);
		eventArray[7] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event8Attrib, -1, 0, false, false );
		
		//PLAYPIC2 OFF
		var event9Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[8] = new gameEventObject("playpic_2", "",200, 300, 100, 100, false, false, event9Attrib, -1, 0, false, false );
		
		//PLAYPIC3 ON
		var event10Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[9] = new gameEventObject("playpic_3", "",200, 300, 100, 100, false, false, event10Attrib, 10, 0, false, false );
		
		//PAUSE
		var event11Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[10] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event11Attrib, 11, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event12Attrib = Array(-1, 4, 12, 13, 0, -1, -1, -1);
		eventArray[11] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event12Attrib, -1, 0, false, false );
		
		//PLAYPIC3 OFF
		var event13Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[12] = new gameEventObject("playpic_3", "",200, 300, 100, 100, false, false, event13Attrib, -1, 0, false, false );
		
		//PLAYPIC4 ON
		var event14Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[13] = new gameEventObject("playpic_4", "",200, 300, 100, 100, false, false, event14Attrib, 14, 0, false, false );
		
		//PAUSE
		var event15Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[14] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event15Attrib, 15, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event16Attrib = Array(-1, 4, 16, 17, 0, -1, -1, -1);
		eventArray[15] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event16Attrib, -1, 0, false, false );
		
		//PLAYPIC4 OFF
		var event17Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[16] = new gameEventObject("playpic_4", "",200, 300, 100, 100, false, false, event17Attrib, -1, 0, false, false );
		
		//PLAYPIC5 ON
		var event18Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[17] = new gameEventObject("playpic_5", "",200, 300, 100, 100, false, false, event18Attrib, 18, 0, false, false );
		
		//PAUSE
		var event19Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[18] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event19Attrib, 19, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event20Attrib = Array(-1, 4, 20, 21, 0, -1, -1, -1);
		eventArray[19] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event20Attrib, -1, 0, false, false );
		
		//PLAYPIC5 OFF
		var event21Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[20] = new gameEventObject("playpic_5", "",200, 300, 100, 100, false, false, event21Attrib, -1, 0, false, false );
		
		//PLAYPIC6 ON
		var event22Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[21] = new gameEventObject("playpic_6", "",200, 300, 100, 100, false, false, event22Attrib, 22, 0, false, false );
		
		//PAUSE
		var event23Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[22] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event23Attrib, 23, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event24Attrib = Array(-1, 4, 24, 25, 0, -1, -1, -1);
		eventArray[23] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event24Attrib, -1, 0, false, false );
		
		//PLAYPIC6 OFF
		var event25Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[24] = new gameEventObject("playpic_6", "",200, 300, 100, 100, false, false, event25Attrib, -1, 0, false, false );
		
		//PLAYPIC7 ON
		var event26Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[25] = new gameEventObject("playpic_7", "",200, 300, 100, 100, false, false, event26Attrib, 26, 0, false, false );
		
		//PAUSE
		var event27Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[26] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event27Attrib, 27, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event28Attrib = Array(-1, 4, 28, 29, 0, -1, -1, -1);
		eventArray[27] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event28Attrib, -1, 0, false, false );
		
		//PLAYPIC7 OFF
		var event29Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[28] = new gameEventObject("playpic_7", "",200, 300, 100, 100, false, false, event29Attrib, -1, 0, false, false );
		
		//PLAYPIC8 ON
		var event30Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[29] = new gameEventObject("playpic_8", "",200, 300, 100, 100, false, false, event30Attrib, 30, 0, false, false );
		
		//PAUSE
		var event31Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[30] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event31Attrib, 31, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event32Attrib = Array(-1, 4, 32, 33, 0, -1, -1, -1);
		eventArray[31] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event32Attrib, -1, 0, false, false );
		
		//PLAYPIC8 OFF
		var event33Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[32] = new gameEventObject("playpic_8", "",200, 300, 100, 100, false, false, event33Attrib, -1, 0, false, false );
		
		//PLAYPIC9 ON
		var event34Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[33] = new gameEventObject("playpic_9", "",200, 300, 100, 100, false, false, event34Attrib, 34, 0, false, false );
		
		//PAUSE
		var event35Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[34] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event35Attrib, 35, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event36Attrib = Array(-1, 4, 36, 37, 0, -1, -1, -1);
		eventArray[35] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event36Attrib, -1, 0, false, false );
		
		//PLAYPIC9 OFF
		var event37Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[36] = new gameEventObject("playpic_9", "",200, 300, 100, 100, false, false, event37Attrib, -1, 0, false, false );
		
		//PLAYPIC10 ON
		var event38Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[37] = new gameEventObject("playpic_10", "",200, 300, 100, 100, false, false, event38Attrib, 38, 0, false, false );
		
		//PAUSE
		var event39Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[38] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event39Attrib, 39, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event40Attrib = Array(-1, 4, 40, 41, 0, -1, -1, -1);
		eventArray[39] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event40Attrib, -1, 0, false, false );
		
		//PLAYPIC10 OFF
		var event41Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[40] = new gameEventObject("playpic_10", "",200, 300, 100, 100, false, false, event41Attrib, -1, 0, false, false );
		
		//PLAYPIC11 ON
		var event42Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[41] = new gameEventObject("playpic_11", "",200, 300, 100, 100, false, false, event42Attrib, 42, 0, false, false );
		
		//PAUSE
		var event43Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[42] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event43Attrib, 43, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event44Attrib = Array(-1, 4, 44, 45, 0, -1, -1, -1);
		eventArray[43] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event44Attrib, -1, 0, false, false );
		
		//PLAYPIC11 OFF
		var event45Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[44] = new gameEventObject("playpic_11", "",200, 300, 100, 100, false, false, event45Attrib, -1, 0, false, false );
		
		//PLAYPIC12 ON
		var event46Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[45] = new gameEventObject("playpic_12", "",200, 300, 100, 100, false, false, event46Attrib, 46, 0, false, false );
		
		//PAUSE
		var event47Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[46] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event47Attrib, 47, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event48Attrib = Array(-1, 4, 48, 49, 0, -1, -1, -1);
		eventArray[47] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event48Attrib, -1, 0, false, false );
		
		//PLAYPIC12 OFF
		var event49Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[48] = new gameEventObject("playpic_12", "",200, 300, 100, 100, false, false, event49Attrib, -1, 0, false, false );
		
		//PLAYPIC13 ON
		var event50Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[49] = new gameEventObject("playpic_13", "",200, 300, 100, 100, false, false, event50Attrib, 50, 0, false, false );
		
		//PAUSE
		var event51Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[50] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event51Attrib, 51, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event52Attrib = Array(-1, 4, 52, 53, 0, -1, -1, -1);
		eventArray[51] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event52Attrib, -1, 0, false, false );
		
		//PLAYPIC13 OFF
		var event53Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[52] = new gameEventObject("playpic_13", "",200, 300, 100, 100, false, false, event53Attrib, -1, 0, false, false );
		
		//PLAYPIC14 ON
		var event54Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[53] = new gameEventObject("playpic_14", "",200, 300, 100, 100, false, false, event54Attrib, 54, 0, false, false );
		
		//PAUSE
		var event55Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[54] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event55Attrib, 55, 1, false, false );
		
		//FIRE NEXT 2 EVENTS
		var event56Attrib = Array(-1, 4, 56, 1, 0, -1, -1, -1);
		eventArray[55] = new gameEventObject("next2events", "",200, 300, 100, 100, false, false, event56Attrib, -1, 0, false, false );
		
		//PLAYPIC14 OFF
		var event57Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[56] = new gameEventObject("playpic_14", "",200, 300, 100, 100, false, false, event57Attrib, -1, 0, false, false );
	}
	
	else if (id == 3)
	{
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event1Attrib = Array(20, 0, 0, -1, 0, 0, -1, -1);
		//(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
		
		//FIRST EVENT - A PAUSE
		eventArray[0] = new gameEventObject("pause","", 100, 50, 100, 100, false, false, event1Attrib, 1, -1, false, false );
		
		//BUNNY
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event2Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[1] = new gameEventObject("bunny", "", 700, 250, 100, 100, false, false, event2Attrib, 2, 0, false, false );
		
		//PAUSE
		var event3Attrib = Array(2, 0, 0, -1, 0, 0, -1, -1);
		eventArray[2] = new gameEventObject("pause", "",200, 500, 100, 100, false, false, event3Attrib, 3, 1, false, false );
		
		//SHADOW
		var event4Attrib = Array(100, 0, 0, -1, 0, 0, 1, -0.01);
		eventArray[3] = new gameEventObject("shadow", "",200, 500, 100, 100, false, false, event4Attrib, 4, 2, false, false );
		
		//PAUSE
		var event5Attrib = Array(60, 0, 0, -1, 0, 0, -1, -1);
		eventArray[4] = new gameEventObject("pause", "",200, 300, 100, 100, false, false, event5Attrib, 5, 3, false, false );
		
		//BUTTON 0 - CABLE STREET
		var event6Attrib = Array(-1, 5, 6, 7, 8, -1, -1, -1);
		eventArray[5] = new gameEventObject("play_button_1", "",200, 300, 100, 100, false, false, event6Attrib, -1, -1, false, false );
		
		//WALL LIT
		var event7Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[6] = new gameEventObject("wall_0_on", "",200, 300, 100, 100, false, false, event7Attrib, -1, -1, false, false );
		
		//CABLE ST LIT
		var event8Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[7] = new gameEventObject("image_cablest_lit", "",200, 300, 100, 100, false, false, event8Attrib, -1, -1, false, false );
		
		//CABLE ST TEXT ON
		var event9Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[8] = new gameEventObject("textNew_0", "",200, 300, 100, 100, false, false, event9Attrib, -1, -1, false, false );
		
		////////////
		
		//BUTTON 1
		var event10Attrib = Array(-1, 5, 10, 11, 12, -1, -1, -1);
		eventArray[9] = new gameEventObject("play_button_1", "",200, 300, 100, 100, false, false, event10Attrib, -1, -1, false, false );
		
		//WALL LIT
		var event11Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[10] = new gameEventObject("wall_2_on", "",200, 300, 100, 100, false, false, event11Attrib, -1, -1, false, false );
		
		//PLAY LIT
		var event12Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[11] = new gameEventObject("image_0_lit", "",200, 300, 100, 100, false, false, event12Attrib, -1, -1, false, false );
		
		//PLAY TEXT ON
		var event13Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[12] = new gameEventObject("textNew_1", "",200, 300, 100, 100, false, false, event13Attrib, -1, -1, false, false );
		
		////////////////////
		
		//BUTTON 2
		var event14Attrib = Array(-1, 5, 14, 15, 16, -1, -1, -1);
		eventArray[13] = new gameEventObject("comic_button_1", "",200, 300, 100, 100, false, false, event14Attrib, -1, -1, false, false );
		
		//WALL LIT
		var event15Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[14] = new gameEventObject("wall_3_on", "",200, 300, 100, 100, false, false, event15Attrib, -1, -1, false, false );
		
		//COMIC LIT
		var event16Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[15] = new gameEventObject("image_1_lit", "",200, 300, 100, 100, false, false, event16Attrib, -1, -1, false, false );
		
		//COMIC TEXT ON
		var event17Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[16] = new gameEventObject("textNew_2", "",200, 300, 100, 100, false, false, event17Attrib, -1, -1, false, false );
		
		/////////////////////
		
		//BUTTON 3
		var event18Attrib = Array(-1, 5, 18, 19, 20, -1, -1, -1);
		eventArray[17] = new gameEventObject("qe_button_1", "",200, 300, 100, 100, false, false, event18Attrib, -1, -1, false, false );
		
		//WALL LIT
		var event19Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[18] = new gameEventObject("wall_4_on", "",200, 300, 100, 100, false, false, event19Attrib, -1, -1, false, false );
		
		//QE LIT
		var event20Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[19] = new gameEventObject("image_2_lit", "",200, 300, 100, 100, false, false, event20Attrib, -1, -1, false, false );
		
		//QE TEXT ON
		var event21Attrib = Array(10, 0, 0, -1, 0, 0, 0, 0.1);
		eventArray[20] = new gameEventObject("textNew_3", "",200, 300, 100, 100, false, false, event21Attrib, -1, -1, false, false );
		
	}
	else if (id == 4)
	{
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event1Attrib = Array(10, 0, 0, -1, 0, 0, -1, -1);
		//(elementID, name, posX, posY, width, height, bPosition, bScale, attributes, nextEvent, previousEvent, bAnimating, bFireOnce)
		
		//FIRST EVENT - A PAUSE
		eventArray[0] = new gameEventObject("pause","", 100, 50, 100, 100, false, false, event1Attrib, 1, -1, true, false );
		
		//FOX IMAGE
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event2Attrib = Array(20, 0, 0, -1, 0, 0, 0, 0.05);
		eventArray[1] = new gameEventObject("foxImage", "", 700, 250, 100, 100, false, false, event2Attrib, 2, 0, false, false );
		
		//FOX TEXT
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event3Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[2] = new gameEventObject("foxtext", "", 700, 250, 100, 100, false, false, event3Attrib, 3, 0, false, false );
		
		//BEAR IMAGE
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event4Attrib = Array(20, 0, 0, -1, 0, 0, 0, 0.05);
		eventArray[3] = new gameEventObject("bearImage", "", 700, 250, 100, 100, false, false, event4Attrib, 4, 0, false, false );
		
		//BEAR TEXT
		var event5Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[4] = new gameEventObject("beartext", "", 700, 250, 100, 100, false, false, event5Attrib, 5, 0, false, false );
		
		//RABBIT IMAGE
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event6Attrib = Array(20, 0, 0, -1, 0, 0, 0, 0.05);
		eventArray[5] = new gameEventObject("rabbitImage", "", 700, 250, 100, 100, false, false, event6Attrib, 6, 0, false, false );
		
		//RABBIT TEXT
		var event7Attrib = Array(50, 0, 0, -1, 0, 0, 0, 0.02);
		eventArray[6] = new gameEventObject("rabbittext", "", 700, 250, 100, 100, false, false, event7Attrib, 7, 0, false, false );
		
		//STRUCTURE IMAGE
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event8Attrib = Array(100, 0, 0, -1, 0, 0, 0, 0.01);
		eventArray[7] = new gameEventObject("structureImage", "", 700, 250, 100, 100, false, false, event8Attrib, 8, 0, false, false );
		
		//RABBIT GLOW ON
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event9Attrib = Array(20, 0, 0, -1, 0, 0, 0, 0.05);
		eventArray[8] = new gameEventObject("rabbitGlow", "", 700, 250, 100, 100, false, false, event9Attrib, 9, 0, false, false );
		
		//RABBIT GLOW OFF and LOOP
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event10Attrib = Array(10, 0, 0, -1, 0, 0, 1.0, -0.1);
		eventArray[9] = new gameEventObject("rabbitGlow", "", 700, 250, 100, 100, false, false, event10Attrib, 8, 0, false, false );
		
		//ENTER GRAPHIC GLOW - LOOPS
		var event11Attrib = Array(10, 0, 0, 0, 0, 0, 0, 0.1);
		eventArray[10] = new gameEventObject("enterImage_on", "",200, 300, 100, 100, false, false, event11Attrib, -1, 9, false, false );
		
	}
	else if (id == 5)
	{
		//BEAR IMAGE
		//Time, posXInc, posYInc, loop, scaleX, scaleY, opacStart, opacInc
		var event1Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[0] = new gameEventObject("pic_01", "", 700, 250, 100, 100, false, false, event1Attrib, -1, -1, false, false );
		
		var event2Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[1] = new gameEventObject("pic_02", "", 700, 250, 100, 100, false, false, event2Attrib, -1, -1, false, false );
		
		var event3Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[2] = new gameEventObject("pic_03", "", 700, 250, 100, 100, false, false, event3Attrib, -1, -1, false, false );
		
		var event4Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[3] = new gameEventObject("pic_04", "", 700, 250, 100, 100, false, false, event4Attrib, -1, -1, false, false );
		
		var event5Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[4] = new gameEventObject("pic_05", "", 700, 250, 100, 100, false, false, event5Attrib, -1, -1, false, false );
		
		var event6Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[5] = new gameEventObject("pic_06", "", 700, 250, 100, 100, false, false, event6Attrib, -1, -1, false, false );
		
		var event7Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[6] = new gameEventObject("pic_07", "", 700, 250, 100, 100, false, false, event7Attrib, -1, -1, false, false );
		
		var event8Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[7] = new gameEventObject("pic_08", "", 700, 250, 100, 100, false, false, event8Attrib, -1, -1, false, false );
		
		var event9Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[8] = new gameEventObject("pic_09", "", 700, 250, 100, 100, false, false, event9Attrib, -1, -1, false, false );
		
		var event10Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[9] = new gameEventObject("pic_10", "", 700, 250, 100, 100, false, false, event10Attrib, -1, -1, false, false );
		
		var event11Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[10] = new gameEventObject("pic_11", "", 700, 250, 100, 100, false, false, event11Attrib, -1, -1, false, false );
		
		var event12Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[11] = new gameEventObject("pic_12", "", 700, 250, 100, 100, false, false, event12Attrib, -1, -1, false, false );
		
		var event13Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[12] = new gameEventObject("pic_13", "", 700, 250, 100, 100, false, false, event13Attrib, -1, -1, false, false );
		
		var event14Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[13] = new gameEventObject("pic_14", "", 700, 250, 100, 100, false, false, event14Attrib, -1, -1, false, false );
		
		var event15Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[14] = new gameEventObject("pic_15", "", 700, 250, 100, 100, false, false, event15Attrib, -1, -1, false, false );
		
		var event16Attrib = Array(5, 0, 0, -1, 0, 0, 0, 0.2);
		eventArray[15] = new gameEventObject("pic_16", "", 700, 250, 100, 100, false, false, event16Attrib, -1, -1, false, false );
	}
}
//this function makes calls to the individual triggers here rather than in the objects themselves
//so that i can quit out of it as soon as we are in an active trigger, or have just left an active trigger as
//it is assumed it is only possible to be in any 1 trigger at a time
function checkTriggers()
{
	var charOffsetX = characterArray[0].posX + characterArray[0].offsetX;
	var charOffsetY = characterArray[0].posY + characterArray[0].offsetY;
	for(i = 0; i < triggerArray.length; i++)
	{
		if (triggerArray[i].bActive)
		{
			if(triggerArray[i].inTrigger(charOffsetX, charOffsetY))
			{
				if (!(triggerArray[i].bHasFired))
				{
					triggerArray[i].fireTrigger();
					return;
				}
			}
			else if (triggerArray[i].bHasFired)
			{
				triggerArray[i].fireTrigger();
				return;
			}
		}
	}
}
function updateGame()
{
	//call update frame function for characters
	//Note this should really be a for loop?
	//for(i = 0; i < characterArray.length; i++)
	//{
		//characterArray[0].updateFrame();
	//}

	for(i = 0; i < eventArray.length; i++)
	{
		//alert("updating game");
		if (eventArray[i].bAnimating)
		{
			eventArray[i].updateAnims();
		}
	}
}
function getEvent(event)
{
	//alert("got event in getEvent x = " + event.clientX);
	characterArray[0].setCoords(event);
}
