// core functions

	function agnt_comp()
	{
		var agnt_comp;
		var browser = navigator.appName;
		
		if (browser == "Microsoft Internet Explorer")
			{
				agnt_comp = 0;
			}
		else
			{
				agnt_comp = 1;
			}
		
		return agnt_comp;
	}

	function elem_clss(elem,clss,recr)
	{
			var harv_elem = new Array();
			var harv_clss = new Array();
			if (recr == true)
				{
					harv_elem = elem.getElementsByTagName('*');
				}
			if (recr == false)
				{
					harv_elem = elem.childNodes;
				}
			for (var i = 0; i < harv_elem.length; i++)
				{
					if (harv_elem[i].className == clss)
						{
							harv_clss[harv_clss.length] = harv_elem[i];
						}
				}
			return harv_clss;
	}
	
// event handlers
	
	// vars
	
	var rock_onon;
	
	var slde_onon;
	
	var over_dura = 0.2;
	
	var outt_dura = 0.8;
	
	var onon_dura = 0.4;
	
	var ofof_dura = 0.8;
	
	function icon_over()
		{
			if (this.outt)
				{
					this.outt.cancel();
				}
			this.over = new Effect.Move(elem_clss(this,'navi-rock',true)[0], { x: 0, y: -30, mode: 'absolute', duration: over_dura});
		}
	
	function icon_outt()
		{
			if (this.over)
				{
					this.over.cancel();
				}
			this.outt = new Effect.Move(elem_clss(this,'navi-rock',true)[0], { x: 0, y: 0, mode: 'absolute', duration: outt_dura});
		}
	
	function icon_onon()
		{
			if (rock_onon)
				{
					var rock_ofof = rock_onon;
					var slde_ofof = slde_onon;
					
					new Effect.Scale(rock_ofof, 75,{scaleMode: { originalHeight: 120, originalWidth: 160 }, duration: ofof_dura});
					new Effect.Scale(slde_ofof, 75,{scaleMode: {originalWidth: 160 }, duration: ofof_dura, scaleY: false});
					new Effect.Move(rock_ofof, { x: 0, y: 0, mode: 'absolute', duration: ofof_dura});
					
					function done()
						{
							addEvent(slde_ofof,'onmouseover',icon_over);
							addEvent(slde_ofof,'onmouseout',icon_outt);
							addEvent(slde_ofof,'onmousedown',icon_onon);
						}
					
					setTimeout(done,800)
				}
			
			rock_onon = elem_clss(this,'navi-rock',false)[0];
			slde_onon = this;
			
			new Effect.Scale(rock_onon, 133,{scaleMode: { originalHeight: 90, originalWidth: 120 }, duration: onon_dura});
			new Effect.Scale(slde_onon, 133,{scaleMode: {originalWidth: 120 }, duration: onon_dura, scaleY: false});
			new Effect.Move(rock_onon, { x: 0, y: -30, mode: 'absolute', duration: (onon_dura / 2)});
			
			removeEvent(slde_onon,'onmouseover',icon_over);
			removeEvent(slde_onon,'onmouseout',icon_outt);
			removeEvent(slde_onon,'onmousedown',icon_onon);
			
			document.getElementById('page-body-fram').src = './content/page-' + rock_onon.id + '/page.html';
		}

// init

	function init()
		{
			// vars/cache
			
			var intr_dura = 0.8;
			
			var intr_incr = 0.2;
			
			var rocks = elem_clss(document,'navi-rock',true);
			
			// intro
			
			for (var i=0; i < rocks.length; i++)
				{
					var rock = rocks[i];
					
					var dura = intr_dura + (intr_incr * i);
					
					new Effect.Move(rock, { x: 0, y: -120, mode: 'absolute', duration: 0});
					
					new Effect.Move(rock, { x: 0, y: 0, mode: 'absolute', duration: dura});
				}
			
			// events
			
			function done()
				{
					elem_clss(document,'navi-conn',true)[0].style.zIndex = 4;
					
					for (var i=0; i < rocks.length; i++)
						{
							var rock = rocks[i].parentNode;
							addEvent(rock,'onmouseover',icon_over);
							addEvent(rock,'onmouseout',icon_outt);
							addEvent(rock,'onmousedown',icon_onon);
						}
				}
			
			setTimeout(done,1600)
			
		}