var frameShowing = 0;
var frameToRestart = 0;
var timer = null;
var frameToShow = 0;
var frameToLoad = 0;
var nbImagesToLoad = 0;
var layer = null;
var LoadList = new Array();
var firstTime = 1;
var left = 0;
var top = 0;
var fadeIn = 0;
var keepFrame = 0;
var framesToHide = new Array();
framesToHide[0] = null;
var ActionFlag = null;
var commandString = null;
var frameWait = 0;
var FadeParm = new Array();
var Resume = 0;

function init()
	{ 
	if (browser == 'DOM')
		{ 
            layerStyleRef="layer.style.";
            layerRef="document.getElementById";
            styleSwitch=".style";
		startDelim="('";
		endDelim="')";
            }
	else
		{
		if (browser == 'ns4') 
			{
            	layerStyleRef="layer.";
            	layerRef="document.layers";
			styleSwitch="";
			startDelim="['";
			endDelim="']";
            	}
		else
			{
			if (browser == 'ie4')
				{
                 		layerStyleRef="layer.style.";
                  	layerRef="document.all";
                 		styleSwitch=".style";
				startDelim=".";
				endDelim="";
            		}
			}	
		}
	frameToShow = startAt;
	frameToLoad = frameToShow;
	frameShowing = frameToShow; 
	buildImageList(); 
	}
     
function buildImageList()
	{
	for (i = frameToShow; i < ImgShown.length; i++)
		{
		LoadList[i] = new Array();
		LoadList[i][0] = null; LoadList[i][1] = null;
		for (k = 1; k < ImgShown[i].length; k++)
			{
			LoadList[i][k] = 0;
			}
		}
	for (i = frameToShow; i < ImgShown.length; i++)
		{
		for (k = 1; k < ImgShown[i].length; k++)
			{
			checkDuplicate(i,k);
			}
		}
	findFrameToLoad();	
	}

function checkDuplicate()
	{ 
	x = checkDuplicate.arguments[0];
	y = checkDuplicate.arguments[1]; 
	image = ImgShown[x][y];
	for (ii = x + 1; ii < ImgShown.length; ii++)
		{ 
		for (kk = 1; kk < ImgShown[ii].length; kk++)
			{
			if (ImgShown[ii][kk] == image)
				{
				LoadList[ii][kk] = 1; 
				}
			}
		}
	}

function findFrameToLoad()
	{ 
	if (frameToLoad < ImgShown.length)
		{
		if (ImgShown[frameToLoad].length == 1)
			{
			frameToLoad = frameToLoad + 1;
			findFrameToLoad();
			}
		else
			{
			nbImagesToLoad = ImgShown[frameToLoad].length;
			for (i = 1; i<nbImagesToLoad; i++)
				{
				if (browser == 'ns4')
					{ 
					img = 
eval(layerRef+startDelim+'layer'+frameToLoad+endDelim+'.document.images.layer'+frameToLoad+'img'+i); 
					}
				else
					{ 
					img = eval(layerRef+startDelim+'layer'+frameToLoad+'img'+i+endDelim);
					}
				setImage('L',frameToLoad,i);
				}
			frameToLoad = frameToLoad + 1;
			preLoad = preLoad - 1;
			findFrameToLoad();
			}
		}
	else
		{
		if (initTime == 0)
			{ 
			hideLayer("initlayer");
			commandString = ImgShown[frameToShow][0];
			if (commandString == '0' | commandString == 0 | commandString == null)
				{ 
				showNextLayer(1);
				} 
			else
				{ 
				eval(commandString);
				}
			}
		else
			{
			initT = initTime * 1000;
			initTime = 0;
			timer=setTimeout("findFrameToLoad()",initT);
			}
		}
	}
	

function setUpFrame()
	{
	keepFrame = 0;
	framesToHide [0] = null;
	ActionFlag = null; left = 0; top = 0;
	fadeIn = 0; 
	frameWait = 0;
	
	for (a = 0; a < setUpFrame.arguments.length; a++)
		{
		if (setUpFrame.arguments[a] == "keep")
			{
			keepFrame = 1;
			}
		if (setUpFrame.arguments[a] == "wait")
			{
			frameWait = setUpFrame.arguments[a + 1];
			if (firstTime == 1)
				{
				if (frameWait !== 0)
					{
					frameWait = frameWait + initDelay;
					}
				}
			frameWait = frameWait * 1000;
			if (Resume == 1)
				{
				frameWait = 0;
				Resume = 0;
				}
			}
		if (setUpFrame.arguments[a] == "hide")
			{
			h = 0;
			e = 0;
			for (k = a + 1; k < setUpFrame.arguments.length; k++)
				{
				if (e == 0)
					{
					if (setUpFrame.arguments[k] !== "end")
						{
						if (setUpFrame.arguments[k] < 0)
							{
							framesToHide[h] = frameToShow + setUpFrame.arguments[k];
							}
						else
							{
							framesToHide[h] = setUpFrame.arguments[k];
							}
						framesToHide[h + 1] = null;
						h = h + 1;
						}
					else
						{
						e = 1;
						}
					}
				else
					{
					e = 1;
					}
				}
			}


		if (setUpFrame.arguments[a] == "left")
			{
			left = setUpFrame.arguments[a + 1];
			}
		if (setUpFrame.arguments[a] == "top")
			{
			top = setUpFrame.arguments[a + 1];
			}
		if (setUpFrame.arguments[a] == "click")
			{
			ActionFlag = 'C';
			}
		if (setUpFrame.arguments[a] == "play")
			{
			// document.inthemood.play(false);
			}
		if (setUpFrame.arguments[a] == "stopplay")
			{
			// document.inthemood.stop();
			}
		if (setUpFrame.arguments[a] == "fadein")
			{
			fadeIn = 1; FadeParm = setUpFrame.arguments[a + 1];
			}
		}
	showNextLayer(1);
	}

function showNextLayer()
	{
	if (showNextLayer.arguments[0] == 0)
		{
		keepFrame = 0; left = 0; top = 0;
		framesToHide[0] = null; 
		ActionFlag = null;  
		fadeIn = 0; 
		}	
     	loadDups();	
	if (keepFrame == 0)
		{ 
		if (framesToHide[0] == null)
			{ 
			hideLayer(eval('"layer' + frameShowing+'"'));
			}
		else
			{ 
			for (h = 0; h < 30; h++)
				{
				if (framesToHide[h] !== null)
					{
					hideLayer(eval('"layer' + framesToHide[h] + '"'));
					}
				else
					{
					h = 30;
					}
				}
			}
		}
	frameShowing = frameToShow;
	showLayer(eval('"layer' + frameToShow+'"'));
	frameToShow = frameShowing+1;
	if (frameToShow > ImgShown.length - 1)
		{
		frameToShow = loopBackTo; 
		firstTime = 0;
		if (atTheEnd == 'stop')
			{
			ActionFlag = 'C';
			}
		else
			{
			if (atTheEnd != 'loop')
				{
				eval(atTheEnd);
				}
			}
		}
	if (left > 0)
		{
		layer = eval('"layer' + frameShowing+'"'); 
		eval(layerRef+startDelim+layer+endDelim+styleSwitch+'.left='+left);
		}
	if (top > 0)
		{
		layer = eval('"layer' + frameShowing+'"'); 
		eval(layerRef+startDelim+layer+endDelim+styleSwitch+'.top='+top);
		}
	if (fadeIn == 1)
		{
		StartFadeText(1,eval('"layer' + frameShowing+'"'),FadeParm);
		} 
	else
		{
		scheduleNextLayer();
		}
	}

function StartFadeText()
	{
	x = StartFadeText.arguments [0];
	layerToFade = StartFadeText.arguments[1];
	cR = StartFadeText.arguments[2][0];
	cG = StartFadeText.arguments[2][1];
	cB = StartFadeText.arguments[2][2];
	lastR = StartFadeText.arguments[2][3];
	lastG = StartFadeText.arguments[2][4];
	lastB = StartFadeText.arguments[2][5];
	fT = StartFadeText.arguments[2][6];
	i = parseInt((fT * 1000) / 50);
	R = parseInt((lastR - cR) / i);
	G = parseInt((lastG - cG) / i);
	B = parseInt((lastB - cB) / i);
	fadeText(x,layerToFade,i,cR,R,cG,G,cB,B,fT);
	}

function fadeText()
	{ 
	if (browser == 'DOM')
		{ 
		layerToFade = fadeText.arguments[1];
		i = fadeText.arguments[2];
		cR = fadeText.arguments[3];
		R = fadeText.arguments[4];
		cG = fadeText.arguments[5];
		G = fadeText.arguments[6];
		cB = fadeText.arguments[7];
		B = fadeText.arguments[8]; 
		fT = fadeText.arguments[9]; 
		if (i > 0) 
			{ 
			cR = cR + R;
			cG = cG + G;
			cB = cB + B;
			eval(layerRef+startDelim+layerToFade+endDelim+styleSwitch+'.color="rgb("+cR+","+cG+","+cB+")"');
			i = i - 1;
            	ftimer=setTimeout("fadeText(1,layerToFade,i,cR,R,cG,G,cB,B,fT)",fT); 
            	}
		else
			{
			if (fadeText.arguments[0] == 1)
				{
				scheduleNextLayer(1);
				}
			else
				{
				showNextLayer(0);
				}
			}
       	}
	else
		{
		if (fadeText.arguments[0] == 1)
			{
			scheduleNextLayer();
			}
		else
			{
			showNextLayer(0);
			}
		}
	}

function scheduleNextLayer()
	{ 
	commandString = ImgShown[frameToShow][0];
	if (Resume == 1)
		{
		frameWait = 0;
		}
	if (ActionFlag != 'C')
		{
		if (commandString == '0' | commandString == 0 | commandString == null)
			{ 
			timer=setTimeout("showNextLayer(0)",frameWait);
			} 
		else
			{
			timer=setTimeout("eval (commandString)",frameWait);
			}
		}
	}

function loadDups()
	{ 
	for (i = 1; i<ImgShown[frameToShow].length; i++)
		{
		if (browser == 'ns4')
			{
			img = 
eval(layerRef+startDelim+'layer'+frameToShow+endDelim+'.document.images.layer'+frameToShow+'img'+i); 
			}
		else
			{
			img = eval(layerRef+startDelim+'layer'+frameToShow+'img'+i+endDelim);
			}
		setImage('S',frameToShow,i);
		}
	}

function setImage()
	{ 
	if (setImage.arguments[0] == 'L')
		{
		if (LoadList [setImage.arguments[1]] [setImage.arguments[2]] == 0)
			{
			 img.src = ImgShown[setImage.arguments[1]][setImage.arguments[2]];
			}
		}
	else
		{
		if (LoadList [setImage.arguments[1]] [setImage.arguments[2]] == 1)
			{
			img.src = ImgShown[setImage.arguments[1]][setImage.arguments[2]];
			}
		}
	}

function SetClick(e)
	{
	if  (browser == 'ns4'  && (e.which == 3 || e.which == 2))
		{
		return false;
		}
	else
		{
		 if (browser == 'DOM'  && (event.button == 2 || event.button == 3)) 
			{
			return false;
			}
		else
			{ 
			if (ActionFlag == 'C')
				{ 
				clearTimeout(timer);
				if (commandString == '0' | commandString == 0 | commandString == null)
					{
					showNextLayer(0);
					} 
				else
					{ 
					eval (commandString);
					}
				}
			}
		}
	}	

function DisallowClick(e)
	{
	if  (browser == 'ns4'  && (e.which == 3 || e.which == 2))
		{
		return false;
		}
	else
		{
		 if (browser == 'DOM'  && (event.button == 2 || event.button == 3)) 
			{
			return false;
			}
		}
	}	

function imgEvent(evt)
	{ 
	if  (evt.which == 3 || evt.which == 2)
		{
		evt.stopPropagation();
		return false;
		}
	}
if (browser == 'ns4')
      {
      window.captureEvents(Event.MOUSEDOWN); 
	window.onmousedown = SetClick;
	}
else
     { 
	document.oncontextmenu = new Function("return false");
	if (browser == 'ie4')
		{
      	document.onmousedown = DisallowClick;
      	}
	}

function showLayer(layer)
	{ 
	eval(layerRef+startDelim+layer+endDelim+styleSwitch+'.visibility="visible"');
	}
        
function hideLayer()
	{ 
	if (hideLayer.arguments.length > 0)
		{
		for (i = 0; i < hideLayer.arguments.length; i++)
			{
			layerToHide = hideLayer.arguments[i]; 
			eval(layerRef+startDelim+layerToHide+endDelim+styleSwitch+'.visibility="hidden"');
			}
		}
	}
 
function restartShow()
	{
	hideLayer(eval('"layer' + frameShowing+'"'));
	clearTimeout(timer);
	frameShowing=0;
	init();
 	}

function pauseShow()
	{
	clearTimeout(timer);
	}

function resumeShow()
	{
	clearTimeout(timer);
	if (frameShowing > 0)
		{
		frameShowing = frameShowing - 1;
		frameToShow = frameToShow - 1;
		}
	Resume = 1;
	scheduleNextLayer(0);
	}








