function identifyObjects(){

	var animate = true;
	document.animateOn = true;
	var updown = true;
	var leftright = false;

	mobilizeObject(document.getElementById("ll1"), document.getElementById("ll1"), "document.getElementById(\"ll1\")", 0, -80, animate, updown);
	mobilizeObject(document.getElementById("menu1"), document.getElementById("returnmenu1"), "document.getElementById(\"menu1\")", -210, -510, animate, leftright);
	linkobjects(document.getElementById("menu1"), document.getElementById("ll1"), document.getElementById("returnmenu1"), document.getElementById("ll1"));

	mobilizeObject(document.getElementById("ll2"), document.getElementById("ll2"), "document.getElementById(\"ll2\")", 0, -190, animate, updown);
	mobilizeObject(document.getElementById("menu2"), document.getElementById("returnmenu2"), "document.getElementById(\"menu2\")", -210, -510, animate, leftright);	
	linkobjects(document.getElementById("menu2"), document.getElementById("ll2"), document.getElementById("returnmenu2"), document.getElementById("ll2"));

	mobilizeObject(document.getElementById("ll3"), document.getElementById("ll3"), "document.getElementById(\"ll3\")", 0, -312, animate, updown);
	mobilizeObject(document.getElementById("menu3"), document.getElementById("returnmenu3"), "document.getElementById(\"menu3\")", -210, -510, animate, leftright);	
	linkobjects(document.getElementById("ll3"), document.getElementById("menu3"), document.getElementById("ll3"), document.getElementById("returnmenu3"));

	mobilizeObject(document.getElementById("ll4"), document.getElementById("ll4"), "document.getElementById(\"ll4\")", 0, -428, animate, updown);
	mobilizeObject(document.getElementById("menu4"), document.getElementById("returnmenu4"), "document.getElementById(\"menu4\")", -210, -510, animate, leftright);	
	linkobjects(document.getElementById("ll4"), document.getElementById("menu4"), document.getElementById("ll4"), document.getElementById("returnmenu4"));

	//left menu to left button

	addActionButton(document.getElementById("returnmenu1"), document.getElementById("returnmenpic1"));
	addActionButton(document.getElementById("returnmenu2"), document.getElementById("returnmenpic2"));
	addActionButton(document.getElementById("returnmenu3"), document.getElementById("returnmenpic3"));
	addActionButton(document.getElementById("returnmenu4"), document.getElementById("returnmenpic4"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("returnmenpic5"));

	mobilizeObject(document.getElementById("menu5"), document.getElementById("returnmenu5"), "document.getElementById(\"menu5\")", -210, -510, animate, leftright);
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink1"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink2"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink3"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink4"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink5"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink6"));
	addActionButton(document.getElementById("returnmenu5"), document.getElementById("choicesmenulink7"));


	document.getElementById("but1").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("but2").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("but3").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("but4").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("but5").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("but6").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("but7").onclick = function() {document.getElementById("ll4").onclick(); };

	document.getElementById("LQbut1").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("LQbut2").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("LQbut3").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("LQbut4").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("LQbut5").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("LQbut6").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("LQbut7").onclick = function() {document.getElementById("ll4").onclick(); };


	document.getElementById("UDbut1").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("UDbut2").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("UDbut3").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("UDbut4").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("UDbut5").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("UDbut6").onclick = function() {document.getElementById("ll4").onclick(); };
	document.getElementById("UDbut7").onclick = function() {document.getElementById("ll4").onclick(); };


	mobilizeObject(document.getElementById("edge1"), document.getElementById("image1"), "document.getElementById(\"edge1\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edge2"), document.getElementById("image2"), "document.getElementById(\"edge2\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edge3"), document.getElementById("image3"), "document.getElementById(\"edge3\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edge4"), document.getElementById("image4"), "document.getElementById(\"edge4\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edge5"), document.getElementById("image5"), "document.getElementById(\"edge5\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edge6"), document.getElementById("image6"), "document.getElementById(\"edge6\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edge7"), document.getElementById("image7"), "document.getElementById(\"edge7\")", 0, 355, animate, leftright);

	mobilizeObject(document.getElementById("edgeLQ1"), document.getElementById("LQimage1"), "document.getElementById(\"edgeLQ1\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeLQ2"), document.getElementById("LQimage2"), "document.getElementById(\"edgeLQ2\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeLQ3"), document.getElementById("LQimage3"), "document.getElementById(\"edgeLQ3\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeLQ4"), document.getElementById("LQimage4"), "document.getElementById(\"edgeLQ4\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeLQ5"), document.getElementById("LQimage5"), "document.getElementById(\"edgeLQ5\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeLQ6"), document.getElementById("LQimage6"), "document.getElementById(\"edgeLQ6\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeLQ7"), document.getElementById("LQimage7"), "document.getElementById(\"edgeLQ7\")", 0, 355, animate, leftright);

	mobilizeObject(document.getElementById("edgeUD1"), document.getElementById("UDimage1"), "document.getElementById(\"edgeUD1\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeUD2"), document.getElementById("UDimage2"), "document.getElementById(\"edgeUD2\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeUD3"), document.getElementById("UDimage3"), "document.getElementById(\"edgeUD3\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeUD4"), document.getElementById("UDimage4"), "document.getElementById(\"edgeUD4\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeUD5"), document.getElementById("UDimage5"), "document.getElementById(\"edgeUD5\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeUD6"), document.getElementById("UDimage6"), "document.getElementById(\"edgeUD6\")", 0, 355, animate, leftright);
	mobilizeObject(document.getElementById("edgeUD7"), document.getElementById("UDimage7"), "document.getElementById(\"edgeUD7\")", 0, 355, animate, leftright);

	mobilizeObject(document.getElementById("curtain"), document.getElementById("enterbutton"), "document.getElementById(\"curtain\")", -384, -1200, animate, updown);
	document.getElementById("enterbutton").mystoredfunction = document.getElementById("enterbutton").onclick;
	document.getElementById("enterbutton").onclick = function() 
	{
	
			this.style.display = "none";
			// alert("");				//and remove the "//" at the start of the line.
			this.mystoredfunction();
			document.getElementById("loadinggr").style.display = "none";
		
	}


	document.getElementById("curtain").arrival = function() {document.getElementById("curtain").style.display = "none";}
	document.getElementById("animsoffbutton").onclick = turnoffAnims;

}


function addActionButton(actionsite, newactionsite){
newactionsite.onclick = function() { actionsite.onclick() }
}

function turnoffAnims(){
document.animateOn = false;
this.innerHTML = "Animations On";
this.onclick = turnonAnims;
}

function turnonAnims(){
document.animateOn = true;
this.innerHTML = "Animations Off";
this.onclick = turnoffAnims;
}


function cancelAll()
{
	document.getElementById("edge1").cancelmove();
	document.getElementById("edge2").cancelmove();
	document.getElementById("edge3").cancelmove();
	document.getElementById("edge4").cancelmove();
	document.getElementById("edge5").cancelmove();
	document.getElementById("edge6").cancelmove();
	document.getElementById("edge7").cancelmove();

	document.getElementById("edgeLQ1").cancelmove();
	document.getElementById("edgeLQ2").cancelmove();
	document.getElementById("edgeLQ3").cancelmove();
	document.getElementById("edgeLQ4").cancelmove();
	document.getElementById("edgeLQ5").cancelmove();
	document.getElementById("edgeLQ6").cancelmove();
	document.getElementById("edgeLQ7").cancelmove();

	document.getElementById("edgeUD1").cancelmove();
	document.getElementById("edgeUD2").cancelmove();
	document.getElementById("edgeUD3").cancelmove();
	document.getElementById("edgeUD4").cancelmove();
	document.getElementById("edgeUD5").cancelmove();
	document.getElementById("edgeUD6").cancelmove();
	document.getElementById("edgeUD7").cancelmove();
}








function linkobjects(obj1, obj2, act1, act2)		//Object covering longer distance is obj1 Very Important
{
	obj1.storefunc = obj1.glideto;
	obj2.storefunc = obj2.glideto;
	obj1.glideto = function(start, end) { obj1.storefunc(start, end); act2.onclick();}
	obj2.glideto = function(start, end) { obj2.storefunc(start, end); act1.onclick();}



	obj2.swtich1 = function() {return true;}
	obj2.switch2 = function() {return true;}
	obj2.arrival = function() {return true;}

	obj1.switch1 = function() 
	{
		act1.onclick = function() { obj1.glideto(obj1.homepos, obj1.outpos); };
		this.arrival = this.switch2;
		act2.onclick = function() { obj2.glideto(obj2.homepos, obj2.outpos); };	//set the other object only once the slow one arrives
	}
	obj1.switch2 = function() 
	{
		act1.onclick = function() { obj1.glideto(obj1.outpos, obj1.homepos); };
		this.arrival = this.switch1;
		act2.onclick = function() { obj2.glideto(obj2.outpos, obj2.homepos); };	//set the other object only once the slow one arrives
	}
	obj1.arrival = obj1.switch2;		//sets this to the new switch2.
}

function mobilizeObject(myobject, actionsite, txt4, homepos, outpos, animate, updown)
{

	animOff = (! animate)
	myobject.actionsite = actionsite;
	myobject.txt4 = txt4;
	myobject.updown = updown;

	myobject.homepos = homepos;
	myobject.outpos = outpos;

	myobject.jumpto = function(target)
	{
		if(this.updown){
			this.style.top = target + "px";
		}
		else
		{		
			this.style.left = target + "px";
		}
		this.currentpos = target;
	}

	myobject.frame = function(direction)
	{
		this.speed ? 1 : this.speed = 0;
		if (direction)
		{
			this.jumpto(this.currentpos + this.speed);
		}
		else 
		{
			this.jumpto(this.currentpos - this.speed);
		}
		if (direction){		//figure everything for moving to the right
			this.currentpos <= this.center ? this.speed+= 2 : this.speed -= 2;
			if (this.currentpos >= this.goal)
			{
				clearInterval(this.timerID);
				this.arrival();
				this.jumpto(this.goal);
			}
		}
		else			//figure everything for moving to the left
		{
			this.currentpos >= this.center ? this.speed += 2 : this.speed -= 2;
			if (this.currentpos <= this.goal)
			{
				clearInterval(this.timerID);
				this.arrival();
				this.jumpto(this.goal);
			}
		}
		if (this.speed < 0){this.speed = 1}	//prevents bouncing back and forth effect
	}
	

	myobject.cancelmove = function(){
		if(this.currentpos != this.homepos){
		if(this.currentpos != this.outpos){
			clearInterval(this.timerID)
			this.arrival();
			this.glideto(this.currentpos, this.homepos);
		} else {
			this.glideto(this.currentpos, this.homepos);
		}
		}
	}

	myobject.switch1 = function() 
	{
		this.actionsite.onclick = function() { myobject.glideto(myobject.homepos, myobject.outpos) };
		this.arrival = this.switch2;
	}

	myobject.switch2 = function() 
	{
		this.actionsite.onclick = function() { myobject.glideto(myobject.outpos, myobject.homepos) };
		this.arrival = this.switch1;
	}
	
	myobject.arrival = myobject.switch2;
	myobject.transit = function()
	{
		this.actionsite.onclick = function() {return true};
	}

	myobject.movWithAnim = function(start, end){
		this.transit();
		this.center = (start + end)/2;
		this.goal = end;
		this.speed = 0;
		(end - start) > 0 ? direct = "true)" : direct = "false)"
		this.timerID = setInterval(myobject.txt4 + ".frame(" + direct, 50);
	}
	
	myobject.noAnim = function(start, end)
	{
		this.transit();
		this.jumpto(end);
		setTimeout(myobject.txt4 + ".arrival()", 100);
	}			

	myobject.glideto = function(start, end)
	{
		if(document.animateOn){
			this.movWithAnim(start, end);
		} else {
			this.noAnim(start, end);
		}
	}

	myobject.jumpto(myobject.homepos);
	myobject.actionsite.onclick = function() { myobject.glideto(myobject.homepos, myobject.outpos) };
}