var selected;
var preloadFlag = false;
var mainImage;
var statusLine;
var nextFrame;
var nextFrameTimeoutId;
var myFrames = new Array();

function imageLoaded() {
	var img = this.src ? this.src : this.background;
	imagesToLoad--;
	if (imagesToLoad == 0)
		setStatusLine();
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.onload = imageLoaded;
		rslt.src = arg;
		imagesToLoad++;
		setStatusLine('Loading...');
		return rslt;
	}
}

var imagesToLoad = 0;
var loadedImages = new Array(
	"Index", "index_02", "Main",
	"menu_left", "menu_right",
	"right_border","left_border",
	"bottom_border", "top_border",	
	"btn_Rigging",
	"btn_Animation",
	"btn_About",
	"btn_More",
	"btn_Traditional"
	);

for (var i=0; i<loadedImages.length; i++) {
	loadedImages[i] = newImage("images/" + loadedImages[i] + ".jpg");
}



var statusLineTimeoutId = 0;
function setStatusLine(val,duration) {

	if (!statusLine)
		return 0;
	
	applyFilter(statusLine);
	if (val) {
		statusLine.style.visibility = "visible";
		statusLine.innerHTML = val;
	} else {
		statusLine.style.visibility = "hidden";
	}
	playFilter(statusLine);
	
	clearTimeout(statusLineTimeoutId);
	if (duration==0)
		duration = 2000;
	if (duration>0)
		statusLineTimeoutId = setTimeout("setStatusLine()",duration);
	
}


function imageTransition(img, newSrc) {

	if (!newSrc)
		if (img.style.visibility!="hidden")
			return;

	makeFiltered(img,"progid:DXImageTransform.Microsoft.gradientWipe(duration=1, gradientsize=1");

	applyFilter(img);
		
	if (!newSrc) {	
		img.style.visibility = "visible";
	} else {
		if (img.src) {
			img.src = newSrc;
		} else {
			img.style.backgroundImage = "URL('" + newSrc + "')";
		}
	}

		
	playFilter(img);
	
}

function changeImages() {
	array = arguments;
	
	if (document.images && (preloadFlag == true))
		for (var i=0; i<array.length; i+=2)
			imageTransition ( document.getElementById(array[i]), array[i+1] );
}


function buttonOver(aEvent) {
	
	var e = getEventSource(aEvent);
	
	changeImages(e.id, loadedImages[e.id+"Over"].src);
}

function buttonOut(aEvent) {
	
	var e = getEventSource(aEvent);
	
	var img;
	if (selected == e.id)
		img = loadedImages[e.id+"Sel"].src;
	else
		img = loadedImages[e.id].src;
	changeImages( e.id, img);
}

function buttonClick(aEvent) {
	
	var e = getEventSource(aEvent);
	
	changeFrame(e.id);
	
}

function changeFrame(button) {

	setStatusLine("Loading...",-1);

	clearTimeout(nextFrameTimeoutId);

	if (selected)
		changeImages(selected, loadedImages[selected].src);
		
	changeImages(button, loadedImages[button+"Sel"].src, "mainImage", loadedImages[button+"Main"].src);
	selected = button;


	doHide();
	var frameURL = button.replace(/btn/,"frm") + ".html";
	document.getElementById("mainFrame").src = frameURL;
	doUnhide();

	myUrchinTracker(frameURL);
	setStatusLine();
}


function setupButtons() {
	if (document.getElementById("buttonsDiv")) {
		var buttons = document.getElementById("buttonsDiv").childNodes;
		
		for (var i=0; i<buttons.length; i++) {
		
			var td = buttons[i];

			if (td.nodeType != 1 || (!td.id)) 
				continue;
			
			myFrames[myFrames.length] = td.id;
			
			if (!loadedImages[td.id])
				loadedImages[td.id]    = newImage("images/" + 		td.id + ".jpg");
			loadedImages[td.id+"Over"] = newImage("images/" + 		td.id + "_over.jpg");
			loadedImages[td.id+"Sel"]  = newImage("images/" + 		td.id + "_sel.jpg");
			loadedImages[td.id+"Main"] = newImage("images/Main_" + 	td.id + "_sel.jpg");
			
			makeFiltered (td,"progid:DXImageTransform.Microsoft.Fade(duration=.5)");
			
			if (hasIE) {
				td.onmouseover = buttonOver;
				td.onmouseout = buttonOut;
				td.onclick = buttonClick;
			} else {
				td.addEventListener("mouseover",buttonOver,false);
				td.addEventListener("mouseout",buttonOut,false);
				td.addEventListener("click",buttonClick,false);
			}
		}
		 
		preloadFlag = true;
	}
}

function doHide() {
	document.getElementById('mainFrame').style.display='none';
}

function doUnhide() {
	var hidden = document.getElementById('mainFrame');
	//	makeFiltered(hidden,"progid:DXImageTransform.Microsoft.Wipe(GradientSize=0.1, wipeStyle=2, motion='forward')");

	//	applyFilter(hidden);
	hidden.style.display='inline';
	//	playFilter(hidden);
}


function fadeImages() {
	for (i=0; i<document.images.length; i++) {
		var img = document.images.item(i);
		img.style.visibility="hidden";
		img.id="img"+i;
		setTimeout("imageTransition(document.getElementById('"+img.id+"'))",i*100);
	}
}

function checkImages(c) {
	if ((c++ < 5) && (imagesToLoad>0)) {
		setStatusLine("Still Loading..." + imagesToLoad,-1);
		setTimeout("checkImages("+c+")",1500);
		return;
	}
	
	doUnhide();
}

function userInteracted() {
	clearTimeout(nextFrameTimeoutId);
}

function setNextFrame(str, timeout, doc) {
	nextFrame = str;
	if (doc) {
		Event.observe(doc,'click',userInteracted,false);
	}
	if (timeout>0) {
		clearTimeout(nextFrameTimeoutId);
		nextFrameTimeoutId = setTimeout("doNextFrame()",timeout);
	}
}


function doNextFrame() {
	if (nextFrame)
		changeFrame(nextFrame);
}

function onLoadMain() {
	statusLine = document.getElementById("statusLine");
	var titleLine = document.getElementById("titleLine");
	titleLine.style.visibility = "hidden";

	myUrchinTracker();
	
	Event.observe(document,'click',userInteracted,false);

	setupButtons();
	checkImages(0);
}